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

From: Ananiev, Leonid I
Date: Wed Jul 05 2006 - 11:47:30 EST


Nikita Danilov writes:
> What about replacing
> pdflush_operation(background_writeout, 0);
> with
> if (pdflush_operation(background_writeout, 0))
>
> writeback_inodes(&wbc);
The is a latency betwean pdflush_operation() call and
writeback_in_progress(bdi) returns true.
As a result writeback_inodes() may be called in next loop before pdflush
is started. Pdflush detects that writeback_in_progress() returns true
for it and will exit.

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

Ananiev, Leonid I writes:
> Nikita Danilov writes:
> > suppose you have more than MAX_PDFLUSH_THREADS
> Do you consider that the drawback of the patch is in that the value
> MAX_PDFLUSH_THREADS is not well known high or this limit is not
deleted

I am more concerned, that this patch _limits_ maximal possible writeback
concurrency to MAX_PDFLUSH_THREADS.

> at all? The limit could be deleted after patching because the line

That sounds a bit too extreme, given that pdflush is used for a lot of
things other than background write-out.

> + if (writeback_in_progress(bdi)) {
> keeps off creating extra pdflush threads.

What about replacing

pdflush_operation(background_writeout, 0);

with

if (pdflush_operation(background_writeout, 0))
/*
* Fall back to synchronous writeback if all pdflush
* threads are busy.
*/
writeback_inodes(&wbc);

? This will combine increased concurrency in your target case (single
writer) with some safety net in the case of multiple writers and
multiple devices.

>
> Leonid

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/