Tejun Heo wrote: > Hello, > > On Tue, Aug 29, 2017 at 03:33:25PM +0200, Michal Hocko wrote: > > Hmm, we have this in should_reclaim_retry > > /* > > * Memory allocation/reclaim might be called from a WQ > > * context and the current implementation of the WQ > > * concurrency control doesn't recognize that > > * a particular WQ is congested if the worker thread is > > * looping without ever sleeping. Therefore we have to > > * do a short sleep here rather than calling > > * cond_resched(). > > */ > > if (current->flags & PF_WQ_WORKER) > > schedule_timeout_uninterruptible(1); > > > > And I thought it would be susfficient for kworkers for concurrency WQ > > congestion thingy to jump in. Or do we need something more generic. E.g. > > make cond_resched special for kworkers? > > I actually think we're hitting a bug somewhere. Tetsuo's trace with > the patch applies doesn't add up. > > Thanks. If we are under memory pressure, __zone_watermark_ok() can return false. If __zone_watermark_ok() == false, when is schedule_timeout_*() called explicitly? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>