From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754732AbbKQT3Z (ORCPT ); Tue, 17 Nov 2015 14:29:25 -0500 Received: from smtp.citrix.com ([66.165.176.89]:43206 "EHLO SMTP.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751557AbbKQT3Y (ORCPT ); Tue, 17 Nov 2015 14:29:24 -0500 X-IronPort-AV: E=Sophos;i="5.20,309,1444694400"; d="scan'208";a="312853092" Message-ID: <564B800B.1060006@citrix.com> Date: Tue, 17 Nov 2015 19:29:15 +0000 From: Andrew Cooper User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 MIME-Version: 1.0 To: Andy Lutomirski CC: Boris Ostrovsky , "linux-kernel@vger.kernel.org" , xen-devel , Borislav Petkov , David Vrabel , "H. Peter Anvin" Subject: Re: [Xen-devel] [PATCH] xen/x86: Adjust stack pointer in xen_sysexit 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> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-DLP: MIA2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.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