mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jeremy Elson <jelson@circlemud.org>
To: Alexander Viro <viro@math.psu.edu>
Cc: Marcelo Tosatti <marcelo@conectiva.com.br>, linux-kernel@vger.kernel.org
Subject: Re: Mapping a piece of one process' addrspace to another?
Date: Wed, 07 Mar 2001 00:54:11 -0800	[thread overview]
Message-ID: <200103070854.f278sBw06566@servo.isi.edu> (raw)
In-Reply-To: Message from Alexander Viro <viro@math.psu.edu>  of "Wed, 07 Mar 2001 03:40:58 EST." <Pine.GSO.4.21.0103070337560.2127-100000@weyl.math.psu.edu>

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.

-Jer

  reply	other threads:[~2001-03-07  8:55 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-07  5:19 Jeremy Elson
2001-03-07  5:55 ` Alexander Viro
2001-03-07  6:02   ` Marcelo Tosatti
2001-03-07  8:13     ` Jeremy Elson
2001-03-07  8:40       ` Alexander Viro
2001-03-07  8:54         ` Jeremy Elson [this message]
2001-03-07  9:09           ` Alexander Viro
2001-03-07 23:22             ` James H. Cloos Jr.
2001-03-07  9:04         ` Abramo Bagnara
2001-03-07  9:10           ` Alexander Viro
2001-03-07  9:20             ` Abramo Bagnara
2001-03-07  9:49               ` Alexander Viro
2001-03-07 13:01                 ` Abramo Bagnara
2001-03-07 21:02                 ` Jeremy Elson
2001-03-07  8:58       ` Abramo Bagnara
2001-03-07 18:17     ` Pavel Machek
2001-03-07 10:51 Manfred Spraul
2001-03-07 13:57 Jesse Pollard

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=200103070854.f278sBw06566@servo.isi.edu \
    --to=jelson@circlemud.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    --cc=viro@math.psu.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®