linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: [PATCH] zerocopy NFS for 2.5.33
@ 2002-09-10  1:58 Feldman, Scott
  2002-09-10  3:13 ` Hirokazu Takahashi
  0 siblings, 1 reply; 6+ messages in thread
From: Feldman, Scott @ 2002-09-10  1:58 UTC (permalink / raw)
  To: 'Hirokazu Takahashi', davem; +Cc: nfs, linux-kernel

> As far as I know e1000 has a feature that it can split a 
> jumbo UDP frame into some IP fragments.

UDP segmentation but not UDP fragmentation, sorry.

-scott

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] zerocopy NFS for 2.5.33
  2002-09-10  1:58 [PATCH] zerocopy NFS for 2.5.33 Feldman, Scott
@ 2002-09-10  3:13 ` Hirokazu Takahashi
  0 siblings, 0 replies; 6+ messages in thread
From: Hirokazu Takahashi @ 2002-09-10  3:13 UTC (permalink / raw)
  To: scott.feldman; +Cc: davem, nfs, linux-kernel

Hello,

> > As far as I know e1000 has a feature that it can split a 
> > jumbo UDP frame into some IP fragments.
> 
> UDP segmentation but not UDP fragmentation, sorry.

Really?
it's too sad.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] zerocopy NFS for 2.5.33
  2002-09-09  8:58   ` Hirokazu Takahashi
@ 2002-09-09  9:04     ` David S. Miller
  0 siblings, 0 replies; 6+ messages in thread
From: David S. Miller @ 2002-09-09  9:04 UTC (permalink / raw)
  To: taka; +Cc: scott.feldman, nfs, linux-kernel

   From: Hirokazu Takahashi <taka@valinux.co.jp>
   Date: Mon, 09 Sep 2002 17:58:21 +0900 (JST)

   As far as I know e1000 has a feature that it can split a jumbo UDP frame
   into some IP fragments.
   
I doubt this, because very rarely do vendors of commodity networking
cards implement things outside of Microsoft's NDIS (Network Driver
Interface Specification) and what I have described is what they define
for fragmentation offloading.

Maybe some new revision has the feature you suggest.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] zerocopy NFS for 2.5.33
  2002-09-09  7:19 ` David S. Miller
@ 2002-09-09  8:58   ` Hirokazu Takahashi
  2002-09-09  9:04     ` David S. Miller
  0 siblings, 1 reply; 6+ messages in thread
From: Hirokazu Takahashi @ 2002-09-09  8:58 UTC (permalink / raw)
  To: davem; +Cc: Feldman, Scott, nfs, linux-kernel

Hi,

As far as I know e1000 has a feature that it can split a jumbo UDP frame
into some IP fragments.

>    From: Hirokazu Takahashi <taka@valinux.co.jp>
>    Date: Mon, 09 Sep 2002 16:11:23 +0900 (JST)
> 
>    Using TSO code is commented out at this moment as TSO for UDP isn't
>    implemented yet. I'm waiting for it so that we would remove "#ifdef NotYet"
>    to send jumbo UDP frames without any fragmentation and any checksumming.
>    Then I hope we will get great performance.
>    
> Actually, device interface for what could be used is there, see
> NETIF_F_FRAGLIST.  No devices set this and IP never makes use of it
> yet though :-)
> 
> Acenic and Tigon3 will be able to do this, probably e1000 has this
> feature as well.
> 
> But it does not work how you imagine.  One passes already fragmented
> list of packets to card, and it can checksum the packet if you tell it
> which descriptor is first of fragmented frame and which is last.
> 
> It does not do the fragmentation of UDP frames for you, only
> checksumming of UDP portion.  No card does what you mention.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] zerocopy NFS for 2.5.33
  2002-09-09  7:11 Hirokazu Takahashi
@ 2002-09-09  7:19 ` David S. Miller
  2002-09-09  8:58   ` Hirokazu Takahashi
  0 siblings, 1 reply; 6+ messages in thread
From: David S. Miller @ 2002-09-09  7:19 UTC (permalink / raw)
  To: taka; +Cc: nfs, linux-kernel

   From: Hirokazu Takahashi <taka@valinux.co.jp>
   Date: Mon, 09 Sep 2002 16:11:23 +0900 (JST)

   Using TSO code is commented out at this moment as TSO for UDP isn't
   implemented yet. I'm waiting for it so that we would remove "#ifdef NotYet"
   to send jumbo UDP frames without any fragmentation and any checksumming.
   Then I hope we will get great performance.
   
Actually, device interface for what could be used is there, see
NETIF_F_FRAGLIST.  No devices set this and IP never makes use of it
yet though :-)

Acenic and Tigon3 will be able to do this, probably e1000 has this
feature as well.

But it does not work how you imagine.  One passes already fragmented
list of packets to card, and it can checksum the packet if you tell it
which descriptor is first of fragmented frame and which is last.

It does not do the fragmentation of UDP frames for you, only
checksumming of UDP portion.  No card does what you mention.

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] zerocopy NFS for 2.5.33
@ 2002-09-09  7:11 Hirokazu Takahashi
  2002-09-09  7:19 ` David S. Miller
  0 siblings, 1 reply; 6+ messages in thread
