Re: [GIT PULL] workqueue fixes for v4.6-rc5

2016-04-27 Thread Tejun Heo
On Wed, Apr 27, 2016 at 11:49:35AM -0700, Linus Torvalds wrote: > On Wed, Apr 27, 2016 at 9:11 AM, Tejun Heo wrote: > > > > Unfortunately, we were missing a smp_rmb() after clearing PENDING for > > execution, so nothing guaranteed visibility of the changes that a > > queueing loser has made, which

Re: [GIT PULL] workqueue fixes for v4.6-rc5

2016-04-27 Thread Linus Torvalds
On Wed, Apr 27, 2016 at 9:11 AM, Tejun Heo wrote: > > Unfortunately, we were missing a smp_rmb() after clearing PENDING for > execution, so nothing guaranteed visibility of the changes that a > queueing loser has made, which manifested as a reproducible blk-mq > stall. That explanation makes no s

[GIT PULL] workqueue fixes for v4.6-rc5

2016-04-27 Thread Tejun Heo
Hello, Linus. So, it turns out we had a silly bug in the most fundamental part of workqueue for a very long time. AFAICS, this dates back to pre-git era and has quite likely been there from the time workqueue was first introduced. A work item uses its PENDING bit to synchronize multiple queuers.