On Tue, 05 Aug 2003 13:38:34 +1000, Nick Piggin said: > Of course some minimum read _latency_ would be required: this > could actually be done easily with strace come to think of it. > > Maybe some xmms mapped memory is being swapped out? But that > would be more of a VM problem. I was seeing some CPU-related pauses, but once Con's work got to O7 or so, those disappeared. I'm *quite* convinced that the remaining glitches are VM related, mostly because every glitch seems to be associated with an increase in the 'pswpout' field in /proc/vmstat (yes, I tested with stuff like "for (;;) do cat /proc/vmstat; sleep 1 done;". The *odd* part is that the pgpgin, pgpgout, and pswpin numbers do *NOT* seem to be correlated. High I/O loads from read/write don't seem to cause a problem - untarring the Linux distro won't do it, running badblocks won't do it. But if somebody has to swap out, all hell breaks loose... Hmm.. looking at mm/page_io.c, it seems swap_writepage() calls get_swap_bio with GFP_NOIO, while readdpage() uses GFP_KERNEL. I wonder if that GFP_NOIO is causing ugliness - that's really __GFP_WAIT, and the comments in bio_alloc() are pretty clear that it can block. And remember we're not getting into this code unless we're already under memory pressure.... (And if somebody tells me how to instrument a -test2-mm4 kernel so I can tell if I'm on crack or not, I'll happily do so....)