[dm-devel] [PATCH 0/6] dm: restrict conflicting table loads and improve queue initialization
Mike Snitzer
snitzer at redhat.com
Sun May 23 21:44:55 UTC 2010
This work has expanded in scope somewhat (based on Mikulas' suggestion
that I pursue more constrained table/device type switching to avoid
Kiyoshi's locking concerns). A mapped_device now has a specific type
(md->type) that is managed in table_{load,clear} (see patch 3/6).
It should be noted that patch 4/6 is labeled "v8". I still believe
v7's locking strategy is _not_ prone to problematic deadlock, as I
detailed/questioned here: http://lkml.org/lkml/2010/5/21/175
v7 is still available for viewing here:
https://patchwork.kernel.org/patch/101270/
But this new series eliminates v7's locking between table_load() and
do_resume() -- fixed md->type made this possible. So these changes
may be more desirable overall (adds some clearer exclusion and state
transitions that I feel help DM without being too restrictive).
Please see the individual patch headers for more details.
A monolithic patch is also available here:
http://people.redhat.com/msnitzer/patches/dm-queue-init/monolithic.patch
I welcome all comments/review. Hopefully others will find that what
I've done is worthwhile.
Mike Snitzer (6):
block: Adjust elv_iosched_show to return "none" for bio-based DM
dm ioctl: interlock resume and table clear
dm: prevent table type changes after initial table load
dm: only initialize full request_queue for request-based device
dm ioctl: introduce dm_get_verified_mdptr
dm ioctl: introduce find_device_noinit
block/elevator.c | 2 +-
drivers/md/dm-ioctl.c | 148 +++++++++++++++++++++++++++------
drivers/md/dm.c | 216 +++++++++++++++++++++++++++++++++++++++++-------
drivers/md/dm.h | 12 +++
4 files changed, 318 insertions(+), 60 deletions(-)
More information about the dm-devel
mailing list