Re: [PATCH] mm,page_alloc: PF_WQ_WORKER should always sleep at should_reclaim_retry().

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2018/07/09 16:57, Michal Hocko wrote:
> On Sun 08-07-18 19:35:58, Tetsuo Handa wrote:
>> From: Michal Hocko <mhocko@xxxxxxxx>
>>
>> should_reclaim_retry() should be a natural reschedule point. PF_WQ_WORKER
>> is a special case which needs a stronger rescheduling policy. However,
>> since schedule_timeout_uninterruptible(1) for PF_WQ_WORKER depends on
>> __zone_watermark_ok() == true, PF_WQ_WORKER is currently counting on
>> mutex_trylock(&oom_lock) == 0 in __alloc_pages_may_oom() which is a bad
>> expectation.
> 
> I think your reference to the oom_lock is more confusing than helpful
> actually. I would simply use the following from your previous [1]
> changelog:

Then, you can post yourself because

> : should_reclaim_retry() should be a natural reschedule point. PF_WQ_WORKER
> : is a special case which needs a stronger rescheduling policy. Doing that
> : unconditionally seems more straightforward than depending on a zone being
> : a good candidate for a further reclaim.
> : 
> : Thus, move the short sleep when we are waiting for the owner of oom_lock
> : (which coincidentally also serves as a guaranteed sleep for PF_WQ_WORKER
> : threads) to should_reclaim_retry().
> 
>> unconditionally seems more straightforward than depending on a zone being
>> a good candidate for a further reclaim.
> 
> [1] http://lkml.kernel.org/r/1528369223-7571-2-git-send-email-penguin-kernel@xxxxxxxxxxxxxxxxxxx
> 
> [Tetsuo: changelog]
>> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
>> Cc: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
>> Cc: David Rientjes <rientjes@xxxxxxxxxx>
>> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
>> Cc: Joonsoo Kim <js1304@xxxxxxxxx>
>> Cc: Mel Gorman <mgorman@xxxxxxx>
>> Cc: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx>
>> Cc: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
>> Cc: Vlastimil Babka <vbabka@xxxxxxx>
> 
> Your s-o-b is still missing.

all code changes in this patch is from you. That is, my s-o-b is not missing.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux