lkml.org 
[lkml]   [2009]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2] slab,slub: ignore __GFP_WAIT if we're booting or suspending
Hi Linus,

Linus Torvalds wrote:
>
> On Fri, 12 Jun 2009, Pekka J Enberg wrote:
>>
>> + if (system_state != SYSTEM_RUNNING)
>> + local_flags &= ~__GFP_WAIT;
>> +
>> + might_sleep_if(local_flags & __GFP_WAIT);
>
> This is pointless.
>
> You're doing the "might_sleep_if()" way too late. At that point, you've
> already lost 99% of all coverage, since now none of the cases of just
> finding a free slab entry on the list will ever trigger that
> "might_sleep()" case.
>
> So you need to do this _early_, at the entry-point, not late, at cache
> re-fill time.
>
> So rather than removing the might_sleep_if() at the early point, and then
> moving it to this late stage (because you only do the local_flags fixups
> late), you need to move the local-flags fixup early instead, and do the
> might_sleep_it() there.
>
> The whole point of "might_sleep()" is that it triggers every time if
> something is called in the wrong context - not just for the cases where it
> actually _does_ sleep.

OK, makes sense. So what do you think of this patch then:

http://patchwork.kernel.org/patch/29733/

It's what Ben has been proposing all along in a slightly edited form.

Pekka


\
 
 \ /
  Last update: 2009-06-12 17:13    [W:0.476 / U:0.104 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site