Date: Fri, 29 Jul 2022 14:00:38 -0700 From: Eric Joyner <erj@freebsd.org> To: freebsd-net <freebsd-net@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Looking for feedback on change to iflib and transmit queuing Message-ID: <CA%2Bb0zg8rns_WAXzpH3VQi9W=2ZXOE5tECuH62OyoyYKVoT7xgA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--000000000000568da205e4f7f300 Content-Type: text/plain; charset="UTF-8" Hi, I have a Phabricator review here that I was hoping to get some feedback on: https://reviews.freebsd.org/D34742 In short, there's already some functionality in current and 13.1-RELEASE that allows a driver to pick a TX queue for a packet, but this extends that support to have iflib do some limited parsing in order to give the driver function extra information in order to make a decision. Performance-wise this doesn't seem to affect much; I looked at it in VTune across different types of netperf runs with small packets that want L4 checksums. In fact, that made me find out that iflib_parse_header() does tons of unnecessary m_pullups() on small UDP packets; as much as 10% of the CPU time can be spent just doing that. It should maybe get modified to not pull-up to the TCP header length for UDP packets. - Eric --000000000000568da205e4f7f300 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Hi, I have a Phabricator review here that I was hoping to = get some feedback on:=C2=A0<a href=3D"https://reviews.freebsd.org/D34742">h= ttps://reviews.freebsd.org/D34742</a><div><br></div><div>In short, there= 9;s already some functionality in current and 13.1-RELEASE that allows a dr= iver to pick a TX queue for a packet, but this extends that support to have= iflib do some limited parsing in order to give the driver function extra i= nformation in order to make a decision. Performance-wise this doesn't s= eem to affect much; I looked at it in VTune across different types of netpe= rf runs with small packets that want L4 checksums.</div><div><br></div><div= >In fact, that made me find out that iflib_parse_header() does tons of unne= cessary m_pullups() on small UDP packets; as much as 10% of the CPU time ca= n be spent just doing that. It should maybe get modified to not pull-up to = the TCP header length for UDP packets.</div><div><br></div><div>- Eric</div= ></div> --000000000000568da205e4f7f300--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2Bb0zg8rns_WAXzpH3VQi9W=2ZXOE5tECuH62OyoyYKVoT7xgA>