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

Re: [PATCH v3 2/2] x86/xen: Allow per-domain usage of hardware virtualized APIC


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Jane Malalane <Jane.Malalane@xxxxxxxxxx>
  • Date: Thu, 24 Feb 2022 16:59:41 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; 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=2+SnpnIe2UeRFXwEc2cG5/BwM17UTPrMDST4j5wAOqc=; b=C/bDa+EGdEng1hFzrWc7xT1+EMpjj3SuYB7HYYKwSrjmcp8BUIjr6b/cvjnjG9aBT/Zh3aBdh1XCUT/kRF1cN+FbZP8vGqxGvqdVrlJpNVjlMq4PEdvtrIxrGlA1Tx8md5+ITJkKRMe1JoN+ZFmUeadPmeMd2Cn/jsAkOY0Vfns6EFMV0+vtIyNXrJsGt/A97GsFhOV8k6Mru1rHox2/o1pdK2XXaGLM4j2FiTewQoa5Sbdz7mRFXJs3+udKd8mhKdKTFgt7V0fijcngrxI/k7kNZk6FeHDj45dfo79QupBcmuG1m+WwMQfwpxFrnbfF7SntBfjHm6evfHsHBOr3OQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bK14UY5E/M4p1kKx53/y0sycu+9ryUt3sB81I7A1q5mCCtR7Avev4BlnV8y6kOWp/0zq3xxOMeBbZIWZV1oTa5ctDq7D8qqWzLJtdOtP8IXzpMUhQkXkbrkmJfVRMcDGjZOx6zd1WChOQ+AqbjwM1d0F6+Of3KerrA1fME9wIIBykuJoCkq5nOcA0GD6pJ1TrA6xWyH3M2pxnNfVeiPpTi3VW8qDL2Zto9Nimo/vurB9V/whAGmyMwKb6Q77RHVYPFaUgp6ICYXu2gIm61FEjAHaNV5rMmhwfzKOAExbPfwTf94ISuDtzD90tb5HkcIohukvMy/93k/qVUe0jjn8SA==
  • Authentication-results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Wei Liu <wl@xxxxxxx>, Anthony Perard <anthony.perard@xxxxxxxxxx>, "Juergen Gross" <jgross@xxxxxxxx>, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>, "George Dunlap" <George.Dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, "Stefano Stabellini" <sstabellini@xxxxxxxxxx>, Christian Lindig <christian.lindig@xxxxxxxxxx>, David Scott <dave@xxxxxxxxxx>, "Volodymyr Babchuk" <Volodymyr_Babchuk@xxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Thu, 24 Feb 2022 17:00:05 +0000
  • Ironport-data: A9a23:9JbZO6Ci7e6WURVW/9Djw5YqxClBgxIJ4kV8jS/XYbTApDJ302FSx jYXUD+PP/rZY2X8Lo0naYy29BwEvsKAzt5qQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA xA2M4GYRCwMZiaA4E/raNANlFEkvU2ybuOU5NXsZ2YgHWeIdA970Ug5w7Rj3tYz6TSEK1jlV e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPhs7 s506J2RGD10ZO7mtfoDTAgFTgdxaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us 6ZCcXZUM07F17neLLGTE4GAguwBJc/meqYWvnhkxDfUJf0nXYrCU+PB4towMDIY2JwfR6qCP 5dxhTxHUU7PODhFHFUtT58snua6hiTHVGQGgQfAzUYwyzeKl1EguFT3C/LZc8KHbd9YlUGZo iTB5WuRKgoBKNWVxD6B83StruzChyX2XMQVDrLQ3u5nhhify3IeDDUSVECnur+ph0imQdVdJ kcIvC00osAaykuvSdXsWgyil1SNtBUcRtl4HvUz7UeGza+8yxmdLngJSHhGctNOnM08SCEu1 1SJt8j0HjEpu7qQIVqf67OVoDWaKSUTa2gYakcsTwQf5ML4iJoulR+JRdFmeJNZlfWsR2u2m WrT6nFj2fND1qbnyplX43japSmV+5noHzRovEb9c3y78RIkOaiqMtnABUfg0d5MK4OQT1+kt XcCmtSD4O1mMaxhhBBhU81WQuj3uq/t3Cn0xAc2QsJ/r2jFF2uLINgIiAySMnuFJSrtldXBR EbI8T1c65ZIVJdBRf8mOtnhYyjGIEWJKDgEahw2RocWCnSSXFXelM2LWaJ29zqz+KTLuftiU ap3ie72UR4n5V1PlVJavds1374x3TwZzmjOX539xBnP+ePAOCPLFe1ZagDRNrtRAEa4TOP9q Yg32yyikUg3bQEDSnOPrd57wa4idxDX+qwaW+QIL7Xec2KK6UkqCuPLwKNJRmCWt/89qws8x VnkAhUw4AOm3RXvcFzWAlg+OOKHdcsu9hoTYH1zVWtELlB+OO5DGo9ELMBpFVTmncQ+pcNJo w4tIZvYWa0XEmydk9nfBLGkxLFfmN2QrVvmFwKuYSQlfo4mQArM+9T+eRDo+jVIBS2y3fbSa ZX5vu8HafLvnzhfMfs=
  • Ironport-hdrordr: A9a23:BkwD0Kk0LuwaW5ATnPpTmzubMYXpDfObimdD5ihNYBxZY6Wkfp +V88jzhCWZtN9OYhwdcIi7SdS9qXO1z+8R3WGIVY3SEDUOy1HYUL2KirGSjAEIeheOu9K1sJ 0PT0EQMqyIMbEXt7eY3OD8Kadb/DDlytHnuQ699QYUcegCUcgJhG0ZajpzUHcGPzWubaBJTK Z0jfA3wwZIDE5nCPhTcUN1ONQryee79q7OUFojPVoK+QOOhTSn5PrRCB6DxCoTVDtJ3PML7X XFuxaR3NTjj9iLjjvnk0PD5ZVfn9XsjvFZAtaXt8QTIjLwzi61eYVaXaGYtjxdmpDu1L9qqq iOn/4TBbU315rjRBDwnfIr4Xim7N8a0Q6h9bZfuwqknSW2fkNiNyMLv/MnTvKQ0TtfgDg76t MR44vRjesnMTrQ2Cv6/NTGTBdsiw69pmcji/caizhFXZIZc6I5l/1WwKp5KuZ3IMvB0vFvLA CuNrCo2N9GNVeBK3zJtGhmx9KhGnw1AxedW0AH/siYySJfknx1x1YRgJV3pAZLyLstD51fo+ jUOKVhk79DCscQcKJmHe8EBc+6EHbETx7AOH+bZV7nCKYEMXTQrIOf2sR/2Mi6PJgTiJcikp XIV11V8WY0ZkL1EMWLmIZG9xjcKV/NKggFCvsuk6SRloeMN4YDaxfzOGzGu/HQ0ckiPg==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYJO0/E2Q9kBLnmUergICAnT03vayiyEcAgAAtrYA=
  • Thread-topic: [PATCH v3 2/2] x86/xen: Allow per-domain usage of hardware virtualized APIC

On 24/02/2022 14:16, 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 18.02.2022 18:29, Jane Malalane wrote:
>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>> @@ -3333,15 +3333,15 @@ static void vmx_install_vlapic_mapping(struct vcpu 
>> *v)
>>   
>>   void vmx_vlapic_msr_changed(struct vcpu *v)
>>   {
>> -    int virtualize_x2apic_mode;
>> +    bool virtualize_x2apic_mode;
>>       struct vlapic *vlapic = vcpu_vlapic(v);
>>       unsigned int msr;
>>   
>>       virtualize_x2apic_mode = ( (cpu_has_vmx_apic_reg_virt ||
>>                                   cpu_has_vmx_virtual_intr_delivery) &&
>> -                               cpu_has_vmx_virtualize_x2apic_mode );
>> +                               v->domain->arch.hvm.assisted_x2apic );
> 
> Following from my comment on patch 1, I'd expect this to become a simple
> assignment of v->domain->arch.hvm.assisted_x2apic (at which point the
> local variable could go away), just like ...
> 
>> -    if ( !cpu_has_vmx_virtualize_apic_accesses &&
>> +    if ( !v->domain->arch.hvm.assisted_xapic &&
>>            !virtualize_x2apic_mode )
>>           return;
> 
> ... here.
Previosuly we discussed setting v->domain->arch.hvm.assisted_xapic equal 
to only cpu_has_vmx_virtualize_x2apic_mode, that's why I have those 
additional checks as at least apic_reg_virt or virtual_intr_delivery are 
needed for the subsequent parts of this function. I might be 
misunderstanding your question.

Unless you mean that we should fallback to having 
v->domain->arch.hvm.assisted_xapic depend on those other features...?
> 
>> @@ -1124,9 +1125,8 @@ void cpuid_hypervisor_leaves(const struct vcpu *v, 
>> uint32_t leaf,
>>            * and wrmsr in the guest will run without VMEXITs (see
>>            * vmx_vlapic_msr_changed()).
>>            */
>> -        if ( cpu_has_vmx_virtualize_x2apic_mode &&
>> -             cpu_has_vmx_apic_reg_virt &&
>> -             cpu_has_vmx_virtual_intr_delivery )
>> +        if ( cpu_has_vmx_apic_reg_virt && cpu_has_vmx_virtual_intr_delivery 
>> &&
>> +             v->domain->arch.hvm.assisted_x2apic )
>>               res->a |= XEN_HVM_CPUID_X2APIC_VIRT;
> 
> While within the 80 cols limit, I think it would help readability if you
> kept it at one sub-condition per line.
Sure.

Thank you,

Jane.

 


Rackspace

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