KVM - The Linux Kernel-Based Virtual Machine
News, Blogs and Resources on the Linux (KVM) Kernel-Based Virtual Machine

about vmcall instruction execution.

No replies
wzhongyuan
Offline
Joined: Jun 30 2010
Points: 72

an module is executed in guest using vmcall instruction. then host handler the vmcall exit and read the registers value. but ax,cx,dx get the correct values while bx and si get the worong. what is the problem.
code in guest is :
__asm__ ("mov $10,%ax");
__asm__ ("mov $20,%bx");
__asm__ ("mov $30,%cx");
__asm__ ("mov $40,%dx");
__asm__ ("mov $50,%si");
__asm__ ("vmcall");
host output :
HYPER CALL IS CALLED AND THE NR IS 10,bx is -526778348,cx is 30,dx is 40,si is -1017839566
so ax(NR) ,cx,dx values are correct .but bx and si values are wrong.why?

the last thing we need more of is less effort

Post new comment

The content of this field is kept private and will not be shown publicly.
Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.