[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] there is no sysret in X86_emulate, why?

On 2014/10/30 12:04, Jan Beulich wrote:
>>>> On 30.10.14 at 02:46, <hanyandong@xxxxxxxxx> wrote:
>> (1)In x86_emulate(), there are sysenter/sysexit, syscall. But why no sysret?
> Perhaps on the basis that this already when introduced was only
> meant to be usable on 64-bit hypervisors, and 64-bit capable CPUs
> always support SYSRET (whereas the scope of support for the
> other three varies)? Christoph, you added that code years ago - is
> there any other explanation for this?

Back at that time I was working on live migration between AMD and Intel
forth and back. The sysenter/sysexit emulation covers the case of
running 32bit binaries in compat mode in a 64bit DomU.
The syscall emulation also covers a case I do not remember anymore.


>> (2)I want to iuntercept syscall/sysret, so I unset the EFER.SCE, so 
>> syscall/sysret will trap into Xen, then I emulate syscall/sysret.
>> But  I only see syscall and did not see one sysret,  the guest run as usual. 
>>  any one can give me an hint?
> Assuming you did everything correctly, this seems odd. But in any
> event I'd suggest confirming such behavior in a native environment
> first.
> Jan

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.