Re: [BUG] New Kernel Bugs

Linus Torvalds
2007-11-15T04:25:21Z

On Thu, 15 Nov 2007, Bron Gondwana wrote:
>
> And congratulations to him for that. We almost entirely dropped 2.6.16,
> but there's a regression some time since then that makes large MMAPed
> files a major pain (specifically the dcc database clean takes about 5
> minutes on 2.6.16 and about 12 hours on 2.6.20 or 2.6.23 series kernels)
>
> But we keep putting off writing a small testcase that can repeat the
> issue so we can bisect it - because it's working fine with 2.6.16 on
> that machine.

Heh. I suspect you don't even need to bisect it.

The big difference with large mmap'ed files is that later kernels will
actually track dirty ratios for dirty mmap'ed pages. Earlier kernels never
did.

So in older kernels, you can dirty as much memory as you want, and the
kernel will never try to write it back (well - "never" here means one of
either (a) you ask it to with msync or (b) you run out of memory, when the
kernel then totally falls down and the machine is essentially unusuable).

So *if* the symptom seems to be that the later kernels do a lot more IO,
then try to change

/proc/sys/vm/dirty_[background_]ratio

which is just a percentage of memory (defaults to 5% for background and
10% for foreground dirtying). Turn them both up a lot (say to 50 and 80
percent respectively) and see if that makes a difference.

If so, you'll be the first one to officially even notice this change, I
think.

Linus