RE: [PATCH] mm: moving dirty pages balancing to pdfludh entirely

From: Ananiev, Leonid I
Date: Tue Jul 04 2006 - 05:44:24 EST


Nikita Danilov wtites:
> performs page-out even if queue is congested.
Yes. If user thread which generates dirty pages need in
reclaimed memory it consider own dirty page as candidate for page-out.
It functions as before patching.

> Intent of this is to throttle writers.
I suppose you means dirtier or write(2) caller but not writepage()
caller. The dirtier is throttled with backing_dev_info logic as before
patching.

While pdflush thread sorts pages for page-out it does not
consider as a candidate a page to be written with congested queue.
Pdflush thread functions as before patching. Pdflush tends to make pages
un-dirty without overload memory or IO and it is not need to let pdflush
do page-out with congested queue as you have proposed.

Leonid

-----Original Message-----
From: Nikita Danilov [mailto:nikita@xxxxxxxxxxxxx]
Sent: Tuesday, July 04, 2006 12:33 PM
To: Ananiev, Leonid I
Cc: Linux Kernel Mailing List
Subject: Re: [PATCH] mm: moving dirty pages balancing to pdfludh
entirely


[Please, don't trim CC/To fields: LKML is too high traffic to read in
its entirety.]

Ananiev, Leonid I writes:
> Nikita Danilov writes:
> > Wouldn't this interfere with current->backing_dev_info logic?
>
> The proposed patch does not modify that logic.

Indeed, it *interferes* with it: in the original code, process doing
direct reclaim during balance_dirty_pages()


generic_file_write()->balance_dirty_pages()->...->__alloc_pages()->...->
pageout()

performs page-out even if queue is congested. Intent of this is to
throttle writers, and reduce risk of running oom (certain file systems,
especially ones with delayed allocation, tend to allocate a lot of
memory in balance_dirty_pages()->writepages() paths).

Your patch breaks this mechanism.

Nikita.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/