Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 May 2013 15:25:42 -0700 (PDT)
From:      Laurie Jennings <laurie_jennings_1977@yahoo.com>
To:        Richard Sharpe <realrichardsharpe@gmail.com>, Jack Vogel <jfvogel@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>, Adrian Chadd <adrian@freebsd.org>
Subject:   Re: Is there any way to limit the amount of data in an mbuf chain submitted to a driver?
Message-ID:  <1368829542.53502.YahooMailClassic@web125804.mail.ne1.yahoo.com>
In-Reply-To: <CAFOYbckUzavh5W7BoChg7Dg7cGPK7JLJ5O3Mc8syAYa9LQKcxg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Did you get to commit that new code yet?
Laurie

--- On Sat, 5/4/13, Jack Vogel <jfvogel@gmail.com> wrote:

From: Jack Vogel <jfvogel@gmail.com>
Subject: Re: Is there any way to limit the amount of data in an mbuf chain =
submitted to a driver?
To: "Richard Sharpe" <realrichardsharpe@gmail.com>
Cc: "FreeBSD Net" <freebsd-net@freebsd.org>, "Adrian Chadd" <adrian@freebsd=
.org>
Date: Saturday, May 4, 2013, 2:18 PM

Ahh, Twinville, new hardware :)=C2=A0 The version at the tip is 2.5.8 and I=
 am
working on version 2.5.12 internally that I hope to commit next week...
so your version is "a bit old" :) I would do some testing on newer code.

Jack



On Sat, May 4, 2013 at 1:54 PM, Richard Sharpe
<realrichardsharpe@gmail.com>wrote:

> On Sat, May 4, 2013 at 1:41 PM, Jack Vogel <jfvogel@gmail.com> wrote:
> > If you don't use TSO you will hurt your TX performance significantly fr=
om
> > the tests that I've run. What exactly is the device you are using, I
> don't
> > have the source in front of me now, but I'm almost sure that the limit =
is
> > not 64K but 256K, or are you using some ancient version of the driver?
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0=C2=A0ix0 pnpinfo vendor=3D=
0x8086 device=3D0x1528 subvendor=3D0x8086
> subdevice=3D0x0001 class=3D0x020000 at slot=3D0 function=3D0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0=C2=A0ix1 pnpinfo vendor=3D=
0x8086 device=3D0x1528 subvendor=3D0x8086
> subdevice=3D0x0001 class=3D0x020000 at slot=3D0 function=3D1
>
> The version calls itself ixgbe-2.4.4 ...
>
> Hmmm, copyright is 2001-2010 ... so perhaps a bit old.
>
> > Jack
> >
> >
> >
> > On Sat, May 4, 2013 at 1:30 PM, Richard Sharpe <
> realrichardsharpe@gmail.com>
> > wrote:
> >>
> >> On Sat, May 4, 2013 at 10:39 AM, Adrian Chadd <adrian@freebsd.org>
> wrote:
> >> > On 4 May 2013 06:52, Richard Sharpe <realrichardsharpe@gmail.com>
> wrote:
> >> >> Hi folks,
> >> >>
> >> >> I understand better why I am seeing EINVAL intermittently when
> sending
> >> >> data from Samba via SMB2.
> >> >>
> >> >> The ixgbe driver, for TSO reasons, limits the amount of data that c=
an
> >> >> be DMA'd to 65535 bytes. It returns EINVAL for any mbuf chain large=
r
> >> >> than that.
> >> >>
> >> >> The SO_SNDBUF for that socket is set to 131972. Mostly there is les=
s
> >> >> than 64kiB of space available, so that is all TCP etc can put into
> the
> >> >> socket in one chain of mbufs. However, every now and then there is
> >> >> more than 65535 bytes available in the socket buffers, and we have =
an
> >> >> SMB packet that is larger than 65535 bytes, and we get hit.
> >> >>
> >> >> To confirm this I am going to set SO_SNDBUF back to the default of
> >> >> 65536 and test again. My repros are very reliable.
> >> >>
> >> >> However, I wondered if my only way around this if I want to continu=
e
> >> >> to use SO_SNDBUF sizes larger than 65536 is to fragment large mbuf
> >> >> chains in the driver?
> >> >
> >> > Hm, is this is a problem without TSO?
> >>
> >> We are using the card without TSO, so I am thinking of changing that
> >> limit to 131072 and retesting.
> >>
> >> I am currently testing with SO_SNDBUF=3D32768 and have not hit the
> problem.
> >>
> >> > Is the problem that the NIC can't handle a frame that big, or a buff=
er
> >> > that big?
> >> > Ie - if you handed the hardware two descriptors of 64k each, for the
> >> > same IP datagram, will it complain?
> >>
> >> I can't find any documentation, but it seems that with TSO it cannot
> >> handle a frame that big. Actually, since we are not using TSO, there
> >> really should not be a problem with larger frames.
> >>
> >> > Or do you need to break it up into two separate IP datagrams, facing
> >> > the driver, with a maximum size of 64k each?
> >>
> >> Not sure, but it looks like we need to do that.
> >>
> >>
> >> --
> >> Regards,
> >> Richard Sharpe
> >> (=E4=BD=95=E4=BB=A5=E8=A7=A3=E6=86=82=EF=BC=9F=E5=94=AF=E6=9C=89=E6=9D=
=9C=E5=BA=B7=E3=80=82--=E6=9B=B9=E6=93=8D)
> >> _______________________________________________
> >> freebsd-net@freebsd.org mailing list
> >> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
> >
> >
>
>
>
> --
> Regards,
> Richard Sharpe
> (=E4=BD=95=E4=BB=A5=E8=A7=A3=E6=86=82=EF=BC=9F=E5=94=AF=E6=9C=89=E6=9D=9C=
=E5=BA=B7=E3=80=82--=E6=9B=B9=E6=93=8D)
>
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
From owner-freebsd-net@FreeBSD.ORG  Fri May 17 22:32:24 2013
Return-Path: <owner-freebsd-net@FreeBSD.ORG>
Delivered-To: freebsd-net@freebsd.org
Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115])
 by hub.freebsd.org (Postfix) with ESMTP id B60A91DA;
 Fri, 17 May 2013 22:32:24 +0000 (UTC)
 (envelope-from jfvogel@gmail.com)
