Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[kernel] non-temporal loads and stores for network memory copies with SQPOLL #1607

avikivity started this conversation in Ideas
Discussion options

When an SQPOLL worker copies data to or from userspace, all of the cache traffic is wasted:

  • copying from user: the data is on the application core, and should remain there; and in fact it might be cold by the time we process it
  • copying to kernel: the data will be consumed by the NIC, so copying it to the worker's cache is wasteful
  • copying from kernel: the data was placed by the NIC in memory, or in some random LLC, it will not be used by the kernel
  • copying to user: the data will be used, but not by the core that's doing the copying, and only when the application gets around to processing it

It's likely that performance can be improved by switching to non-temporal/streaming loads and stores when SQPOLL is in use. When SQPOLL is not in use (or even without io_uring), some of these copies would benefit from non-temporal data movement, but others not.

You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Ideas
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /