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

Re: [PATCH for-4.17 v2] hvm/apic: repurpose the reporting of the APIC assist options


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Fri, 11 Nov 2022 17:35:09 +0000
  • Accept-language: en-GB, 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=2aNnhXGdbMeRDfxzN5MWwxCstAyPPPnL0PId/USpFHQ=; b=H1dEnBQhk6LOzrF0JyTuTXkc0LuNjHz0WDGWKfBuG7Xdt3rZ9rL11hlEhlb5CXNSyIAnnVVSRTtzOcpVGW3IrhWQugT8FOHIYoi9IjZwLe5R9HN11MQhDLucgAdriLGJDS23OnfEeQG9aPUcVpr/1J/pquHwDMtJIlA9hICgVDefo6HbdxLkZfMI0oS7RyBF9aRQk6lfqgSUF0Ge7UjwbRScoNljoMch6rmMtHYKb43Efl7q5n5xXzgLpXPEtd84Kgbr3/HHji833WZFiZIAuXzT2N9UncrJLNz6lWMcxsPnkRYOGONA2zDpgmmmhezF7fVKfc/Dv5fsPFNJAvH87Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TX89Wla0wRTdwDGcecHaR8Xx0aJwhIy8r478v9jIBzCo7MRYNRBv5XRcUs0JFW4gmajlBsBMqe/FoEs3C1TR1jjQKg2pLo/fMiSM6gFXsVYyLB3affrIqpTC8cmMLffvSBgsElBbTqciZh9OGWZL8i7uLgIMGApzuPJ4KGkzsbNubTGRz7Rz4oTnebrDROPIpjxamBQTPiJ7IORT8fzfRvjkZJMa0tv58fDtaPRtO01WGLaNNpwV76AY6w4QcUpN8EkKReVm3XwsRdxv9dVn99Q6eo5nwwTtQMXb4Bl/gc4ExJp1a6MF6u6qRrq91ofv49L1ch3aXM3rsRVUkjUmOg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: "Henry.Wang@xxxxxxx" <Henry.Wang@xxxxxxx>, Paul Durrant <paul@xxxxxxx>, Wei Liu <wl@xxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 11 Nov 2022 17:35:57 +0000
  • Ironport-data: A9a23:u+0Zoq1F9B2uKv834/bD5bdxkn2cJEfYwER7XKvMYbSIYAOW5UVBk yoBGTfRCku5EmCjKoh/Ponjp0JX6sODmoI2QQtlqCpmFCNEosaYCdrDIBqhZy/OI5DNEB9tt c4VZ4OYIpk/FiWD+E71aeS78XIUOc1kJ1bZILes1ndZFFE/E3tJZWtfptMEbq5UbfmRUl3c5 d+irpXVNg6pgzR6bTtF5vuIpB5i5ar54zlC4wxvOfwTsFHgzHREV5h3yYNdjZfbatINQrPlH barIJWRpD6xE8IFU4v9+lrDWhRWBOWUZU3W0CE+t5GK2nBqvjY13rswKM0SYEJWjyTht91qw ZBGuIfYpT0BZ8Ugo8xAFUgGe81CFfceouWeeCHm6Zb7I3DuKBMA/d0/VCnaAqVAkgpHKTkm3 eAVLjkLcieCi4qeqF5sYrAx7iiLBJCD0LI34hmM/xmAZRoVacmrr5Hxzc1ZxF8NavVmRp4yU Sa7hQ1HN3wsazUXUrse5QlXcO2A3hETeBUAwL6ZSDZeD8E+A2Wd3ZC0WOc5dOBmSu1sm3ay9 0zr4F/YDzoDNde1yxGCr1iV07qncSPTAOr+FZWe39sz2hi2+TZWDxcbE1ymvfO+l0iyHcpFL FAZ8TYvqq5081G3St76XFuzp3vsUhw0AoIMVbFlrl/TjPaOi+qaLjFsojppQdoqrsIpAxct0 UeEhYjBDj1zqryFD3ma8994qBviYndOdTNaNUfoSyNfzYTthpkKii7gDf9dV7OxseLoBhD/l mXiQC8Wwu97YdQw/6ex8E3DgjmsjoPUVQNz7QLSNkqF4wVjdciaboqnwVHB6LBLK4PxZkGIo Xwsi8WYqucUAvmliyilUOgLWraz6J6tMiDax1hmHJAj9jGk03+lYY1Upjp5IS9BMcsaeDmvf E7avytQ4oNeOD2haqofS5K8DYEmwLbtEfzhV+vIdZxeb55pbgiF8SpyI0mK0AjQfFMElKg+P dKebpyqBHNDU6B/lmLqHaEazKMhwT04ySXLX5fnwh+70L2YInmIVbMCN1jIZec8hE+ZnDjoH x9kH5Pi431ivCfWM0E7LaZ7wYg2EEUG
  • Ironport-hdrordr: A9a23:3itKqKtUD4YGBAklKidV7yno7skCR4Aji2hC6mlwRA09TyXGra 2TdaUgvyMc1gx7ZJh5o6H6BEGBKUmslqKdkrNhR4tKPTOW9VdASbsP0WKM+UyGJ8STzI9gPO JbAtBD4b7LfBRHZKTBkW+F+r8bqbHpnpxAx92utkuFJjsaCZ2Imj0JbjpzZXcGITWua6BYKL Osou584xawc3Ueacq2QlEDQuj4vtXO0L72fBIcABYjyQ+WyRel8qTzHRS01goXF2on+8ZtzU H11yjCoomzufCyzRHRk0fV8pRtgdPkjvdTGcCWjcARCzP0ziKlfp5oVbGutC085Muv9FEput /RpApIBbU911rhOkWO5Tf90Qjp1zgjr1X4z0WDvHflqcvlABonFston+tiA1vkwntlmOs5/L NA3mqfuZYSJwjHhj7B69/BUAwvvlaooEAljfUYgxVkIMgjgf5q3M4iFXFuYdM99RHBmcca+S 5VfYfhDcNtABanhrbizzBSKZKXLywO91y9MzU/U4SuokRrdTZCvgolLYUk7wk9HNhWceg628 3Udqtvj71AVckQcOZ0A/oAW9K+DijXTQvLK3/6GyWuKEipAQO+l3fb2sRC2AiRQu1A8LIi3J DaFF9Iv287fEzjTcWIwZ1Q6xjIBGGwRy7kxM1S74Vw/uSUfsugDQSTDFQ118ewqfQWBcPWH/ 61JZJNGvfmaW/jA5xA0QHyU4RbbXMeTMoWsNAmXE/mmLOBFqT68ujANPrDLrvkFjgpHmv5H3 sYRTD2YN5N60i6M0WI9yQ5m0mdDnAX0agAY5QypdJjubTlHrc8wjQ9mBC++tyBLyFEv+g/YF Z+SYmX55+GmQ==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHY8GkXjZEVf2M/t0iebvsck9V8qq44y+aAgACWeYCAAKSxAA==
  • Thread-topic: [PATCH for-4.17 v2] hvm/apic: repurpose the reporting of the APIC assist options