Received: from mail-vc0-f169.google.com (mail-vc0-f169.google.com
 [209.85.220.169])
 by mx1.freebsd.org (Postfix) with ESMTP id 645881D5;
 Fri, 17 May 2013 22:32:24 +0000 (UTC)
Received: by mail-vc0-f169.google.com with SMTP id kw10so4190192vcb.0
 for <multiple recipients>; Fri, 17 May 2013 15:32:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:x-received:in-reply-to:references:date:message-id
 :subject:from:to:cc:content-type;
 bh=wGWLZW7klgyeOeeYtiW3eCdFm+wF+xiUw6DiLmL6LEw=;
 b=Nl0eSo+R4cMrqx4I/RP7qCJArll8p97SCe67UNNhi6BBCX7Pl0tl+OV4LCZ7Uh1m9o
 RtIb7DOjHW2qYwA74TUI821ZSz3puLLjW2OdfybkUD8uOfGhqwT1SPE6PnA6poSo9TDz
 +W0hDx91KGGpDZcFMjLGCTLI/dmlws08Eba45XTbHfAvQVs6v+CqAcALyxpmZbZH1fiI
 xrct/qB8cS2zwfx+RuEIJlEJQgyUkQORCIL+oE5hOXtJRE34XCuWxhGWltXG7E3bfH4j
 xt+jsGjXSyI2Huq1/x/oR/ldhCjZ3W2f7Cv9ghf0/7kLPJbT9Pi3zkpqKL34ZtBcPE8E
 AyTA==
MIME-Version: 1.0
X-Received: by 10.58.247.130 with SMTP id ye2mr30703522vec.35.1368829938120;
 Fri, 17 May 2013 15:32:18 -0700 (PDT)
