Re: [PATCH] 3/4: writeout watermarks

Nick Piggin
2004-08-06T06:13:35Z

Andrew Morton wrote:
> Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
>>No, it is not that code I am worried about, you're actually doing
>> this too (disregarding the admin's wishes):
>>
>> dirty_ratio = vm_dirty_ratio;
>> if (dirty_ratio > unmapped_ratio / 2)
>> dirty_ratio = unmapped_ratio / 2;
>>
>> if (dirty_ratio < 5)
>> dirty_ratio = 5;
>>
>
>
> hm, OK, that's some "try to avoid writeback off the LRU" stuff.
>

Yep

> But you said "This ensures we should always attempt to start background
> writeout before synchronous writeout.". Does not the current code do that?
>

Basically what the above code, is scale the dirty_ratio with the
amount of unmapped pages, however it doesn't also scale the
dirty_background_ratio (it does after my patch).

So it isn't difficult to imagine this causing dirty_ratio to become
very close to dirty_background_ratio.

The crude check prevents the values from becoming exactly equal.

if (background_ratio >= dirty_ratio)
background_ratio = dirty_ratio / 2;

>
>> So if the admin wants a dirty_ratio of 40 and dirty_background_ratio of 10
>> then that's good, but I'm sure if they knew you're moving dirty_ratio to 10
>> here, they'd want something like 2 for the dirty_background_ratio.
>>
>> I contend that the ratio between these two values is more important than
>> their absolue values -- especially considering one gets twiddled here.
>
>
> Maybe true, maybe false. These things are demonstrable via testing, no?
>
>

Might be, I don't know how. Seemed straightforward (to me).