From: Hirokazu Takahashi @ 2002-09-09  7:11 UTC (permalink / raw)
  To: nfs, linux-kernel

Hello,

I updated the patches for zerocopy NFS. You can apply them against
linux-2.5.33 and zerocopy NFS over UDP/TCP works very fine.

1)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va10-hwchecksum-2.5.33.patch
This patch enables HW-checksum against outgoing packets including UDP frames.

2)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va11-udpsendfile-2.5.33.patch
This patch makes sendfile systemcall over UDP work. It also supports
UDP_CORK interface which is very similar to TCP_CORK. And you can call
sendmsg/senfile with MSG_MORE flags over UDP sockets too.

Using TSO code is commented out at this moment as TSO for UDP isn't
implemented yet. I'm waiting for it so that we would remove "#ifdef NotYet"
to send jumbo UDP frames without any fragmentation and any checksumming.
Then I hope we will get great performance.

3)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va-csumpartial-fix-2.5.33.patch
This patch fixes the problem of x86 csum_partilal() routines which
can't handle odd addressed buffers.

4)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va01-zerocopy-rpc-2.5.33.patch
This patch makes RPC be able to send some pieces of data and pages
without any copies.

5)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va02-zerocopy-nfsdread-2.5.33.patch
This patch makes NFSD pass pages in pagecache to RPC layer directly
when NFS clinets request file-read.

6)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va03-zerocopy-nfsdreaddir-2.5.33.patch
nfsd_readdir can also send pages without copy.

7)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va04-zerocopy-shadowsock-2.5.33.patch
This patch makes per-cpu UDP sockets so that NFSD can send UDP frames on
each prosessor simultaneously.
Without the patch we can send only one UDP frame at the time as a UDP socket
have to be locked during sending some pages to serialize them.

8)
ftp://ftp.valinux.co.jp/pub/people/taka/tune/2.5.33/va05-zerocopy-tempsendto-2.5.33.patch
If you don't want to use sendfile over UDP yet, you can apply it instead
of 1) and 2) .


If you have any requests or comments, could you let me know.


Thank you,
Hirokazu Takahashi.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2002-09-10  3:16 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-10  1:58 [PATCH] zerocopy NFS for 2.5.33 Feldman, Scott
2002-09-10  3:13 ` Hirokazu Takahashi
  -- strict thread matches above, loose matches on Subject: below --
2002-09-09  7:11 Hirokazu Takahashi
2002-09-09  7:19 ` David S. Miller
2002-09-09  8:58   ` Hirokazu Takahashi
2002-09-09  9:04     ` David S. Miller

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).