Date: Wed, 1 Nov 2017 00:27:50 +0000 From: Rick Macklem <rmacklem@uoguelph.ca> To: "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net> Cc: Cy Schubert <Cy.Schubert@komquats.com>, Yuri Pankov <yuripv@gmx.com>, freebsd-current <freebsd-current@freebsd.org> Subject: Re: NFSv3 issues with latest -current Message-ID: <YTOPR0101MB217217C4E0F12EF679A7FB83DD5F0@YTOPR0101MB2172.CANPRD01.PROD.OUTLOOK.COM> In-Reply-To: <201710311646.v9VGknFO082029@pdx.rh.CN85.dnsmgr.net> References: <YTOPR0101MB21726BD554458A4C2D190A03DD5E0@YTOPR0101MB2172.CANPRD01.PROD.OUTLOOK.COM>, <201710311646.v9VGknFO082029@pdx.rh.CN85.dnsmgr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Rodney W. Grimes wrote: [stuff snipped] > I wrote: >> Btw, NFS often causes this because... >> - Typically TSO is limited to a 64K packet (including TCP/IP and MAC hea= ders). >> - When NFS does reading/writing, it will do 64K + NFS, TCP/IP and MAC he= aders >> for an RPC (or a multiple of 64K like 128K). >> --> This results in tcp_output() generating a 64K TSO segment followed b= y a >> small TCP segment (since another RPC message doesn;t usually end up >> queued quickly enough to fill in the rest of the second TCP segment= ). >> - Also, at the end of file, you can get an RPC which is just under 64K i= ncluding >> NFS and TCP/IP headers. (The drivers often broke when adding the MAC >> header bumped this case to > 64K.) >> >> Thanks go to Yuri for diagnosing this, rick > > Just a thought, not asking anyone to write one :-) > > It would be handy to have some sh(1) scripts that can exercise this bug > case and have it readily avaliable to network driver authors for testing > the tso (or other large segment) code. You can't easily reproduce this from userland. It depends on the way NFS fi= lls in the mbuf chain for I/O RPCs. (iSCSI does something similar.) However, if your shell script does an NFS mount and the writes/reads a file just under 64K in size on the mount... rick=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTOPR0101MB217217C4E0F12EF679A7FB83DD5F0>