From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH, fixed] linux/x86: use sysenter/syscall for 32-bit apps on 64-bit Xen Date: Wed, 24 Oct 2007 15:12:27 +0100 Message-ID: <471F6EEB.76E4.0078.0@novell.com> References: <46BAE3D7.76E4.0078.0@novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com, Andi Kleen List-Id: xen-devel@lists.xenproject.org >However, in case (2) the i386 guest kernel unconditionally goes for >sysenter, and the hypervisor will accept this because CPUID has advertised= >SEP. *But* AMD CPUs do not support sysenter except in legacy mode! The >correct thing to do is to use syscall. The hypervisor 32-on-64 compat = code >would accept CALLBACKTYPE_syscall, but the Linux i386 code here doesn't >appear to make use of it. So I would imagine that the i386 kernel running = on >AMD hardware would cause all user processes to crash when they SYSENTER. I intentionally avoided adding syscall stuff to the 32-bit kernel, since = that isn't there in the native kernel either (as it's not really usable on native). = Therefore I'd suggest clearing SEP for pv32-on-64 guests in emulate_forced_invalid_op= (). Jan