[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: Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • From: Jane Malalane <Jane.Malalane@xxxxxxxxxx>
  • Date: Mon, 14 Feb 2022 13:11:28 +0000
  • Accept-language: en-US
  • 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=SYyEwrO5qN+yK+owPemfrBsDCca4abNLA3jdr2ADwsA=; b=CePfLdKc0z1X+MBq8if34DpEDOcp/DnF84ZkIKlmDOb9n+g5+K36wo7ebJKgU4MMVP5hXV2FK64Ld+Dr9v2L28I/M3PmUuSeYsWxR+Nl7Nu6B2DogLidg2L4MFQN9zIMwP+KfXancPVT+G5OwcWxdLdV2LP9KXtIBrwnf1mvW9zpHwtPaK5ZPvRhfPDn744iiUn/MdtdxKdoqKt+OFXmtRn38Aw02Lq0RhlNw4pCyIDc/wcfkmZtYcdOwcTAnTd7r5cfxCz5XsVjHb8TRLYaa/vwOCW0YXbYxTi20cactRHsC/9MrgjOjl61rXLiI1CIE+aX2lwic7YfH1z+RVzfLQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BpgTcbmaiQxoWqCJ1rvCOLm2azAe6v4Jt9Cr7iIhZFNZ2Ixlkdsn8TKHqlb8gah6akUFPGXoGN2jFSNLIV6PS0qcc2qofBQ5smGSRUE9vJa/y2FatphArviHiyEDOa8EAPycY0eFTZ2GgLLSutBfZVOimsBZZ1ktGzYeZPbFMARz7McyuLwRgUTkxlPEexcoMHG3SkV+Bg+jCEDkmQ7o37Qm2GUfUfea6DIQ7OGCjn/N6q4JFe3BLnNt49EKTIqoEkMKjFtR7M+Al58+rEyCexyooMNkFVd1v/EShAx5d/7kwZjV+gsSV5XH5cs0WFftMfZPesCy+TNDBmdH53eHwQ==
  • Authentication-results: esa5.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>, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Delivery-date: Mon, 14 Feb 2022 13:11:37 +0000
  • Ironport-data: A9a23:6S7L9KCXkDqa2BVW/0Hlw5YqxClBgxIJ4kV8jS/XYbTApG5xg2APm mIYWziFb/2MMWakf4h1YYS39B4EuMLQyYBjQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WL6s1hxZH1c+En970E47wobVv6Yz6TSHK1LV0 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/pA7Qjugyj +12jd+WUAU4fanzid8RTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr KFGbmBWBvyAr7veLLaTaOBqi4IGJc3iOIoZt1lrzC3DDOZgSpfGK0nPzYEDgWZr35oXdRrYT 8E1dAUscxnqWgdGImdICbQRl8CIoXaqJlW0r3rK/PFqsgA/1jdZ7r/pN9bEf82Qcu9clE2Yu 2Hu8nzwB1cRM9n34SGe7numi+vLnCX6cIEfDru18rhtmlL77mYeEgEMXF235/ywkFejWsl3I lYRvCEpqMAa90G1T9+7QxyxplaFuAIRX5xbFOhSwAOQzOzS6gWQBGkBRxZAbsArsIk9QjlC/ k+EmZblCCJitJWRSGmB7fGEoDWqIy8XIGQeIygeQmMt4dPuvYUyhRLnVct4Hei+ididMS706 yCHqm45nbp7pcwW06S2+3jXjjTqoYLGJiY36R/QRXmN9R5iaciuYInA1LTAxa8edsDDFADH5 SVa3ZjFhAwTMX2TvAO2GfQ1X/aR3M7GFiTekB1rIIga+yv4rhZPYrtsyD15IU5oNOMNdjnof FLftGtt2XNDAJe5RfQpOtzsUqzG2YClTI24Da6MMrKid7AsLFfvwc14WaKHM4kBemAImLp3B 5qUeN3E4Z0yWfU+l2reqwvwPNYWKsECKYH7GMqTI/ePi+P2iJuppVAtagXmUwzBxPnYyDg5C v4GXydw9z1RUfflfg7c+pMJIFYBIBATXM6q95MHJrPeelM9QgnN7sM9Jpt7JeRYc1l9zL+Ur hlRpGcEoLYAuZE3AVrTMS0yAF8edZ1+sWg6LUQR0aWAgBAejXKUxP5HLfMfJOB/nMQ6lKIcZ 6RVKq2oX6UUIhyaqmt1UHUIhNE7HPhdrVnVZHTNjflWV8MIejElDfe6IlqxpHFWVHLfWAlXi +TI6z43iKErHmxKJM3XdOiu3xW2u30ck/h1REzGPp9Yf0CEzWSgA3WZYiYfL55eJBPd6CGd0 grKUx4UqfOU+90+8cXThLDCpICsSrMsEk1fFmjdzLC3KSiFoTbznd4eCL6FLWLHSWf52KS+f uEJnfvyB+IKwQRRuI1mHrc1ka9nv4nzp6VXxxhPFWnQawj5EatpJ3SLhJEdtqBEyrJDlxGxX 0aDpotTNbmTYZu3G18NPgs1KO+E0KhMyDXV6P00JmT85TN2o+XbARkDYUHUhXUEfrVvMY4jz eMwg+Is6lSy2kgwL9KLriFI7GDQfHYOZLoq68MBC4jxhwt1llwbOc7ACjX76Y2kYslXNhV4O SedgafPiugOxkfGdHZvR3HB0fAE2MYLsRFOilQDO06IipzOgfpuhE9d9jE+TwJ0yBRb0r0sZ jg3ZhMtfajerS11gMVjXny3H1ATDRKUzUX91l8VmTCLVEKvTGHMcDUwNOvlEJr1KI6Akuy3J I2l9Vs=
  • Ironport-hdrordr: A9a23:dvBnTqkvl5DehPoCUwRrJt05lyPpDfIu3DAbv31ZSRFFG/Fxl6 iV8sjztCWE8Qr5N0tBpTntAsW9qDbnhPtICOoqTNGftWvdyQiVxehZhOOIqVDd8m/Fh4pgPM 9bAs9D4bbLbGSS4/yU3ODBKadD/OW6
  • Ironport-sdr: FxfMpApnkoabecJnNbYOLIDXnoawYdNv4S7H5YpZmWLGTYZDNCUr3d9S2NSdEue7wI4EAmUjB9 vW4LjjyMVnkfXZUKc5SzY/BzRRkd7jqmKyqm9DEEW9VbBZPyDQfx5eTFxL7WOKOTGTqlU2NvWP 1clgq6P92xJv1XDI29GPgtnzUV1ByMlHk6JeAu9ic3dEQF+zp5IfH2W9utZdOno/maBAH8XOVP fesjFCNbCJnoiqUHAABTnTNJPl20sb6CvnmNbA1Bkb3NRtlOj2wF28qqoCQ/RbDpyayzE5Xud7 YTtSdPPyydZGbHQ3V0aGlnRs
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYHE+TdJl64aH33EedeR0PZ4zblKyMkj6AgAGTLwCAABdDgIAABJKAgATOw4A=
  • Thread-topic: [PATCH v2 1/2] xen+tools: Report Interrupt Controller Virtualization capabilities on x86

On 11/02/2022 11:46, Jan Beulich wrote:
> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments 
> unless you have verified the sender and know the content is safe.
> 
> On 11.02.2022 12:29, Roger Pau Monné wrote:
>> 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?
> 
> Not sure - "some assistance" seems still a little better than none at all.
> Which route to go depends on what exactly we intend the bit to be used for.
> 
> Jan
> 
True. I intended this bit to be specifically for enabling 
assisted_x{2}apic. So, would it be inconsistent to report hardware 
assistance with just VIRTUALIZE_APIC_ACCESSES or VIRTUALIZE_X2APIC_MODE 
but still claim that x{2}apic is virtualized if no MSR accesses are 
intercepted with XEN_HVM_CPUID_X2APIC_VIRT (in traps.c) so that, as you 
say, the guest gets at least "some assistance" instead of none but we 
still claim x{2}apic virtualization when it is actually complete? Maybe 
I could also add a comment alluding to this in the xl documentation.

Thanks,

Jane.

 


Rackspace

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