Skip site navigation (1)Skip section navigation (2)
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>

index | next in thread | raw e-mail

[-- Attachment #1 --]
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

[-- Attachment #2 --]
<div dir="ltr">Hi, I have a Phabricator review here that I was hoping to get some feedback on: <a href="https://reviews.freebsd.org/D34742">https://reviews.freebsd.org/D34742</a><div><br></div><div>In short, there&#39;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&#39;t seem to affect much; I looked at it in VTune across different types of netperf 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 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.</div><div><br></div><div>- Eric</div></div>
help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2Bb0zg8rns_WAXzpH3VQi9W=2ZXOE5tECuH62OyoyYKVoT7xgA>