Received: by 10.220.55.143 with HTTP; Fri, 17 May 2013 15:32:17 -0700 (PDT)
In-Reply-To: <1368829542.53502.YahooMailClassic@web125804.mail.ne1.yahoo.com>
References: <CAFOYbckUzavh5W7BoChg7Dg7cGPK7JLJ5O3Mc8syAYa9LQKcxg@mail.gmail.com>
 <1368829542.53502.YahooMailClassic@web125804.mail.ne1.yahoo.com>
Date: Fri, 17 May 2013 15:32:17 -0700
Message-ID: <CAFOYbcnu6jA5Zv1Qc=jeavGqWMqwkHzSo+8RVUGtZCPE3f=0Fg@mail.gmail.com>
Subject: Re: Is there any way to limit the amount of data in an mbuf chain
 submitted to a driver?
From: Jack Vogel <jfvogel@gmail.com>
To: Laurie Jennings <laurie_jennings_1977@yahoo.com>
Content-Type: text/plain; charset=Big5
Content-Transfer-Encoding: quoted-printable
X-Content-Filtered-By: Mailman/MimeDel 2.1.14
Cc: FreeBSD Net <freebsd-net@freebsd.org>, Adrian Chadd <adrian@freebsd.org>,
 Richard Sharpe <realrichardsharpe@gmail.com>
X-BeenThere: freebsd-net@freebsd.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Networking and TCP/IP with FreeBSD <freebsd-net.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-net>,
 <mailto:freebsd-net-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-net>;
List-Post: <mailto:freebsd-net@freebsd.org>
List-Help: <mailto:freebsd-net-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-net>,
 <mailto:freebsd-net-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 17 May 2013 22:32:24 -0000

No Laurie, I ran into an issue that I needed to resolve, and then my
validation engineer
went out of town a couple days. Should be early next week.

Jack



On Fri, May 17, 2013 at 3:25 PM, Laurie Jennings <
laurie_jennings_1977@yahoo.com> wrote:

