mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: Folkert van Heusden <folkert@vanheusden.com>
Cc: joern@wohnheim.fh-wedel.de, linux-kernel@vger.kernel.org
Subject: Re: zero-copy read() interface
Date: Sun, 21 Aug 2005 02:01:03 -0700	[thread overview]
Message-ID: <20050821020103.28a6b887.akpm@osdl.org> (raw)
In-Reply-To: <20050818104131.GH12313@vanheusden.com>

Folkert van Heusden <folkert@vanheusden.com> wrote:
>
> > > What about a zero-copy read-interface?
> > > An ioctl (or something) which enables the kernel to do dma directly to
> > > the userspace. Of course this should be limited to the root-user or a
> > > user with special capabilities (rights) since if a drive screws up, data
> > > from a different sector (or so) might end up in the proces' memory. Of
> > > course copying a sector from kernel- to userspace can be done pretty
> > > fast but i.m.h.o. all possible speedimprovements should be made unless
> > > unclean.
> > Just use mmap().  Unlike your proposal, it cooperates with the page
> > cache.
> 
> Doesn't that one also use copying? I've also heard that using mmap is
> expensive due to pagefaulting. I've found, for example, that copying a
> 1.3GB file using read/write instead of mmap & memcpy is seconds faster.
> 

You can use remap_file_pages() to read all the pages into pagecache and
then instantiate all their pte's in a single syscall.

  parent reply	other threads:[~2005-08-21  9:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-18 10:01 Folkert van Heusden
2005-08-18 10:05 ` Jörn Engel
2005-08-18 10:41   ` Folkert van Heusden
2005-08-18 13:13     ` Jörn Engel
2005-08-18 23:34     ` dean gaudet
2005-08-19  8:33       ` Jörn Engel
2005-08-21  9:01     ` Andrew Morton [this message]
2005-08-18 10:06 ` Christoph Hellwig

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=20050821020103.28a6b887.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=folkert@vanheusden.com \
    --cc=joern@wohnheim.fh-wedel.de \
    --cc=linux-kernel@vger.kernel.org \
    /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®