Re: khugepaged: gets stuck when writing to USB flash, 2.6.38-rc2
From: Andrea Arcangeli <hidden>
Date: 2011-02-03 19:06:51
On Thu, Feb 03, 2011 at 01:24:08PM +0000, Mel Gorman wrote:
This is very likely. Compaction calls into migration which will wait on dirty pages after a time. With a large number of dirty pages backed by a slow drive such as a USB stick, it could be getting stalled there for a long period of time. Whether migration sleeps or not can be controlled by the sync parameter passed into try_to_compact_memory which could be always forced to false if GFP_NO_KSWAPD?
I would expect that to hide any regression we could have because of
more dirty cache in the system, yes.
However Jindřich reported not being able to reproduce anything anymore
in -rc3, so I'm unsure if we should make that change anymore. I asked
to try again cause it should too easy that got fixed magically (but I
didn't check closely if there are usb/stroage changes in rc2->rc3 that
may explain this, so it's not impossible but sounds very unlikely that
it got fixed). More likely this isn't reproducible reliably, or maybe
it also happens without compaction and without THP ("cp /dev/zero
/mnt/usbdrive" isn't going to make the system behave nice regardless
of compaction being synchronous, asynchronous, or disabled) and maybe
he tried the copy with more or less free memory.
I'm doing some other performance check for another workload in the
pre-async compaction status, and I'll let you know when I get results.