You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
When an SQPOLL worker copies data to or from userspace, all of the cache traffic is wasted:
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.
Beta Was this translation helpful? Give feedback.
All reactions