[dm-devel] [PATCH] dm cache: add writeback watermarks
Steven Wilton
swilton at fluentit.com.au
Wed Mar 9 00:43:28 UTC 2016
On 8/03/2016 11:23 PM, Joe Thornber wrote:
> On Tue, Mar 08, 2016 at 10:52:42PM +0800, Steven Wilton wrote:
>> Add 2 new options to the dm-cache code, writeback_low_watermark to
>> keep a section of the cache dirty in order to reduce the amount
>> of data being migrated from the cache to the origin, and
>> writeback_high_watermark to allow a threshold to be set where the
>> dirty cache entries are flushed as quick as possible.
> Right. mq is being removed, or rather becoming an alias for smq (patch
> posted a couple of weeks ago to dm-devel).
>
> smq already has a writeback delay to prevent writeback of frequently
> changing data:
>
> https://github.com/jthornber/linux-2.6/blob/thin-dev/drivers/md/dm-cache-policy-smq.c#L338
> https://github.com/jthornber/linux-2.6/blob/thin-dev/drivers/md/dm-cache-policy-smq.c#L850
> https://github.com/jthornber/linux-2.6/blob/thin-dev/drivers/md/dm-cache-policy-smq.c#L876
>
> and has a threshold/watermark that triggers more aggressive writeback:
>
> https://github.com/jthornber/linux-2.6/blob/thin-dev/drivers/md/dm-cache-policy-smq.c#L1463
>
> I think this decision belongs in the policy, you've moved it to the
> core.
>
> Also I'm trying to avoid introducing tunables to the interface. It's
> not enough to document what the tunables do, but we also have to
> explain how people should arrive at the correct values for their work
> loads.
>
> Have you tried smq? What work load are you running? Does your patch
> improve things?
>
> - Joe
>
Hi Joe,
I'm very new to dm-devel, and was not aware of the smq patch. I will
base any new patches off this work. I did just had a look, and am I
correct in saying that the smq patch will still be limited to migrating
data at the migration_threshold rate?
I have not tried my patch on any production data yet, since I wanted to
make sure I had not done anything obviously that was going to eat my
data first :) If it is possible to confirm that I'm not doing anything
silly, I am happy to both run some benchmarks and see the difference on
production workloads, and post any results.
My goal is to reduce the number of writebacks occurring, and I still
think that having a low watermark is the best way to achieve. I know
that I was reading some notes form the bcache developer, who found that
having a low watermark helped bcache. The one improvement that I can
think of would be to flush below the low watermark if the I/O load is
below a particular threshold.
If you could have a look at my patch to confirm that it's not doing
anything bad, I will update my branch to use smq and develop a patch
against that, and run some tests on my data before posting another patch.
regards
Steven
More information about the dm-devel
mailing list