Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Paolo Bonzini
On 07/07/2015 13:33, Wu, Feng wrote: >>> > > The need to store the consumer->producer link seems to be unique to >>> > > posted interrupts. It is difficult to say without seeing the PI code, >>> > > but I prefer to keep the bypass manager as small as possible. >> > >> > Fine. I will follow your

RE: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Wu, Feng
om; > alex.william...@redhat.com; avi.kiv...@gmail.com; mtosa...@redhat.com; > j...@8bytes.org; b.rey...@virtualopensystems.com > Cc: linux-ker...@vger.kernel.org; patc...@linaro.org; Wu, Feng > Subject: RE: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding > control &

RE: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Wu, Feng
er.d...@linaro.org; marc.zyng...@arm.com; > alex.william...@redhat.com; avi.kiv...@gmail.com; mtosa...@redhat.com; > j...@8bytes.org; b.rey...@virtualopensystems.com > Cc: linux-ker...@vger.kernel.org; patc...@linaro.org > Subject: Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Paolo Bonzini
On 07/07/2015 13:18, Wu, Feng wrote: > Then I still need assign prod and de-assign prod in > irq_bypass_register_consumer/irq_bypass_unregister_consumer, Right? > Would you please share why this is better. The need to store the consumer->producer link seems to be unique to posted interrupts. It

RE: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Wu, Feng
er.d...@linaro.org; marc.zyng...@arm.com; > alex.william...@redhat.com; avi.kiv...@gmail.com; mtosa...@redhat.com; > j...@8bytes.org; b.rey...@virtualopensystems.com > Cc: linux-ker...@vger.kernel.org; patc...@linaro.org > Subject: Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Paolo Bonzini
On 07/07/2015 13:13, Wu, Feng wrote: >> > You can use container_of to add it to your own struct, e.g. >> > >> >struct irq_bypass_consumer cons; >> >struct irq_bypass_producer *prod; > Do you mean this: > > struct kvm_kernel_irqfd { > > .. > > struct irq_bypass_co

RE: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Wu, Feng
er.d...@linaro.org; marc.zyng...@arm.com; > alex.william...@redhat.com; avi.kiv...@gmail.com; mtosa...@redhat.com; > j...@8bytes.org; b.rey...@virtualopensystems.com > Cc: linux-ker...@vger.kernel.org; patc...@linaro.org > Subject: Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Paolo Bonzini
On 07/07/2015 12:58, Wu, Feng wrote: > > >> -Original Message- >> From: Eric Auger [mailto:eric.au...@linaro.org] >> Sent: Monday, July 06, 2015 8:11 PM >> To: eric.au...@st.com; eric.au...@linaro.org; >> linux-arm-ker...@lists.infradead.org; kvm...@lists.cs.columbia.edu; >> kvm@vger.ke

RE: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Wu, Feng
> -Original Message- > From: Eric Auger [mailto:eric.au...@linaro.org] > Sent: Monday, July 06, 2015 8:11 PM > To: eric.au...@st.com; eric.au...@linaro.org; > linux-arm-ker...@lists.infradead.org; kvm...@lists.cs.columbia.edu; > kvm@vger.kernel.org; christoffer.d...@linaro.org; marc.zyng.

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Paolo Bonzini
On 07/07/2015 09:10, Eric Auger wrote: > On 07/06/2015 07:41 PM, Paolo Bonzini wrote: >> >> >> On 06/07/2015 19:09, Eric Auger wrote: > The good thing is that this helps a bit forming a lock hierarchy across > the subsystems, for example irq bypass mutex outside vfio_platform_irq > sp

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-07 Thread Eric Auger
On 07/06/2015 07:41 PM, Paolo Bonzini wrote: > > > On 06/07/2015 19:09, Eric Auger wrote: The good thing is that this helps a bit forming a lock hierarchy across the subsystems, for example irq bypass mutex outside vfio_platform_irq spinlock, because you cannot have a spinlock insi

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-06 Thread Paolo Bonzini
On 06/07/2015 19:09, Eric Auger wrote: >> > The good thing is that this helps a bit forming a lock hierarchy across >> > the subsystems, for example irq bypass mutex outside vfio_platform_irq >> > spinlock, because you cannot have a spinlock inside the mutex. I think >> > that all of your six ca

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-06 Thread Eric Auger
On 07/06/2015 05:57 PM, Paolo Bonzini wrote: > > > On 06/07/2015 17:35, Eric Auger wrote: diff --git a/kernel/irq/bypass.c b/kernel/irq/bypass.c >> index 5d0f92b..efadbe5 100644 >> --- a/kernel/irq/bypass.c >> +++ b/kernel/irq/bypass.c >> @@ -19,6 +19,42 @@ static LIST_HEAD(p

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-06 Thread Paolo Bonzini
On 06/07/2015 17:35, Eric Auger wrote: >>> diff --git a/kernel/irq/bypass.c b/kernel/irq/bypass.c >>> >> index 5d0f92b..efadbe5 100644 >>> >> --- a/kernel/irq/bypass.c >>> >> +++ b/kernel/irq/bypass.c >>> >> @@ -19,6 +19,42 @@ static LIST_HEAD(producers); >>> >> static LIST_HEAD(consumers); >>>

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-06 Thread Eric Auger
Hi Paolo, On 07/06/2015 02:27 PM, Paolo Bonzini wrote: > > > On 06/07/2015 14:11, Eric Auger wrote: >> diff --git a/kernel/irq/bypass.c b/kernel/irq/bypass.c >> index 5d0f92b..efadbe5 100644 >> --- a/kernel/irq/bypass.c >> +++ b/kernel/irq/bypass.c >> @@ -19,6 +19,42 @@ static LIST_HEAD(producers

Re: [RFC v2 3/6] irq: bypass: Extend skeleton for ARM forwarding control

2015-07-06 Thread Paolo Bonzini
On 06/07/2015 14:11, Eric Auger wrote: > diff --git a/kernel/irq/bypass.c b/kernel/irq/bypass.c > index 5d0f92b..efadbe5 100644 > --- a/kernel/irq/bypass.c > +++ b/kernel/irq/bypass.c > @@ -19,6 +19,42 @@ static LIST_HEAD(producers); > static LIST_HEAD(consumers); > static DEFINE_MUTEX(lock); >