From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH] xen/x86: Adjust stack pointer in xen_sysexit Date: Tue, 17 Nov 2015 19:29:15 +0000 Message-ID: <564B800B.1060006__47593.984186142$1447788668$gmane$org@citrix.com> References: <1447456706-24347-1-git-send-email-boris.ostrovsky@oracle.com> <56468D24.8030801@oracle.com> <564A0371.2040104@oracle.com> <20151116195906.GB20137@pd.tnic> <20151116202232.GC20137@pd.tnic> <564A50C3.1000200@zytor.com> <564B3C57.5000002@oracle.com> <564B7C2B.5030901@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andy Lutomirski Cc: "linux-kernel@vger.kernel.org" , xen-devel , Borislav Petkov , David Vrabel , "H. Peter Anvin" , Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org On 17/11/15 19:16, Andy Lutomirski wrote: > On Tue, Nov 17, 2015 at 11:12 AM, Andrew Cooper > wrote: >> On 17/11/15 18:49, Andy Lutomirski wrote: >>> On Nov 17, 2015 6:40 AM, "Boris Ostrovsky" wrote: >>>> On 11/16/2015 04:55 PM, H. Peter Anvin wrote: >>>>> On 11/16/15 12:22, Borislav Petkov wrote: >>>>>> Huh, so what's wrong with a jump: >>>>>> >>>>>> jmp 1f >>>>>> swapgs >>>>>> 1: >>>>>> >>>>> What is the point of that jump? >>>>> >>>>>>> If it would make you feel better, it could be X86_BUG_XENPV :-p >>>>>> That doesn't matter - I just don't want to open the flood gates on >>>>>> pseudo feature bits. >>>>>> >>>>>> hpa, what do you think? >>>>> Pseudo feature bits are fine, we already have plenty of them. They make >>>>> sense as they let us reuse a lot of infrastructure. >>>> >>>> So how about something like this? And then I think we can remove usergs_sysret32 and irq_enable_sysexit pv ops completely as noone will use them (lguest doesn't set them) >>>> >>> Looks good to me. Does Xen have any sysexit/sysret32 equivalent to >>> return to 32-bit user mode? If so, it could be worth trying to wire >>> it up by patching the jz instead of the test instruction. >> From the guests point of view, there is only hypercall_iret. > Doesn't hypercall_iret have flags that ask for different behavior, > though? (VG_syscall or whatever for the 64-bit case?) The one and only flag is VGCF_in_syscall Xen has its own logic for choosing between sysretq/sysretl if VGCF_in_syscall, but will end up on an iret path in all other circumstances. There is definitely some room for optimisation here, but in in some copious free time before that, I want to see about brining most of our asm code up into C. The vast majority of it doesn't need to be written in asm. > >>> Also, I'd prefer X86_FEATURE_XENPV. IMO "PV" means too many things to >>> too many people. >> I agree - PV on its own is too generic. >> >> An alternative might be X86_FEATURE_XEN_PV_GUEST which is very clear an >> unambiguous, although rather longer. > Works for me, too, although seeing "xen_pv_host" in the Linux cpu > features would be very strange indeed :) This makes me wonders whether the `insmod xen` project has managed to gain any traction ;) ~Andrew