On 11/11/2022 07:45, Jan Beulich wrote:
> On 10.11.2022 23:47, Andrew Cooper wrote:
>> On 04/11/2022 16:18, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/hvm/viridian/viridian.c
>>> +++ b/xen/arch/x86/hvm/viridian/viridian.c
>>> @@ -197,7 +197,7 @@ void cpuid_viridian_leaves(const struct vcpu *v, 
>>> uint32_t leaf,
>>>          res->a = CPUID4A_RELAX_TIMER_INT;
>>>          if ( viridian_feature_mask(d) & HVMPV_hcall_remote_tlb_flush )
>>>              res->a |= CPUID4A_HCALL_REMOTE_TLB_FLUSH;
>>> -        if ( !cpu_has_vmx_apic_reg_virt )
>>> +        if ( !has_assisted_xapic(d) )
>>>              res->a |= CPUID4A_MSR_BASED_APIC;
>> This check is broken before and after.  It needs to be keyed on
>> virtualised interrupt delivery, not register acceleration.
> To me this connection you suggest looks entirely unobvious, so would
> you mind expanding as to why you're thinking so? The hint to the guest
> here is related to how it would best access certain registers (aiui),
> which to me looks orthogonal to how interrupt delivery works.

I refer you again to the diagram.  (For everyone else on xen-devel, I
put this together when fixing XSA-412 because Intel's APIC acceleration
controls are entirely unintuitive.)

It is "virtual interrupt delivery" which controls EOI/ICR acceleration,
and not "apic register virtualisation".  There's a decade worth of
hardware where this logic is an anti-optimsiation, by telling windows to
use a VMExit-ing mechanism even when microcode would have avoided the
VMExit.

It is not by accident that "virtual interrupt delivery", introduced in
IvyBridge, is exactly the missing registers (on top of "use TPR Shadow"
which is even older) to make windows performance less bad.

~Andrew

Attachment: vmx.png
Description: vmx.png


 


Rackspace

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