https://bugzilla.kernel.org/show_bug.cgi?id=65561 --- Comment #25 from Jidong Xiao <jidong.xiao@xxxxxxxxx> --- (In reply to Jatin Kumar from comment #24) > > linux:~/code/cvedr # ./accessmsr > > Segmentation fault > You got a seg fault because it is privileged instruction and I run it in > kernel mode not user mode. But you are likely to be running your program in > user mode. Try something like out instruction. > > > Even though my c program in the guest os got a segmentation fault, from the > > host os level, I don't see the printk statement is triggered, so this is not > > about privileged instructions or unprivileged instructions. I think there > > must be some other conditions to trigger these printk statements. > After getting the VM_EXIT it must be first checking if it requires to > emulate or should generate a fault. In this case it would have generated the > fault without emulating it. > > Again, you can try it with 'out' instruction. Alright, Jatin, I wrote a kernel module, like this: linux:~/code/module # cat testout.c #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { printk(KERN_ALERT "Hello world 1.\n"); asm __volatile__("outb %al, %dx \n"); return 0; } void cleanup_module(void) { printk(KERN_ALERT "Goodbye world 1.\n"); } I compiled this module and installed with `insmod testout.ko`, and nothing happens. Noted that the emulator code includes the following lines: case 0xee: /* out al,dx */ case 0xef: /* out (e/r)ax,dx */ printk(KERN_ERR "DEBUG: Passed %s %d \n",__FUNCTION__,__LINE__); port = c->regs[VCPU_REGS_RDX]; io_dir_in = 0; I added that printk statement, and still, when I was loading the kernel module in the guest OS, this printk statement was not invoked. -- You are receiving this mail because: You are watching the assignee of the bug. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html