[dm-devel] [PATCH 1/2] Add userspace device-mapper target
FUJITA Tomonori
fujita.tomonori at lab.ntt.co.jp
Sat Feb 10 00:34:43 UTC 2007
From: Dan Smith <danms at us.ibm.com>
Subject: Re: [dm-devel] [PATCH 1/2] Add userspace device-mapper target
Date: Fri, 09 Feb 2007 07:54:03 -0800
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> FT> We need a pointer and length (or size) but not an offset. This
> FT> enables an user-space to pass the kernel data to write.
>
> Why not an offset? If the kernel knows nothing of the format of the
> metadata, then userspace needs to be able to say "Put 512 bytes from
> this buffer at sector 23 on the disk".
Oops, I thought that we are talking about what to add to
dmu_msg_map_response structure. We need an offset for this feature,
but we already have it.
> FT> You need to set bio->bi_sector. bio_map_user() just grabs user's
> FT> pages and put them into a bio. Users of blk_rq_map_user (like
> FT> SG_IO) doesn't need bio->bi_sector.
>
> Right, ok, I've looked through scsi_ioctl.c and cdrom.c and I have a
> much better idea of how it is currently used.
Yeah, they are better examples.
> FT> Yeah, as you said, you can just allocate buffer and use it. If
> FT> buffer is properly aligned, we can do zero-copy. But if not, the
> FT> kernel allocates pages and copies user's pages
> FT> (bio_copy_user).
>
> Right. I think this would be very good for both performance and ease
> of use. Keeping track of requests in userspace to properly handle the
> endio and corresponding metadata flush can be a pain. I don't think,
> however, that we should completely get rid of the DMU_FLAG_SYNC
> behavior, because if someone wanted to use dm-userspace block block
> debugging or something, they may want to be able to intercept both the
> request and the endio.
>
> I'll take a stab at making this change and will post it when I have
> something working...
Great! Thanks.
More information about the dm-devel
mailing list