[lkml]   [2001]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Alexander Viro writes:
    >On Wed, 7 Mar 2001, Jeremy Elson wrote:
    >> Right now, my code looks something like this: (it might make more
    >> sense if you know that I've written a framework for writing user-space
    >> device drivers... I'm going to be releasing it soon, hopefully after I
    >> resolve this performance problem. Or maybe before, if it's hard.)
    >Ugh. Why not make that a named pipe and use zerocopy stuff for pipes?
    >I.e. why bother with making it look like a character device rather than
    >a FIFO?

    Well, because it's a character device :-). i.e,. the framework allows
    you to write a userspace program that services callbacks for character
    devices. Inside the kernel, all open()/release()/ioctl()/etc calls
    for the device are proxied out to userspace where a library calls a
    userspace callback, and the result goes back to the kernel where it is
    then returned to the calling process.

    The problem is just that to return data (instead of just a retval), as
    is needed for read and some ioctls, it leads to 3 copies as I
    described earlier.

    BTW, where are the zerocopy patches for pipes? Maybe I'm missing
    something but it seems that pipes inside the kernel are still
    implememented by copying into the kernel and then copying out.
    Whatever method the zerocopy pipes use is probably what I'm looking
    for though.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:29    [W:3.941 / U:0.620 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site