[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: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
- From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Date: Mon, 14 Nov 2022 14:15:46 +0100
- 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=9S3OqI265xwlmtbBZgc0vnpQZ4HAew4TlLAgf6CY90k=; b=H2JuPoOrdlnl4YX5UnMyL6t5wH4z2QzTEMf9UkgkNYBtZ4uOCGZlMxnbeCm0Rdxvc+s3h6LUudHbzgZybJRw7mitk1reaulbt4I96yYxEG7+OAK0Gh+1P5rzJl+kYGU5kVk0aUNgbGPizNfCHPodKt0/erPgfIvVCaDS9sDTRDw3qnu9osYVVGXAoQYL8lcD23qdGc8g2kMMCfJOFNvJjCN8EmdKLtBATnAQDz+mXkN4K2d45jbdWLxtDQQKPdMg0V2oFBl20t6hSLP3ObZzcDe6D8zhKA1Jk9fCZ2i62q4HEKKFqnwFOfM9oZqNkgl8bX9fTRuM8ZEfvHGuxt504Q==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Grn4UxJG8L7goysYETDVxSJfYy3LGc81DAiFSHF7wU12yQBeXz3rjaaUc8+yjXGVb/WdUyIj9v611MQln2kB/Ar7l2ayG4A6tmSU3jp/bD4jaHL6wEFlJDbZG99r1h/87/+RnIaa6V5JGmXcCe3XYgxTOhUJzlfc5/nydENsC7S5dAIQwZrfnj5yWD1ayVTKuYLF/TatNwxWybHKTZElpOK7MhP2br5AsAveSoOSc9zVozCSuCycQLdJmZtAlntYdqQBAIXhRBo2px09/wmGOvV6zNrIYgVoBBNzjWma5MfflHtLwzC3KgBDzsjtr7GvcAQ37pbUhQvRgbdtWaedGA==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: Jan Beulich <jbeulich@xxxxxxxx>, "Henry.Wang@xxxxxxx" <Henry.Wang@xxxxxxx>, Paul Durrant <paul@xxxxxxx>, Wei Liu <wl@xxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Mon, 14 Nov 2022 13:16:20 +0000
- Ironport-data: A9a23:bgIWiKMDphtRlS7vrR1RlsFynXyQoLVcMsEvi/4bfWQNrUpz1zYDy GJLW2zUP/rYazGhc99zbo208UxTu5eBmIM1Ggto+SlhQUwRpJueD7x1DKtS0wC6dZSfER09v 63yTvGacajYm1eF/k/F3oDJ9CU6jufQA+KmU4YoAwgpLSd8UiAtlBl/rOAwh49skLCRDhiE/ Nj/uKUzAnf8s9JPGj9SuvzrRC9H5qyo4mpB5wBmPJingXeF/5UrJMNHTU2OByOQrrl8RoaSW +vFxbelyWLVlz9F5gSNy+uTnuUiG9Y+DCDW4pZkc/HKbitq/0Te5p0TJvsEAXq7vh3S9zxHJ HehgrTrIeshFvWkdO3wyHC0GQkmVUFN0OevzXRSLaV/ZqAJGpfh66wGMa04AWEX0vRHHnB85 /0/EzoqfxGGhO6/x7SyQ8A506zPLOGzVG8ekldJ6GmFSNwAEdXESaiM4sJE1jAtgMwIBezZe 8cSdTtoalLHfgFLPVAUTpk5mY9EhFGmK2Ee9A3T+vZxvzS7IA9ZidABNPLPfdOHX4NNl1uwr WPa5WXpRBodMbRzzBLVri382r6QxUsXXqpPU6Ce2aRqpGTMx3QDBUUxaHflgPq23xvWt9V3b hZ8FjAVhao4+VGvT9L9dwalu3PCtRkZM/JwHusg+Ueyw6zbyw+DAy4PSTspQMQvqcseVTEsk FiTkLvBGjhHoLCTD3WH+d+8ry60fy4cLmYAZCoNZQoD/9Tn5oo0i3rnTdt9Eajzktz8Hxnxx SyHqG41gLB7pd4G0eC38E7Khxqop4PVVUgl6wPPRGWn4whlIom/aOSVBUPz6P9BKMOTSAmHt X1cx8yGtrhSUdeKiTCHR/gLEPex/fGZPTbAgFlpWZ486zCq/H3ldodViN1jGHpU3g8/UWeBS CfuVcl5vfe/4FPCgXdLXr+M
- Ironport-hdrordr: A9a23:TcoCoq/RqmPxiZ/jeC1uk+G/dr1zdoMgy1knxilNoENuH/Bwxv rFoB1E73TJYVYqN03IV+rwXZVoZUmsjaKdhrNhRotKPTOWwVdASbsP0WKM+V3d8kHFh41gPO JbAtJD4b7LfCdHZKTBkW6F+r8bqbHokZxAx92uqUuFJTsaF52IhD0JbjpzfHcGJjWvUvECZe ehD4d81nOdkTN9VLXJOlA1G8z44/HbnpPvZhALQzYh9Qm1lDutrJLqDhSC2R8acjVXhZMv63 LMnQDV7riq96jT8G6Q60bjq7Bt3PfxwNpKA8KBzuATNzXXkw6tIKhxRrGYuzgxgee3rHInis PFrRsMN9l6r1nRYma2ix3w3BSI6kdl11bSjXujxVfzq83wQzw3T+JHmIJiaxPcr24tpst13q 5n13+Q88M/N2KKoA3No/zzEz16nEu9pnQv1cYVknxkSIMbLJtct5YW8k95GIoJWAj69IckOu 9zC9y03ocfTXqqK1Ti+kV/yt2lWXo+Wj+AX0g5o8SQlwNbmXhopnFosPA3rzMlztYQWpNE7+ PLPuBDj7dVVPIbaqp7GaMoXda3Inale2OMDEuiZXDcUI0XMXPErJD6pJ8v4vuxRZAOxJwu3L zcTVJjs3IocU6GM7zB4HRyyGGPfIyBZ0Wu9ikHjKIJ/4EUBYCbfhFrcWpe0/dJ+J4kc4nms/ XaAuMiPxasFxqoJW9z5XyPZ3BjEwhhbCQrgKdLZ7uvmLO9FmS4jJ2sTN/jYJzQLB0DZkTTRl M+YRmbHrQz0qnsYA61vCTs
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Fri, Nov 11, 2022 at 05:47:02PM +0000, Andrew Cooper wrote:
> 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.
I'm not seeing how you are making this connection: the context here is
strictly about a Viridian hint which Xen has been wrongly reporting,
but has nothing to do with the APIC assist API/ABI stuff. It was
wrong before the introduction of APIC assist, and it's also wrong
after.
Also see my other reply - I'm dubious whether this hint is useful for
any Windows version that supports x2APIC (which seems to be >= Windows
Server 2008), because we expose x2APIC to guests regardless of whether
the underlying platform APIC supports such mode.
Thanks, Roger.
|