summaryrefslogtreecommitdiff
path: root/lib/dynamic_debug.c
diff options
context:
space:
mode:
authorPeter W Morreale <pmorreale@novell.com>2009-04-06 19:00:28 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-07 08:31:03 -0700
commita56ed663047fc9927ec8b35750d23ece54f85dc7 (patch)
treeb992006bf34124f746f01530113803b175177782 /lib/dynamic_debug.c
parent9133df726fdd3df0ca9efcaaae22442198851d65 (diff)
mm: fix pdflush thread creation upper bound
Fix a race on creating pdflush threads. Without the patch, it is possible to create more than MAX_PDFLUSH_THREADS threads, and this has been observed in practice on IO loaded SMP machines. The fix involves moving the lock around to protect the check against the thread count and correctly dealing with thread creation failure. This fix also _mostly_ repairs a race condition on how quickly the threads are created. The original intent was to create a pdflush thread (up to the max allowed) every second. Without this patch is is possible to create NCPUS pdflush threads concurrently. The 'mostly' caveat is because an assumption is made that thread creation will be successful. If we fail to create the thread, the miss is not considered fatal. (we will try again in 1 second) Signed-off-by: Peter W Morreale <pmorreale@novell.com> Reviewed-by: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/dynamic_debug.c')
0 files changed, 0 insertions, 0 deletions