Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-19 Thread Roger Pau Monné
id Woodhouse > >>> Sent: 11 August 2020 14:25 > >>> To: Paul Durrant ; > >>> xen-devel@lists.xenproject.org; Roger Pau Monne > >>> > >>> Cc: Eslam Elnikety ; Andrew Cooper > >>> ; Shan Haitao > >>> ; Jan Beulich

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-19 Thread Jan Beulich
; xen-devel@lists.xenproject.org; >>> Roger Pau Monne >>> >>> Cc: Eslam Elnikety ; Andrew Cooper >>> ; Shan Haitao >>> ; Jan Beulich >>> Subject: Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist >>> code >>>

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-14 Thread Roger Pau Monné
On Fri, Aug 14, 2020 at 03:13:51PM +0100, David Woodhouse wrote: > On Thu, 2020-08-13 at 11:45 +0200, Roger Pau Monné wrote: > > > The loop appears to be there to handle the case where multiple > > > devices assigned to a domain have MSIs programmed with the same > > > dest/vector... which seems li

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-14 Thread David Woodhouse
On Thu, 2020-08-13 at 11:45 +0200, Roger Pau Monné wrote: > > The loop appears to be there to handle the case where multiple > > devices assigned to a domain have MSIs programmed with the same > > dest/vector... which seems like an odd thing for a guest to do but I > > guess it is at liberty to do

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-13 Thread Roger Pau Monné
t; > > Cc: Eslam Elnikety ; Andrew Cooper > > ; Shan Haitao > > ; Jan Beulich > > Subject: Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist > > code > > > > Resending this straw man patch at Roger's request, to restart discussion

RE: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-13 Thread Paul Durrant
t: Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code > > Resending this straw man patch at Roger's request, to restart discussion. > > Redux: In order to cope with the relatively rare case of unmaskable > legacy MSIs, each vlapic EOI takes a domain-global s

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-12 Thread Roger Pau Monné
Sorry for not replying earlier, wanted to finish something first. On Tue, Aug 11, 2020 at 02:25:16PM +0100, David Woodhouse wrote: > Resending this straw man patch at Roger's request, to restart discussion. > > Redux: In order to cope with the relatively rare case of unmaskable > legacy MSIs, eac

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2020-08-11 Thread David Woodhouse
Resending this straw man patch at Roger's request, to restart discussion. Redux: In order to cope with the relatively rare case of unmaskable legacy MSIs, each vlapic EOI takes a domain-global spinlock just to iterate over all IRQs and determine that there's actually nothing to do. In my testing,

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-05 Thread Paul Durrant
> -Original Message- > From: David Woodhouse [mailto:dw...@infradead.org] > Sent: 05 September 2018 11:45 > To: Paul Durrant ; xen-devel@lists.xenproject.org > Cc: Eslam Elnikety ; Andrew Cooper > ; Shan Haitao ; Jan > Beulich > Subject: Re: [Xen-devel] [PA

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-05 Thread David Woodhouse
On Wed, 2018-09-05 at 10:40 +, Paul Durrant wrote: > > Actually the neatest approach would be to get information into the > vlapic code as to whether APIC assist is suitable for the given > vector so that the code there can selectively enable it, and then Xen > would know it was safe to avoid

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-05 Thread Paul Durrant
tao ; Jan > Beulich > Subject: Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist > code > > > -Original Message- > > From: David Woodhouse [mailto:dw...@infradead.org] > > Sent: 05 September 2018 10:40 > > To: Paul Durrant ; xen- > d

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-05 Thread Paul Durrant
> -Original Message- > From: David Woodhouse [mailto:dw...@infradead.org] > Sent: 05 September 2018 10:40 > To: Paul Durrant ; xen-devel@lists.xenproject.org > Cc: Andrew Cooper ; Jan Beulich > ; Eslam Elnikety ; Shan Haitao > > Subject: Re: [Xen-devel] [PA

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-05 Thread David Woodhouse
On Wed, 2018-09-05 at 09:36 +, Paul Durrant wrote: > > I see. Given that Windows has used APIC assist to circumvent its EOI > then I wonder whether we can get away with essentially doing the > same. I.e. for a completed APIC assist found in > vlapic_has_pending_irq() we simply clear the APIC a

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-05 Thread Paul Durrant
> -Original Message- > From: David Woodhouse [mailto:dw...@infradead.org] > Sent: 04 September 2018 21:31 > To: Paul Durrant ; xen-devel@lists.xenproject.org > Cc: Andrew Cooper ; Jan Beulich > ; Eslam Elnikety ; Shan Haitao > > Subject: Re: [Xen-devel] [PA

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-04 Thread David Woodhouse
On Mon, 2018-09-03 at 10:12 +, Paul Durrant wrote: > > I believe APIC assist is intended for fully synthetic interrupts. Hm, if by 'fully synthetic interrupts' you mean vlapic_virtual_intr_delivery_enabled(), then no I think APIC assist doesn't get used in that case at all. > Is it definitel

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-09-03 Thread Paul Durrant
> -Original Message- > From: David Woodhouse [mailto:dw...@infradead.org] > Sent: 25 August 2018 00:38 > To: Paul Durrant ; xen-devel@lists.xenproject.org > Cc: Andrew Cooper ; Jan Beulich > ; Eslam Elnikety ; Shan Haitao > > Subject: Re: [Xen-devel] [PATCH v2] x

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-08-24 Thread David Woodhouse
On Thu, 2018-01-18 at 10:10 -0500, Paul Durrant wrote: > Lastly the previous code did not properly emulate an EOI if a missed EOI > was discovered in vlapic_has_pending_irq(); it merely cleared the bit in > the ISR. The new code instead calls vlapic_EOI_set(). Hm, this *halves* my observed perform

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-01-18 Thread Paul Durrant
> -Original Message- > From: Jan Beulich [mailto:jbeul...@suse.com] > Sent: 18 January 2018 16:21 > To: Paul Durrant > Cc: Andrew Cooper ; xen- > de...@lists.xenproject.org > Subject: Re: [PATCH v2] x86/hvm: re-work viridian APIC assist code > > >>> On 18.01.18 at 16:10, wrote: > > -int

Re: [Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-01-18 Thread Jan Beulich
>>> On 18.01.18 at 16:10, wrote: > -int viridian_complete_apic_assist(struct vcpu *v) > +bool viridian_apic_assist_completed(struct vcpu *v) > { > uint32_t *va = v->arch.hvm_vcpu.viridian.vp_assist.va; > -int vector; > > if ( !va ) > -return 0; > +return false; >

[Xen-devel] [PATCH v2] x86/hvm: re-work viridian APIC assist code

2018-01-18 Thread Paul Durrant
It appears there is a case where Windows enables the APIC assist enlightenment[1] but does not use it. This scenario is perfectly valid according to the documentation, but causes the state machine in Xen to become confused leading to a domain_crash() such as the following: (XEN) d4: VIRIDIAN GUEST