On Thu, 5 Jan 2023 15:26:17 +1100
David Gibson <david(a)gibson.dropbear.id.au> wrote:
At present, the UDP "splice" and
"tap" paths are quite separate. We
have separate sockets to receive packets bound for the tap and splice
paths. This leads to some code duplication, and extra open sockets.
This series partially unifies the two paths, allowing us to use a
single (host side) socket, bound to 0.0.0.0 or :: to receive packets
for both cases.
Changes since v3:
* Fixed really dumb compile error, and actually ran through the tests.
Oops.
Changes since v2:
* Don't receive multiple packets at once for pasta mode - seems to
hurt throughput on balance.
* Add some comments clarifying reasoning here.
Changes since v1:
* Renamed udp_localname[46] to udp[46]_localname
* Allow handling of UDP port 0
* Fix a bug which could misidentify certain v6 packets as v4-spliceable
* Some minor cosmetic fixes to code and commit messages
Thanks, this looks good to me now, and I'm trying to run the tests
before applying it, but for some reason they get invariably stuck at
perf/passt_udp in the host to guest throughput test.
I think it has nothing to do with this series, and it's rather related
to the "new" suspected virtio-net TX timeout issue we started hitting a
while ago, I still need to play with kernel version/workarounds etc.
I'll keep you posted.
Finally, tests consistently pass with a workaround Laurent found, that
is, reverting kernel commit a7766ef18b33 ("virtio_net: disable cb
aggressively") from the kernel I'm using for guests.
I just pushed this, I'm testing the other pending series now.
--
Stefano