Date: Thu, 19 Dec 2013 15:54:32 -0800 From: Adrian Chadd <adrian@freebsd.org> To: Navdeep Parhar <np@freebsd.org> Cc: Jack F Vogel <jfv@freebsd.org>, Michael Tuexen <Michael.Tuexen@lurchi.franken.de>, Ryan Stone <rysto32@gmail.com>, freebsd-net <freebsd-net@freebsd.org> Subject: Re: Removing queue length check in ip_output (was Re: buf_ring in HEAD is racy) Message-ID: <CAJ-VmonAZH6f1kjUx7JCf%2Bhr%2BFBvH8_WfR0E86PiF6vqONYWtg@mail.gmail.com> In-Reply-To: <52B35113.9050108@FreeBSD.org> References: <CAJ-VmomyPq_2K-MFhb7vt6MM7RBbmn7yaTzUXb7%2BN7TbW1RmHQ@mail.gmail.com> <20131219151606.GB71033@FreeBSD.org> <CAJ-Vmo=jCo-H8BwybFS3uaS3xQ4pxSz-hpxyEg0z2g3KSoErwQ@mail.gmail.com> <CAJ-VmonYRb9jQKbXLuurQrrjaUzQcwiRze0O7g2A5s=KPBjDKw@mail.gmail.com> <52B35113.9050108@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Its checking the ifsnd queue. That just doesn't do anything sane or consistent with drivers that implement if transmit let alone multiqueue drivers. Adrian On Dec 19, 2013 2:03 PM, "Navdeep Parhar" <np@freebsd.org> wrote: > On 12/19/13 11:59, Adrian Chadd wrote: > > How's this? > > > > Index: sys/netinet/ip_output.c > > =================================================================== > > --- sys/netinet/ip_output.c (revision 259474) > > +++ sys/netinet/ip_output.c (working copy) > > @@ -123,7 +123,9 @@ > > struct mbuf *m0; > > int hlen = sizeof (struct ip); > > int mtu; > > +#if 0 > > int n; /* scratchpad */ > > +#endif > > int error = 0; > > struct sockaddr_in *dst; > > const struct sockaddr_in *gw; > > @@ -431,6 +433,25 @@ > > } > > > > /* > > + * Both in the SMP world, pre-emption world if_transmit() world, > > + * the following code doesn't really function as intended any > further. > > Doesn't make sense in the tx multiqueue world either. (which queue is > this piece of code checking?) > > Navdeep >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmonAZH6f1kjUx7JCf%2Bhr%2BFBvH8_WfR0E86PiF6vqONYWtg>