Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpf: use per-cpu scratch space from xdp context to store meta data #11595

Merged
merged 1 commit into from May 20, 2020

Conversation

borkmann
Copy link
Member

Moving to per-CPU scratch space instead avoids cache-misses and allows
to keep the meta buffer always hot in cache. Only really adjust the
pkt meta data space if we push up the stack to signal tc layer that we
handled the service xlation. This improves the performance on my local
testing by roughly +1.2Mpps. We don't perform an expensive clearing of
the scratch space upon entering XDP as usage here is all self-contained
and across tail calls we only read out what we populated beforehand.

Signed-off-by: Daniel Borkmann daniel@iogearbox.net

Moving to per-CPU scratch space instead avoids cache-misses and allows
to keep the meta buffer always hot in cache. Only really adjust the
pkt meta data space if we push up the stack to signal tc layer that we
handled the service xlation. This improves the performance on my local
testing by roughly +1.2Mpps. We don't perform an expensive clearing of
the scratch space upon entering XDP as usage here is all self-contained
and across tail calls we only read out what we populated beforehand.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
@borkmann borkmann added pending-review sig/datapath Impacts bpf/ or low-level forwarding details, including map management and monitor messages. release-note/misc This PR makes changes that have no direct user impact. labels May 19, 2020
@borkmann borkmann requested review from brb and a team May 19, 2020 10:08
@maintainer-s-little-helper maintainer-s-little-helper bot added this to In progress in 1.8.0 May 19, 2020
@borkmann
Copy link
Member Author

test-me-please

@borkmann
Copy link
Member Author

(ci failures due to quay being down)

@borkmann
Copy link
Member Author

test-me-please

1 similar comment
@borkmann
Copy link
Member Author

test-me-please

@tklauser
Copy link
Member

tklauser commented May 20, 2020

retest-runtime (failed on #11512)

@borkmann
Copy link
Member Author

retest-runtime

1 similar comment
@borkmann
Copy link
Member Author

retest-runtime

@maintainer-s-little-helper maintainer-s-little-helper bot added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label May 20, 2020
@borkmann borkmann merged commit 157632f into master May 20, 2020
1.8.0 automation moved this from In progress to Merged May 20, 2020
@borkmann borkmann deleted the pr/optimize-meta branch May 20, 2020 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-note/misc This PR makes changes that have no direct user impact. sig/datapath Impacts bpf/ or low-level forwarding details, including map management and monitor messages.
Projects
No open projects
1.8.0
  
Merged
Development

Successfully merging this pull request may close these issues.

None yet

4 participants