> Did you get to commit that new code yet?
>
> Laurie
>
> --- On *Sat, 5/4/13, Jack Vogel <jfvogel@gmail.com>* wrote:
>
>
> From: Jack Vogel <jfvogel@gmail.com>
> Subject: Re: Is there any way to limit the amount of data in an mbuf chai=
n
> submitted to a driver?
> To: "Richard Sharpe" <realrichardsharpe@gmail.com>
> Cc: "FreeBSD Net" <freebsd-net@freebsd.org>, "Adrian Chadd" <
> adrian@freebsd.org>
> Date: Saturday, May 4, 2013, 2:18 PM
>
>
> Ahh, Twinville, new hardware :)  The version at the tip is 2.5.8 and I am
> working on version 2.5.12 internally that I hope to commit next week...
> so your version is "a bit old" :) I would do some testing on newer code.
>
> Jack
>
>
>
> On Sat, May 4, 2013 at 1:54 PM, Richard Sharpe
> <realrichardsharpe@gmail.com<http://mc/compose?to=3Drealrichardsharpe@gma=
il.com>
> >wrote:
>
> > On Sat, May 4, 2013 at 1:41 PM, Jack Vogel <jfvogel@gmail.com<http://mc=
/compose?to=3Djfvogel@gmail.com>>
> wrote:
> > > If you don't use TSO you will hurt your TX performance significantly
> from
> > > the tests that I've run. What exactly is the device you are using, I
> > don't
> > > have the source in front of me now, but I'm almost sure that the limi=
t
> is
> > > not 64K but 256K, or are you using some ancient version of the driver=
?
> >
> >             ix0 pnpinfo vendor=3D0x8086 device=3D0x1528 subvendor=3D0x8=
086
> > subdevice=3D0x0001 class=3D0x020000 at slot=3D0 function=3D0
> >             ix1 pnpinfo vendor=3D0x8086 device=3D0x1528 subvendor=3D0x8=
086
> > subdevice=3D0x0001 class=3D0x020000 at slot=3D0 function=3D1
> >
> > The version calls itself ixgbe-2.4.4 ...
> >
> > Hmmm, copyright is 2001-2010 ... so perhaps a bit old.
> >
> > > Jack
> > >
> > >
> > >
> > > On Sat, May 4, 2013 at 1:30 PM, Richard Sharpe <
> > realrichardsharpe@gmail.com<http://mc/compose?to=3Drealrichardsharpe@gm=
ail.com>
> >
> > > wrote:
> > >>
> > >> On Sat, May 4, 2013 at 10:39 AM, Adrian Chadd <adrian@freebsd.org<ht=
tp://mc/compose?to=3Dadrian@freebsd.org>
> >
> > wrote:
> > >> > On 4 May 2013 06:52, Richard Sharpe <realrichardsharpe@gmail.com<h=
ttp://mc/compose?to=3Drealrichardsharpe@gmail.com>
> >
> > wrote:
> > >> >> Hi folks,
> > >> >>
> > >> >> I understand better why I am seeing EINVAL intermittently when
> > sending
> > >> >> data from Samba via SMB2.
> > >> >>
> > >> >> The ixgbe driver, for TSO reasons, limits the amount of data that
> can
> > >> >> be DMA'd to 65535 bytes. It returns EINVAL for any mbuf chain
> larger
> > >> >> than that.
> > >> >>
> > >> >> The SO_SNDBUF for that socket is set to 131972. Mostly there is
> less
> > >> >> than 64kiB of space available, so that is all TCP etc can put int=
o
> > the
> > >> >> socket in one chain of mbufs. However, every now and then there i=
s
> > >> >> more than 65535 bytes available in the socket buffers, and we hav=
e
> an
> > >> >> SMB packet that is larger than 65535 bytes, and we get hit.
> > >> >>
> > >> >> To confirm this I am going to set SO_SNDBUF back to the default o=
f
> > >> >> 65536 and test again. My repros are very reliable.
> > >> >>
> > >> >> However, I wondered if my only way around this if I want to
> continue
> > >> >> to use SO_SNDBUF sizes larger than 65536 is to fragment large mbu=
f
> > >> >> chains in the driver?
> > >> >
> > >> > Hm, is this is a problem without TSO?
> > >>
> > >> We are using the card without TSO, so I am thinking of changing that
> > >> limit to 131072 and retesting.
> > >>
> > >> I am currently testing with SO_SNDBUF=3D32768 and have not hit the
> > problem.
> > >>
> > >> > Is the problem that the NIC can't handle a frame that big, or a
> buffer
> > >> > that big?
> > >> > Ie - if you handed the hardware two descriptors of 64k each, for t=
he
> > >> > same IP datagram, will it complain?
> > >>
> > >> I can't find any documentation, but it seems that with TSO it cannot
> > >> handle a frame that big. Actually, since we are not using TSO, there
> > >> really should not be a problem with larger frames.
> > >>
> > >> > Or do you need to break it up into two separate IP datagrams, faci=
ng
> > >> > the driver, with a maximum size of 64k each?
> > >>
> > >> Not sure, but it looks like we need to do that.
> > >>
> > >>
> > >> --
> > >> Regards,
> > >> Richard Sharpe
> > >> (=A6=F3=A5H=B8=D1=BC~=A1H=B0=DF=A6=B3=A7=F9=B1d=A1C--=B1=E4=BE=DE)
> > >> _______________________________________________
> > >> freebsd-net@freebsd.org<http://mc/compose?to=3Dfreebsd-net@freebsd.o=
rg>mailing list
> > >> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> > >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.or=
g<http://mc/compose?to=3Dfreebsd-net-unsubscribe@freebsd.org>;
> "
> > >
> > >
> >
> >
> >
> > --
> > Regards,
> > Richard Sharpe
> > (=A6=F3=A5H=B8=D1=BC~=A1H=B0=DF=A6=B3=A7=F9=B1d=A1C--=B1=E4=BE=DE)
> >
> _______________________________________________
> freebsd-net@freebsd.org <http://mc/compose?to=3Dfreebsd-net@freebsd.org>m=
ailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org<htt=
p://mc/compose?to=3Dfreebsd-net-unsubscribe@freebsd.org>
> "
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1368829542.53502.YahooMailClassic>