Re: [patch 2/3] remove throttle_vm_writeout()

Miklos Szeredi
2007-03-26T08:35:41Z

> >
> > Remove this function. It's purpose was to limit the global number of
> > writeback pages from submitted by direct reclaim. But this is equally
> > well accomplished by limited queue lengths. When this function was
> > added, the device queues had much larger default lengths (8192
> > requests, now it's 128), causing problems.
>
> This changelog is wrong.
>
> Yes, the _default_ depth of CFQ was decreased. But it is trivial for the
> user to inrcrease the queue depth again, and we'd prefer that the VM not
> shit itself in response.
>
> Plus, more significantly, the queue is per-disk. A system with many disks
> will easily be able to cover all memory with under-writeback pages.
> Which is why the level of under-writeback memory is controlled at a higher
> level.
>
> These variables are why we must not reply upon per-queue throttling in
> VFS/MM/VM.
>
>
> All that being said, the patch (with a new, correct changlog) is OK. This
> is because we now control the amount of dirty memory in the machine by
> running balance_dirty_pages() at first-write-fault time. So we can no
> longer get into the situation where all memory is dirty+writeback.

Well, sort of. I think you are not taking SwapCache pages into
account, which just pop up out of nothing to be turned into writeback
pages.

So I think removing this function still relies on limited queues, or
some other method of limiting writeback.

Miklos