All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Manfred Spraul" <manfred@colorfullife.com>
To: "Ben LaHaise" <bcrl@redhat.com>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] zero^H^H^H^Hsingle copy pipe
Date: Mon, 7 May 2001 18:35:59 +0200	[thread overview]
Message-ID: <001601c0d713$d60a17b0$5517fea9@local> (raw)
In-Reply-To: <mailman.989055541.17259.linux-kernel2news@redhat.com> <3AF6CA1B.9849CE6A@redhat.com>

From: "Ben LaHaise" <bcrl@redhat.com>
>
> Any particular reason for not using davem's single copy kiobuf based
> code?
>
The main problem is that map_user_kiobuf() locks pages into memory.
It's a bad idea for pipes. Either we must severely limit the maximum
amount of data in the direct-copy buffers, or we must add a swap file
based backing store. If I understand the BSD direct-pipe code correctly
it has a swap file based backing store. I think that's insane. And
limiting the direct copy buffers to a few kB defeats the purpose of
direct copy.
Instead pipe_write just queues (tsk,addr,len), and then pipe_read() uses
a modified access_process_vm() function to copy directly. Currently I've
copied the code from kernel/ptrace.c, but I plan to merge
copy_user_to_user() back into access_process_vm().

And the current pipe_{read,write} are a total mess with nested loops and
gotos. It's possible to create wakeup storms. I rewrote them as well ;-)

But the new code still contains one deadlock :-(
--
    Manfred



  reply	other threads:[~2001-05-07 16:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.989055541.17259.linux-kernel2news@redhat.com>
2001-05-07 16:15 ` [PATCH] zero^H^H^H^Hsingle copy pipe Ben LaHaise
2001-05-07 16:35   ` Manfred Spraul [this message]
2001-05-07 16:49     ` Ben LaHaise
2001-05-07 23:04       ` David S. Miller
2001-05-07 23:05     ` David S. Miller
     [not found] <E14wscv-00046J-00@the-village.bc.nu>
2001-05-07 21:48 ` Manfred Spraul
2001-05-05 13:05 Manfred Spraul
     [not found] ` <m2wv7vk2xi.fsf@boreas.yi.org.>
     [not found]   ` <3AF45FAB.595951F8@colorfullife.com>
     [not found]     ` <m2k83vjyrz.fsf@boreas.yi.org.>
     [not found]       ` <3AF473F8.F01EF82A@colorfullife.com>
2001-05-07 17:01         ` John Fremlin

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='001601c0d713$d60a17b0$5517fea9@local' \
    --to=manfred@colorfullife.com \
    --cc=bcrl@redhat.com \
    --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 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.