From: devzero@web.de
To: zamsden@redhat.com
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Allow userspace block device implementation
Date: Tue, 28 Jul 2009 22:37:24 +0200 [thread overview]
Message-ID: <843616099@web.de> (raw)
Hello Zach,
this older thread deals with some aspects of that idea: http://communities.vmware.com/message/577841
i have collected some links (added there) quite a while ago and also added a project proposal to http://kernelnewbies.org/KernelProjects, too.
i don`t know if you came across them, but it`s nice to see that someone comes up with this stuff again and maybe it`s of interest for you.
as we had vmware vmdk image mounter v1 being implemented via nbd and v2 via fuse, i assume both are not optimal solutions?
at least the nbd version sucked big.
regards
roland
ps:
oh, btw - you quit vmware? that`s quite a loss for them and for the vmware community, i think. too much conflicting basic attitude concerning opensource/gpl? ;)
> List: linux-kernel
> Subject: [PATCH] Allow userspace block device implementation
> From: Zachary Amsden <zamsden () redhat ! com>
> Date: 2009-07-27 9:57:10
> Message-ID: 4A6D79F6.3050509 () redhat ! com
> [Download message RAW]
>
> Well, it may be a good, bad, idiotic or brilliant idea depending on your
> personal philosophy. I went down this route out of pragmatism.
> Hopefully I have not fully re-invented the wheel.
>
> The patch included allows one to implement a kernel level block device
> in userspace, using an ioctl() based interface to create a sized device
> with given properties, and then receive and respond to bio requests
> issued to the device. One can poll on the associated control socket to
> allow efficient servicing of device requests. So far only strict copy
> to/from user memory is supported, there is no fancy page flipping or
> mapping operations.
>
> Which there probably should not be. This device is not about
> performance, is it about extending the boundaries of the kernel to the
> almost improbable. Now one can literally create any kind of device
> imaginable and use it as a block device in the kernel, mounting
> partitions and such and using them as if they existed natively. I have
> attached a very simple dummy program showing how to do this.
>
> The design requirements 'kernel block device in user space' to me
> demanded that the interface be stateless. Userspace can crash, be
> killed, or interrupted. Block devices cannot, they must answer all
> requests, even if that answer is a failure. Thus there exists no state
> between the kernel and the userspace process(es) or threads serving the
> device. No establishment of connections, just a queue which can be read
> and answered via get and put, the ioctl operators available. This
> allows a completely flexible userspace implementation, with multiple
> processes, etc, and allows complete recovery via a simple reset command
> if those programs fail. I believe this also prevents any possibility of
> accidental deadlock. There may of course be some hidden deep deadlock
> potential in such a device, especially if one decided to use it as a
> swap device, but again, this is a philosophical issue.
>
> Enough talking, let's have at it and see where this goes. Obviously
> this is experimental and open to feedback. Considering it turns kernel
> interfaces on their head, I have given it what I feel is an appropriate
> name.
>
> If there is any person or list you know that I forgot to copy this to,
> please forward it on to them.
>
> Thanks,
>
> Zach
>
> _________________________________________________________________
> Neu: WEB.DE Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
> für nur 19,99 Euro/mtl.!* http://produkte.web.de/go/01/
>
>
______________________________________________________
GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://movieflat.web.de
next reply other threads:[~2009-07-28 20:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-28 20:37 devzero [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-07-27 9:57 [PATCH] Allow userspace block device implementation Zachary Amsden
2009-07-27 12:56 ` Peter Zijlstra
2009-07-27 13:25 ` Alan Cox
2009-07-27 19:46 ` Zachary Amsden
2009-07-27 20:24 ` Peter Zijlstra
2009-07-27 21:02 ` Alan Cox
2009-07-28 1:21 ` Tejun Heo
2009-07-28 3:53 ` Zachary Amsden
2009-07-28 10:27 ` Alan Cox
2009-07-28 16:00 ` Linus Torvalds
2009-07-28 18:36 ` Kyle Moffett
2009-07-28 18:51 ` Linus Torvalds
2009-07-28 19:07 ` Alan Cox
2009-07-28 19:49 ` Andi Kleen
2009-07-28 20:50 ` Linus Torvalds
2009-07-28 21:09 ` Andi Kleen
2009-07-28 22:56 ` Theodore Tso
2009-08-07 18:08 ` Pavel Machek
2009-08-10 22:47 ` Zachary Amsden
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=843616099@web.de \
--to=devzero@web.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=zamsden@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.