[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:47:02 +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=8YQyqVhJN6151+7qOuGBFn37agomXb/nUWcYX6AHZ7Q=; b=PHQGIjP7tWzpEuihQYAMOlPTZ8XjzyUoC9V3i5iUFxAOfv3MH7+AEWnU2vPv85wJqiewct1qF9EywQFeLF87IDyCoMV6GhqaaJfH51VLxh8S087ABDAsOTi/fQk73TM+L66N2nB2FBAg4KMwUre+BgdnN7KZ69aOA+GK7hKzbfLjogCWm34vvndTGPFh/OhbEXCH7guQMaywIvCo9+IYfFD7z3OnINeUpqJh8X35ccR+lZ9kA1N+Zoy8rPXByCye2v/QwaQwFK6ZNyRI2OCQA0V6lkFmrua/3Dj6wM2JsODH3cL1HfJv5rNoInbpwthhrzaygy0ciAZqevTdUeCW2Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E7QuXDJmfSGzzPflFl2Omw6zlJcgafQkueGLpP5TM0rDpEInH1+zGkZNlP3040jUulZ1puTzrWEzhgwYvhFJTylD6vK0ngREjuspgAXYPIQ28qJDIbPR7kwDPgKajJzzAtGzGpINsgDzO+To+Ur/dvgYKw1HPnaIO+sM9H7Guv11XFHpHxRhHsLxEtKPwhvmNPm/p0sLK62Jrppu2ADF9+bdzltoirKXO+kWWWDl52y4hBEQ+BzKJbhUzcKvy9zmSEK36IBVylBPX1ih+EagKSkG3vEJ6xSTlKDSJz9Mum5HrSFIgwVH5rU8l0iwcKTTuuUD3yMdZF8TSm+pBvqyLA==
  • 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:47:15 +0000
  • Ironport-data: A9a23:MtLBSKIwpUXJlkr3FE+RI5QlxSXFcZb7ZxGr2PjKsXjdYENS02MCy mdLUD/Ua/bfYjfxfYt0O4vn/U0A7JDdytZlGwZlqX01Q3x08seUXt7xwmUcnc+xBpaaEB84t ZV2hv3odp1coqr0/0/1WlTZhSAgk/rOHv+kUrWs1hlZHWdMUD0mhQ9oh9k3i4tphcnRKw6Ws Jb5rta31GWNglaYCUpJrfPdwP9TlK6q4mlB5wVnPaojUGL2zBH5MrpOfcldEFOgKmVkNrbSb /rOyri/4lTY838FYj9yuu+mGqGiaue60Tmm0hK6aYD76vRxjnVaPpIAHOgdcS9qZwChxLid/ jnvWauYEm/FNoWU8AgUvoIx/ytWZcWq85efSZSzXFD6I+QrvBIAzt03ZHzaM7H09c4oE0xws vkaDwwnURGkqfm2nrGxEvlz05FLwMnDZOvzu1lG5BSBUbMDfsqGRK/Ho9hFwD03m8ZCW+7EY NYUYiZuaxKGZABTPlAQC9Q1m+LAanvXKmUE7g7K4/VspTGMkmSd05C0WDbRUvWMSd9YgQCzo WXe8n6iKhobKMae2XyO9XfEaurnzX+lBdNCTe3QGvhCvmDQ+moVVTgvXHShrb6itmDhdOwYN BlBksYphe1onKCxdfH/VRClpH+PvjYHRsFdVeY97Wml6qfS+RffOWECQRZIctlgv8gzLRQy3 0KNt8PkA3poqrL9YW2Z3qeZq3W1Iyd9BW0fY2kCRAgM4djmqakyiA7CSpBoF6vdpt74BzD2h SyLpS4WhrMPgMpN3KK+lXjXjjTpqpXXQwod4gTMQnnj/g5/fJSiZYGj9R7c9/koEWqCZlyIv XxBntfE6ukLVc2JjHbUH7tLG6y17fGYNjGamURoA5Qq6zWq/TikYJxU5zZ9YkxuN67oZAPUX aMagisJjLc7AZdgRfMfj16ZYyjy8ZXdKA==
  • Ironport-hdrordr: A9a23:Lyv4Ia5jPA1lxVQpegPXweaCI+orL9Y04lQ7vn2ZFiY5TiXIra qTdaogviMc0AxhI03Jmbi7Scq9qeu1z+843WBjB8bZYOCAghrmEGgC1/qu/9SEIUHDH4FmpM BdmsRFaeEYSGIK9foSgzPIXerIouP3lpxA7N22pxgCcegpUdAY0+4TMHf4LqQCfngjOXNPLu v42iMonVqdUEVSSv7+KmgOXuDFqdGOvJX6YSQeDxpixBiSgSiu4LvaFQHd+hsFSTtAzZor7G CAymXCl+WemsD+7iWZ+37Y7pxQltek4txfBPaUgsxQBiTwhh2ubIFBXaTHmDwuuumg5Hsjjd GJiRY9OMZY7W/XYwiO0FrQ8jil9Axrx27pyFeej3emi9f+XigGB81Igp8cWgfF6mI71esMkp 5j7ia8jd56HBnAlCPy65zjTBdxjHe5pnIkjKo6k2Ffa40Dc7VcxLZvuX+9Ua1wWB4S2rpXVt WGP/usvcq+tmnqN0wxi1Mfh+BEmE5DRStuDHJy4PB9mAIm4UyRh3FouPD32E1wt67VAqM0md gteM5T5c5zZ95TYqRnCOgbR8yrTmTLXBLXKWqXZU/qDacdJhv22tbKCRoOlZOXkbEzve0Pca 76IRplnH93f1irBdyF3ZVN/ByISGKhXS71wsUb45RioLXzSLfiLCXGETkV4oGdiuRaBteeV+ e4OZpQDfOmJWzyGZxR1wm7X5VJM3ERXMAcp95+UVOTpcDALJHsq4XgAb3uDauoFSxhVnL0A3 MFUjS2LMJc7lqzUnu9mxTVU2OFQD2JwXuxKtmvwwE+8vl/CmQXiHlltb2Q3LD6FRRS9qorYU B5PLTr1qumuGjexxe801lU
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHY8GkXjZEVf2M/t0iebvsck9V8qq44y+aAgACWeYCAAKSxAIAAA1KA
  • Thread-topic: [PATCH for-4.17 v2] hvm/apic: repurpose the reporting of the APIC assist options

On 11/11/2022 17:35, Andrew Cooper wrote:
> 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.

Sorry, sent too early.

This also firmly highlights why the API/ABI is broken.  It has
successfully fooled all the other maintainers into doing the wrong
thing, even after recently discussing the complexity and subtly in full
as part of the XSA-412 security fix.

~Andrew

 


Rackspace

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