Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Daniel Wagner
On 10/12/2015 01:58 PM, Peter Zijlstra wrote: > On Mon, Oct 12, 2015 at 12:03:06PM +0200, Daniel Wagner wrote: >> On 10/12/2015 11:17 AM, Daniel Wagner wrote: >>> On 09/09/2015 04:26 PM, Peter Zijlstra wrote: On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: > @@ -50,10

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Peter Zijlstra
On Mon, Oct 12, 2015 at 12:03:06PM +0200, Daniel Wagner wrote: > On 10/12/2015 11:17 AM, Daniel Wagner wrote: > > On 09/09/2015 04:26 PM, Peter Zijlstra wrote: > >> On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: > >>> @@ -50,10 +50,10 @@ void complete_all(struct completion *x) >

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Daniel Wagner
On 10/12/2015 11:17 AM, Daniel Wagner wrote: > On 09/09/2015 04:26 PM, Peter Zijlstra wrote: >> On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: >>> @@ -50,10 +50,10 @@ void complete_all(struct completion *x) >>> { >>> unsigned long flags; >>> >>> -

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Daniel Wagner
On 09/09/2015 04:26 PM, Peter Zijlstra wrote: > On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: >> @@ -50,10 +50,10 @@ void complete_all(struct completion *x) >> { >> unsigned long flags; >> >> -spin_lock_irqsave(>wait.lock, flags); >> +

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Daniel Wagner
On 10/12/2015 11:17 AM, Daniel Wagner wrote: > On 09/09/2015 04:26 PM, Peter Zijlstra wrote: >> On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: >>> @@ -50,10 +50,10 @@ void complete_all(struct completion *x) >>> { >>> unsigned long flags; >>> >>> -

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Daniel Wagner
On 09/09/2015 04:26 PM, Peter Zijlstra wrote: > On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: >> @@ -50,10 +50,10 @@ void complete_all(struct completion *x) >> { >> unsigned long flags; >> >> -spin_lock_irqsave(>wait.lock, flags); >> +

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Peter Zijlstra
On Mon, Oct 12, 2015 at 12:03:06PM +0200, Daniel Wagner wrote: > On 10/12/2015 11:17 AM, Daniel Wagner wrote: > > On 09/09/2015 04:26 PM, Peter Zijlstra wrote: > >> On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: > >>> @@ -50,10 +50,10 @@ void complete_all(struct completion *x) >

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-10-12 Thread Daniel Wagner
On 10/12/2015 01:58 PM, Peter Zijlstra wrote: > On Mon, Oct 12, 2015 at 12:03:06PM +0200, Daniel Wagner wrote: >> On 10/12/2015 11:17 AM, Daniel Wagner wrote: >>> On 09/09/2015 04:26 PM, Peter Zijlstra wrote: On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: > @@ -50,10

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-09-09 Thread Peter Zijlstra
On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: > @@ -50,10 +50,10 @@ void complete_all(struct completion *x) > { > unsigned long flags; > > - spin_lock_irqsave(>wait.lock, flags); > + raw_spin_lock_irqsave(>wait.lock, flags); > x->done += UINT_MAX/2; > -

[PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-09-09 Thread Daniel Wagner
From: Paul Gortmaker Completions have no long lasting callbacks and therefore do not need the complex waitqueue variant. Use simple waitqueues which reduces the contention on the waitqueue lock. This was a carry forward from v3.10-rt, with some RT specific chunks, dropped, and updated to align

[PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-09-09 Thread Daniel Wagner
From: Paul Gortmaker Completions have no long lasting callbacks and therefore do not need the complex waitqueue variant. Use simple waitqueues which reduces the contention on the waitqueue lock. This was a carry forward from v3.10-rt, with some RT specific chunks,

Re: [PATCH v1 3/8] sched/completion: convert completions to use simple wait queues

2015-09-09 Thread Peter Zijlstra
On Wed, Sep 09, 2015 at 02:05:29PM +0200, Daniel Wagner wrote: > @@ -50,10 +50,10 @@ void complete_all(struct completion *x) > { > unsigned long flags; > > - spin_lock_irqsave(>wait.lock, flags); > + raw_spin_lock_irqsave(>wait.lock, flags); > x->done += UINT_MAX/2; > -