Re: [PATCH] O11int for interactivity

Valdis.Kletnieks
2003-08-05T04:54:43Z

[-- Attachment #1: Type: text/plain, Size: 1412 bytes --]

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....)

[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]