Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-28 Thread Julien Grall
Hi Stefano, On 20/12/16 19:38, Stefano Stabellini wrote: On Tue, 20 Dec 2016, Julien Grall wrote: On 20/12/2016 00:22, Stefano Stabellini wrote: On Mon, 19 Dec 2016, Julien Grall wrote: On 19/12/2016 23:30, Stefano Stabellini wrote: On Mon, 19 Dec 2016, Julien Grall wrote: 2) We run

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-21 Thread Stefano Stabellini
On Tue, 20 Dec 2016, Stefano Stabellini wrote: > On Tue, 20 Dec 2016, Julien Grall wrote: > > Hi Stefano, > > > > On 20/12/2016 00:22, Stefano Stabellini wrote: > > > On Mon, 19 Dec 2016, Julien Grall wrote: > > > > Hi Stefano, > > > > > > > > On 19/12/2016 23:30, Stefano Stabellini wrote: > > >

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-20 Thread Stefano Stabellini
On Tue, 20 Dec 2016, Julien Grall wrote: > Hi Stefano, > > On 20/12/2016 00:22, Stefano Stabellini wrote: > > On Mon, 19 Dec 2016, Julien Grall wrote: > > > Hi Stefano, > > > > > > On 19/12/2016 23:30, Stefano Stabellini wrote: > > > > On Mon, 19 Dec 2016, Julien Grall wrote: > > > > > > > 2) We

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-20 Thread Julien Grall
Hi Stefano, On 20/12/2016 00:22, Stefano Stabellini wrote: On Mon, 19 Dec 2016, Julien Grall wrote: Hi Stefano, On 19/12/2016 23:30, Stefano Stabellini wrote: On Mon, 19 Dec 2016, Julien Grall wrote: 2) We run gic_update_one_lr and vgic_store_itargetsr in parallel safely and locklessly.

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-19 Thread Stefano Stabellini
On Mon, 19 Dec 2016, Julien Grall wrote: > Hi Stefano, > > On 19/12/2016 23:30, Stefano Stabellini wrote: > > On Mon, 19 Dec 2016, Julien Grall wrote: > > > > > 2) We run gic_update_one_lr and vgic_store_itargetsr in parallel > > > > > safely > > > > > and locklessly. There might be a way to do

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-19 Thread Julien Grall
Hi Stefano, On 19/12/2016 23:30, Stefano Stabellini wrote: On Mon, 19 Dec 2016, Julien Grall wrote: 2) We run gic_update_one_lr and vgic_store_itargetsr in parallel safely and locklessly. There might be a way to do it, but it is not easy I haven't found it yet. Correct me if I am wrong.

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-19 Thread Stefano Stabellini
On Mon, 19 Dec 2016, Julien Grall wrote: > Hi Stefano, > > On 17/12/2016 02:13, Stefano Stabellini wrote: > > On Fri, 16 Dec 2016, Stefano Stabellini wrote: > > > On Fri, 16 Dec 2016, Julien Grall wrote: > > > > Hi Stefano, > > > > > > > > On 16/12/16 00:08, Stefano Stabellini wrote: > > > > >

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-19 Thread Julien Grall
Hi Stefano, On 17/12/2016 02:13, Stefano Stabellini wrote: On Fri, 16 Dec 2016, Stefano Stabellini wrote: On Fri, 16 Dec 2016, Julien Grall wrote: Hi Stefano, On 16/12/16 00:08, Stefano Stabellini wrote: On Thu, 15 Dec 2016, Julien Grall wrote: On 15/12/2016 01:04, Stefano Stabellini

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-16 Thread Stefano Stabellini
On Fri, 16 Dec 2016, Stefano Stabellini wrote: > On Fri, 16 Dec 2016, Julien Grall wrote: > > Hi Stefano, > > > > On 16/12/16 00:08, Stefano Stabellini wrote: > > > On Thu, 15 Dec 2016, Julien Grall wrote: > > > > On 15/12/2016 01:04, Stefano Stabellini wrote: > > > > > The locking order is:

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-16 Thread Stefano Stabellini
On Fri, 16 Dec 2016, Julien Grall wrote: > Hi Stefano, > > On 16/12/16 00:08, Stefano Stabellini wrote: > > On Thu, 15 Dec 2016, Julien Grall wrote: > > > On 15/12/2016 01:04, Stefano Stabellini wrote: > > > > The locking order is: first rank lock, then vgic lock. The order is > > > > respected

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-16 Thread Julien Grall
Hi Stefano, On 16/12/16 00:08, Stefano Stabellini wrote: On Thu, 15 Dec 2016, Julien Grall wrote: On 15/12/2016 01:04, Stefano Stabellini wrote: The locking order is: first rank lock, then vgic lock. The order is respected everywhere, except for gic_update_one_lr. gic_update_one_lr is called

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-15 Thread Stefano Stabellini
On Thu, 15 Dec 2016, Julien Grall wrote: > Hi Stefano, > > On 15/12/2016 01:04, Stefano Stabellini wrote: > > The locking order is: first rank lock, then vgic lock. The order is > > respected everywhere, except for gic_update_one_lr. > > > > gic_update_one_lr is called with the vgic lock held,

Re: [Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-15 Thread Julien Grall
Hi Stefano, On 15/12/2016 01:04, Stefano Stabellini wrote: The locking order is: first rank lock, then vgic lock. The order is respected everywhere, except for gic_update_one_lr. gic_update_one_lr is called with the vgic lock held, but it calls vgic_get_target_vcpu, which tries to obtain the

[Xen-devel] [PATCH] xen/arm: fix rank/vgic locks inversion bug

2016-12-14 Thread Stefano Stabellini
The locking order is: first rank lock, then vgic lock. The order is respected everywhere, except for gic_update_one_lr. gic_update_one_lr is called with the vgic lock held, but it calls vgic_get_target_vcpu, which tries to obtain the rank lock. This can cause deadlocks. We already have a version