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

Re: [PATCH v2 1/2] xen+tools: Report Interrupt Controller Virtualization capabilities on x86


  • To: Jane Malalane <Jane.Malalane@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Fri, 11 Feb 2022 12:29:39 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=12gU3dD6aF/I0hChB/+yNcF8B+IPZx/hIu8NtiCGK/k=; b=Y+xbpkQyYkOMOfEX5PUVWxFO6FJX3zjwDuZ/j9Y9KeN6wV9XrETpAfoQ1e71Jux3FyYQ5a8Y9ISizRdbwX8xP3v11DjcAkUuD62GgqycyrZrOp06e5sS0gFDhQAPV8LlExWXLAEFwcapmU3loYystrweK9xbdNqJ2tdm687ofT/YjRb3hgiQBQhnxuq6hWzkf/Z4JJEb5glSKtzskzmxkkKfZhJJfwHcX//xa8+9wqrtkNjMXu1CE9VDiooNTn/JhMHby1AByPRAGG817baXdnTWo6OT0nTxKJ/LOv4ZjnBR0DpnYiZ/x728EjAr0XR2MGSZqLOGhjOVu1EHqXC9Zw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XIT4GEGIJEEkxj+CXDezhcRqE6C1ARJIVLVGJJ4A8EEKPKqG9lTvmt+YGxozuKTBRKSEPmyhuDLjvgRJDPdroJxuvuepe6t8b5689/y/YhR3tstkMqjVKALp90KDv7uf7xqVShRgOIyptDNjYY2t8bq7EIeV9RecEQjjjs7CAk583NM4tId6sISww7H4tXNP2Ab86V7R7KThuETS73B+Gxe/1t0KpBPzAy+OauD9KWOCU3rj1GFPXpby1kfcQpUY+hfLIa5Ku73lygl+qKWeXuM1CIPgpn1MyEP6Hp6+sJxE5i6uazpW2MvJ23i1gIvEZd5ZPeNo1C84xkbYv3JgDg==
  • Authentication-results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony Perard <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>
  • Delivery-date: Fri, 11 Feb 2022 11:30:01 +0000
  • Ironport-data: A9a23:GwWIVKj92PncSmYSC5WfySqiX161ERYKZh0ujC45NGQN5FlHY01je htvCz+OafmCZzTwedl1a47g9hhSu5fWyN9kHgFtqikzFyMb9cadCdqndUqhZCn6wu8v7a5EA 2fyTvGacajYm1eF/k/F3oAMKRCQ7InQLlbGILes1htZGEk0GE/NtTo5w7Rj2tQx2IDga++wk YiaT/P3aQfNNwFcagr424rbwP+4lK2v0N+wlgVWicFj5DcypVFMZH4sDfjZw0/DaptVBoaHq 9Prl9lVyI97EyAFUbtJmp6jGqEDryW70QKm0hK6UID66vROS7BbPg/W+5PwZG8O4whlkeydx /1oic2rEgV4fZfXs/VaDhtxSShuLI1/reqvzXiX6aR/zmXDenrohf5vEFs3LcsT/eMf7WNmr KJCbmpXN1ba2rzwkOnTpupE36zPKOHxO4wSoDd4xCzxBvc6W5HTBa7N4Le02R9u2pgWQqaDP aL1bxIxNDTBPjtVZ24RM6ARn6SJjUPPTxhX/Qf9Sa0fvDGIkV0ZPKLWGOTSftuGVMBEhHGyr 2jN/3n6KhwCPdnZwj2Amlq3nfPGly7/XIMUFZW7++RsjVnVwXYcYDUcWEGnu/C/hgi7UshGN k0P0iM0qO4580nDZtrwQRy+5mKFtxg0WtxMHul84waIooLW/gDfAGEHRzxAbdUOtckqSDhs3 ViM9/v5CDoqvLCLRHa18raPsSj0KSUTNXUFZyIPUU0C+daLiIM5gw/LT91jOLWoldCzEjb1q xiVqAAuirNVitQEv4254FTGjjSEtpXPCAkv6W3/XG2/6RhiTJW4fIHu4l/ehcusN67AEAPH5 iJd3ZHDsqZeVvlhiRBhXs0oIOCyvPTUcwfHqk8oQpsIrT296l6aKNU4DC5FGG9lNcMNeDnMa UDVuB9M6JI7AEZGfZObcKrqVZ10kPGI+cDNE6mNM4EQOsQZmBqvoXk2DXN8yVwBh6TFfUsXH Z6AOfihAn8BYUiM5GrnHrxNuVPHK81X+I8yeXwZ50n/uVZ9TCTMIVvgDLdoRrpohE9jiF+Lm +uzz+PQl31ivBTWO0E7C7I7I1EQNmQcDpvrscFRfePrClM4RD18UaKOnul8ItQNc0FpegHgp CDVtqhwkgSXuJE6AV/SNiALhE3HAf6TUk7XzQRzZA31ihDPkK6k7bsFdotfQFXU3LcL8BKAd NFcI5/oKq0WElzvom1BBbGg/N0KXEn63mqmYnv6CAXTirY9HmQlDPe/JVCxnMTPZwLq3fYDT 0qIiF+FH8pZGlgK4QS/QKvH8m5ddEM1wYpad0DJPsNSaAPr9o1rIDb2lfg5P4cHLhCr+9dQ/ 1/+7c4wqbafrokr3sPOgKzY/Y6lH/EnRhhRHnXB7KbwPi7fpzLxzYhFWeeOXDbcSGKrp/nyO bQLl6nxYK8dgVJHk4tgCLI3n6gw0MTi+u1BxQN+EXSVM1nyUuF8ImOL1NVkv7FWwuMLohO/X 0+Co4EIObiANM7/PkQWIQ4pMraK2f0Ow2GA5vUpOkTqoiRw+ePfA0lVOhCNjg1bLad0b9x5k btw5pZO5lXm2BQwM9uAgiRFzEi2LyQNA/c9q5UXII73kQ53mFtMVoPRV33t65aVZtQSbkRze m2IhLDPjqh3z1bZdyZhDmDE2OdQiMhcuB1Oy1NedV2FlsCc260y1RxVtz82Uh5U3lNM1OcqY jpnMEh8JKOv+TZ0hZccAzDwSl8ZXBDJqFbsz1YplXHCSxj6X2PAG2QxJOKR8R1L6GlbZDVao OmVxWuNvewGpy0tMv/egXJYlsE=
  • Ironport-hdrordr: A9a23:FqaZaqu5VaK8xQK0KmduRR2b7skDEdV00zEX/kB9WHVpm62j+/ xG885w6faZslYssRIb9uxoWpPwIk80nKQdieJ9AV7IZmfbUQWTTb2KKbGSoQHdJw==
  • Ironport-sdr: b8Xb08VznzKQ8NUkrPcSD9RQPyMagYaF9a7pK190uQDDe3wIxewPjYUr7IceTutxjwm6t19ttu D/rNncGK/bPCPQsNnR3z69wJY661YfgATKlcETW6j9ujQURVNNHbr5imsz9k2t8YfJDOQ/Awc0 ONNwAHeOOMBAzkgQ442cDcCPwK7IadcFy3lIICR+r0qCe4Bl07ZWjtxXYsoDfqM3AnnQs2jAsO 1ZKPYZtMUNIfCl4xj3gU24PNGKdKZ7wysNfj8LW7Xk4KZ3oNsjxDPw26rn+3Wy2R1+ZDaAzy8I 8/431gnQhft3VwGczf7C8D03
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Fri, Feb 11, 2022 at 10:06:48AM +0000, Jane Malalane wrote:
> On 10/02/2022 10:03, Roger Pau Monné wrote:
> > On Mon, Feb 07, 2022 at 06:21:00PM +0000, Jane Malalane wrote:
> >> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> >> index 7ab15e07a0..4060aef1bd 100644
> >> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> >> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> >> @@ -343,6 +343,15 @@ static int vmx_init_vmcs_config(bool bsp)
> >>               MSR_IA32_VMX_PROCBASED_CTLS2, &mismatch);
> >>       }
> >>   
> >> +    /* Check whether hardware supports accelerated xapic and x2apic. */
> >> +    if ( bsp )
> >> +    {
> >> +        assisted_xapic_available = cpu_has_vmx_virtualize_apic_accesses;
> >> +        assisted_x2apic_available = (cpu_has_vmx_apic_reg_virt ||
> >> +                                     cpu_has_vmx_virtual_intr_delivery) &&
> >> +                                    cpu_has_vmx_virtualize_x2apic_mode;
> > 
> > I've been think about this, and it seems kind of asymmetric that for
> > xAPIC mode we report hw assisted support only with
> > virtualize_apic_accesses available, while for x2APIC we require
> > virtualize_x2apic_mode plus either apic_reg_virt or
> > virtual_intr_delivery.
> > 
> > I think we likely need to be more consistent here, and report hw
> > assisted x2APIC support as long as virtualize_x2apic_mode is
> > available.
> > 
> > This will likely have some effect on patch 2 also, as you will have to
> > adjust vmx_vlapic_msr_changed.
> > 
> > Thanks, Roger.
> 
> Any other thoughts on this? As on one hand it is asymmetric but also 
> there isn't much assistance with only virtualize_x2apic_mode set as, in 
> this case, a VM exit will be avoided only when trying to access the TPR 
> register.

I've been thinking about this, and reporting hardware assisted
x{2}APIC virtualization with just
SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES or
SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE doesn't seem very helpful. While
those provide some assistance to the VMM in order to handle APIC
accesses, it will still require a trap into the hypervisor to handle
most of the accesses.

So maybe we should only report hardware assisted support when the
mentioned features are present together with
SECONDARY_EXEC_APIC_REGISTER_VIRT?

Thanks, Roger.



 


Rackspace

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