Skip to content

Net zerocopy benchmarks update#1525

Merged
axboe merged 26 commits intoaxboe:masterfrom
isilence:net-zc-bench
Jan 13, 2026
Merged

Net zerocopy benchmarks update#1525
axboe merged 26 commits intoaxboe:masterfrom
isilence:net-zc-bench

Conversation

@isilence
Copy link
Collaborator

Update zerocopy tx/rx benchmarks. It fixes a couple of issues with the initial zcrx example code, and add a bunch of features.

@isilence isilence changed the title Net zc bench Net zerocopy benchmarks update Jan 13, 2026
@axboe
Copy link
Owner

axboe commented Jan 13, 2026

Can you rebase on master? There seems to be a few bottom commits that I don't know where that sha is from, the ones talking about test/io-wq-exit?

@isilence
Copy link
Collaborator Author

Weird, that's definitely a test that was pulled from the main repo, maybe some intermediate rebase screwed the hash though. I'll rebase

@axboe
Copy link
Owner

axboe commented Jan 13, 2026

Yeah odd, neither of the two shas:

axboe@m2max ~/gi/liburing (master)> git show f56c512
fatal: bad object f56c512
axboe@m2max ~/gi/liburing (master)> git show b86bdf6
fatal: bad object b86bdf6

exist in my main repo. Maybe a cherry-pick or a rebase that went badly?

Doesn't matter, just need a rebase + drop and it can get pulled.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
In preparation for removing payload size limits, always allocate the
payload buffer dynamically and unify it with huge pages.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
The 65K payload restriction is needed only for UDP, and it doesn't allow
to squeeze all performance out of TCP, lift the limit.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
1024 CQ entries is inadequate for high throughput setups, increase the
size. It can be turned into a parameter later.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Currently sockets get a silent treatment and that's very inconvenient
for testing, print some info about the socket on accept.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Pass actual error codes to t_error.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
The head is published with a release semantics and can happen on any
CPU, the user space must use acquire / read barriers.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
The program prints invalid result even when the client successfully
terminates it.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
32 MB is not enough to initially even populate rings of some cards, set
the default area size to 256 MB. And don't measure it in pages, we care
about the total amount of memory.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
The request can get terminated if the CQ becomes full, handle it by
reissuing the request.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
@axboe
Copy link
Owner

axboe commented Jan 13, 2026

To be clear, the test does exist in my branch, just not those shas.

@isilence
Copy link
Collaborator Author

Should be fine now

@axboe axboe merged commit 04deaa9 into axboe:master Jan 13, 2026
19 checks passed
@axboe
Copy link
Owner

axboe commented Jan 13, 2026

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants