Re: [PATCH v4] ipc/msg: Implement lockless pipelined wakeups

2016-07-21 Thread Davidlohr Bueso
On Thu, 21 Jul 2016, Sebastian Andrzej Siewior wrote: * Davidlohr Bueso | 2016-07-20 17:16:12 [-0700]: Just as with expunge_all and the E2BIG case, could you remove that explicit barrier (B) and just rely on wake_q_add? Just did. So we have just a smp_rmb() on the reader side and the comment

Re: [PATCH v4] ipc/msg: Implement lockless pipelined wakeups

2016-07-21 Thread Sebastian Andrzej Siewior
* Davidlohr Bueso | 2016-07-20 17:16:12 [-0700]: >Just as with expunge_all and the E2BIG case, could you remove that explicit >barrier (B) and just rely on wake_q_add? Just did. So we have just a smp_rmb() on the reader side and the comment talks about smb_wmb() and at the spot where we should ha

Re: [PATCH v4] ipc/msg: Implement lockless pipelined wakeups

2016-07-20 Thread Davidlohr Bueso
On Wed, 20 Jul 2016, Sebastian Andrzej Siewior wrote: This patch moves the wakeup_process() invocation so it is not done under the perm->lock by making use of a lockless wake_q. With this change, the waiter is woken up once the message has been assigned and it does not need to loop on SMP if the

[PATCH v4] ipc/msg: Implement lockless pipelined wakeups

2016-07-20 Thread Sebastian Andrzej Siewior
This patch moves the wakeup_process() invocation so it is not done under the perm->lock by making use of a lockless wake_q. With this change, the waiter is woken up once the message has been assigned and it does not need to loop on SMP if the message points to NULL. In the signal case we still need