netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David S. Miller" <davem@redhat.com>
To: linux-kernel@vger.kernel.org, todd-lkml@osogrande.com
Cc: hadi@cyberus.ca, tcw@tempest.prismnet.com, netdev@oss.sgi.com,
	pfeather@cs.unm.edu
Subject: Re: Early SPECWeb99 results on 2.5.33 with TSO on e1000
Date: Fri, 13 Sep 2002 15:04:39 -0700 (PDT)	[thread overview]
Message-ID: <20020913.150439.27187393.davem@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0209131553510.10203-100000@gp>

   From: todd-lkml@osogrande.com
   Date: Fri, 13 Sep 2002 15:59:15 -0600 (MDT)
   
   not sure i understand what you're proposing

Cards in the future at 10gbit and faster are going to provide
facilities by which:

1) You register a IPV4 src_addr/dst_addr TCP src_port/dst_port cookie
   with the hardware when TCP connections are openned.

2) The card scans TCP packets arriving, if the cookie matches, it
   accumulated received data to fill full pages and wakes up the
   networking when either:

   a) full page has accumulated for a connection
   b) connection cookie mismatch
   c) configurable timer has expired

3) TCP ends up getting receive packets with skb->shinfo() fraglist
   containing the data portion in full struct page *'s
   This can be placed directly into the page cache via sys_receivefile
   generic code in mm/filemap.c or f.e. NFSD/NFS receive side
   processing.

   not also make the api for apps to allocate a buffer in userland that (for
   nics that support it) the nic can dma directly into?  it seems likely
   notification that the buffer was used would have to travel through the
   kernel, but it would be nice to save the interrupts altogether.
   
This is already doable with sys_sendfile() for send today.  The user
just does the following:

1) mmap()'s a file with MAP_SHARED to write the data
2) uses sys_sendfile() to send the data over the socket from that file
3) uses socket write space monitoring to determine if the portions of
   the shared area are reclaimable for new writes

BTW Apache could make this, I doubt it does currently.

The corrolary with sys_receivefile would be that the use:

1) mmap()'s a file with MAP_SHARED to write the data
2) uses sys_receivefile() to pull in the data from the socket to that file

There is no need to poll the receive socket space as the successful
return from sys_receivefile() is the "data got received successfully"
event.
   
   totally agreed.  this is a must for high-performance computing now (since 
   who wants to waste 80-100% of their CPU just running the network)?
   
If send side is your bottleneck and you think zerocopy sends of
user anonymous data might help, see the above since we can do it
today and you are free to experiment.

Franks a lot,
David S. Miller
davem@redhat.com

  reply	other threads:[~2002-09-13 22:04 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-05 18:30 Early SPECWeb99 results on 2.5.33 with TSO on e1000 Troy Wilson
2002-09-05 20:59 ` jamal
2002-09-05 22:11   ` Troy Wilson
2002-09-05 22:39     ` Nivedita Singhvi
2002-09-05 23:01       ` Dave Hansen
2002-09-05 22:48   ` Nivedita Singhvi
2002-09-06  1:47     ` jamal
2002-09-06  3:38       ` Nivedita Singhvi
2002-09-06  3:58         ` David S. Miller
2002-09-06  4:20           ` Nivedita Singhvi
2002-09-06  4:17             ` David S. Miller
2002-09-07  0:05         ` Troy Wilson
2002-09-06  3:56       ` David S. Miller
2002-09-06  3:47   ` David S. Miller
2002-09-06  6:48     ` Martin J. Bligh
2002-09-06  6:51       ` David S. Miller
2002-09-06  7:36         ` Andrew Morton
2002-09-06  7:22           ` David S. Miller
2002-09-06  9:54             ` jamal
2002-09-06 14:29         ` Martin J. Bligh
2002-09-06 15:38           ` Dave Hansen
2002-09-06 16:11             ` Martin J. Bligh
2002-09-06 16:21             ` Nivedita Singhvi
2002-09-06 15:29       ` Dave Hansen
2002-09-06 16:29         ` Martin J. Bligh
2002-09-06 17:36           ` Dave Hansen
2002-09-06 18:26             ` Andi Kleen
2002-09-06 18:33               ` Dave Hansen
2002-09-06 18:36                 ` David S. Miller
2002-09-06 18:45                   ` Martin J. Bligh
2002-09-06 18:43                     ` David S. Miller
2002-09-06 19:19               ` Nivedita Singhvi
2002-09-06 19:21                 ` David S. Miller
2002-09-06 19:45                   ` Nivedita Singhvi
2002-09-06 19:26                 ` Andi Kleen
2002-09-06 19:24                   ` David S. Miller
2002-09-06 19:45                 ` Martin J. Bligh
2002-09-06 17:26       ` Gerrit Huizenga
2002-09-06 17:37         ` David S. Miller
2002-09-06 18:19           ` Gerrit Huizenga
2002-09-06 18:26             ` Martin J. Bligh
2002-09-06 18:36               ` David S. Miller
2002-09-06 18:51                 ` Martin J. Bligh
2002-09-06 18:48                   ` David S. Miller
2002-09-06 19:05                     ` Gerrit Huizenga
2002-09-06 19:01                       ` David S. Miller
2002-09-06 20:29                   ` Alan Cox
2002-09-06 18:34             ` David S. Miller
2002-09-06 18:57               ` Gerrit Huizenga
2002-09-06 18:58                 ` David S. Miller
2002-09-06 19:52                   ` Gerrit Huizenga
2002-09-06 19:49                     ` David S. Miller
2002-09-06 20:03                       ` Gerrit Huizenga
2002-09-06 23:48       ` Troy Wilson
2002-09-11  9:11       ` Eric W. Biederman
2002-09-11 14:10         ` Martin J. Bligh
2002-09-11 15:06           ` Eric W. Biederman
2002-09-11 15:15             ` David S. Miller
2002-09-11 15:31               ` Eric W. Biederman
2002-09-11 15:27             ` Martin J. Bligh
2002-09-12  7:28     ` Todd Underwood
2002-09-12 12:30       ` jamal
2002-09-12 13:57         ` Todd Underwood
2002-09-12 14:11           ` Alan Cox
2002-09-12 14:41             ` todd-lkml
2002-09-12 23:12         ` David S. Miller
2002-09-13 21:59           ` todd-lkml
2002-09-13 22:04             ` David S. Miller [this message]
2002-09-15 20:16               ` jamal
2002-09-16  4:23                 ` David S. Miller
2002-09-16 14:16               ` todd-lkml
2002-09-16 19:52                 ` David S. Miller
2002-09-16 21:32                   ` todd-lkml
2002-09-16 21:29                     ` David S. Miller
2002-09-16 22:53                       ` David Woodhouse
2002-09-16 22:46                         ` David S. Miller
2002-09-16 23:03                           ` David Woodhouse
2002-09-16 23:08                             ` Jeff Garzik
2002-09-16 23:02                               ` David S. Miller
2002-09-16 23:48                                 ` Jeff Garzik
2002-09-16 23:43                                   ` David S. Miller
2002-09-17  0:01                                     ` Jeff Garzik
2002-09-17 10:31                   ` jamal
2002-09-13 22:12             ` Nivedita Singhvi
2002-09-12 17:18       ` Nivedita Singhvi
2002-09-06 23:56   ` Troy Wilson
2002-09-06 23:52     ` David S. Miller
2002-09-07  0:18     ` Nivedita Singhvi
2002-09-07  0:27       ` Troy Wilson
  -- strict thread matches above, loose matches on Subject: below --
2002-09-05 20:47 Feldman, Scott
2002-09-06 11:44 Robert Olsson
2002-09-06 14:37 ` Martin J. Bligh
2002-09-06 15:38   ` Robert Olsson
2002-09-06 18:35 Manfred Spraul
2002-09-06 18:38 ` David S. Miller
2002-09-06 19:40   ` Manfred Spraul
2002-09-06 19:34     ` David S. Miller
2002-09-10 12:02       ` Robert Olsson
2002-09-10 16:55         ` Manfred Spraul
2002-09-11  7:46           ` Robert Olsson
2002-09-10 14:59 Mala Anand

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=20020913.150439.27187393.davem@redhat.com \
    --to=davem@redhat.com \
    --cc=hadi@cyberus.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@oss.sgi.com \
    --cc=pfeather@cs.unm.edu \
    --cc=tcw@tempest.prismnet.com \
    --cc=todd-lkml@osogrande.com \
    /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;
as well as URLs for NNTP newsgroup(s).