:
:Matthew Dillon <dil...@apollo.backplane.com>  wrote:
:
:>
:>     No, MFS runs in supervisor mode.  That mfs process that you see hanging
:>     there is just placemarking the VM space.
:>
:>                                          -Matt
:>
:
:       Well, I think there is a little more to it than that.  I
:believe it does run in supervisor mode, but the mfs process is
:providing not just the VM space, but the process context as well.
:If I remeber the code correctly, MFS runs as a single process, and
:requests are queued (on mfsp->buf_queue) for this process and handled there.
:
:       If the queuing were done a little bit differently, this could
:provide a mechanism for returning requests to user space.  Something
:along the lines of a syscall that enters the kernel and waits for work
:as David mentioned before.  So instead of having the mfs process handle
:the request in supervisor mode, the syscall would return, and the
:request could be handled in user mode.  It is a little strange,
:because the syscall entry and return will be handling different
:requests, but I believe it would work.
:
:
:               --John

    This seems like an unnecessary complication to me.  It would be
    easier to simply make it a device that you can open(), read(), and
    write() as I first suggested.

    MFS is not a good template for any of this.  MFS is very, very simple
    and the pieces that would make a user-level device driver work are 
    considerably more complex because they require the ability to make
    information available to a user process that is usually available only
    to the kernel.  MFS makes no progress to this end, because MFS runs 
    (more or less permanently) in supervisor mode.

                                        -Matt
                                        Matthew Dillon 
                                        <dil...@backplane.com>


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to