[dm-devel] [RFC] dm-writeboost: Porting daemon modulating migration from userland into the kernel

Akira Hayakawa ruby.wktk at gmail.com
Mon Sep 16 08:54:15 UTC 2013


Hi, DM Guys,

I am thinking of a little design change
as to autonomous migration feature.
I want to share this issue with you
to first ask for your advice
and for you to deeply understand the 
functionality of dm-writeboost at the same time.


dm-writeboost has a daemon that autonomouly turn on/off migration.
Migration means writing back from cache device to backing store.
The daemon checking the load of backing stores
and turn on/off migration accoding to the load.
Migration despite the backing store in high load
causes long queuing to the backing store
that makes the situation even worse.

The daemon is now implemented in Python using PythonDaemon module
since the daemon is not essential for dm-writeboost kernel module
to run without failure.

My idea is to port this daemon to in-kernel.

The reasons are:
1. The daemon can be said to be "nearly" essential.
   Who wants to use dm-writeboost without the daemon is my question.
   I think none.
2. Functionality of the kernel module should be self-sufficient in kernel.
3. I think I should not depend on PythonDaemon module anymore
   because the module sometime doesn't work as I expect,
   stopping the daemon but it remains running,
   and asking the maintainer doesn't respond for months.

I have studies the implementation
for this porting.

The current implementation is
parsing /proc/diskstats every seconds
and the relavant code in kernel is to read
disk_stats structure through part_stat_read(part, field) macro.

Also, I have a good idea for locking.
I supporse I don't need to add another lock in this porting.

However, of course, possible cons to my idea
is worrying the kernel code becoming more complex.


If you have experienced the same situation
and have some advice on this issue
please tell me.

Akira




More information about the dm-devel mailing list