-
Notifications
You must be signed in to change notification settings - Fork 722
Experimental MSG_ZEROCOPY support #17181
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
Conversation
🔴 Only one category can be selected at a time. |
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru>
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru>
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru>
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru>
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
result.EventDelay = TDuration::MicroSeconds(config.GetEventDelayMicrosec()); | ||
} | ||
|
||
if (config.HasSocketSendOptimization()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need this "if", really. It defaults to IC_SO_DISABLED, and result.SocketSendOptimization defaults to DISABLED.
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru> Support for MSG_ZEROCOPY feature for XDC stream. Linux has features which allows to perform send in to socket without copy during send call. MSG_ZEROCOPY is a one of possibility to achieve it. To use it we must configure net.core.optmem_max kernel option, default values usually not enought. Also process should have capability to lock memory, so consider settings ulimit -l or IPC_LOCK capability. Note0: MSG_ZEROCOPY causes hiden copy inside kernel when traffic goes between process on the same host. The implementation handle it and disable using MSG_ZEROCOPY for such sessions. Note1: Some processes using PACKET sockets breaks MSG_ZEROCOPY and also causes hidden copy inside kernel. So consider output `ss -0` in case of non succcess. Note2: Hardware must support scatter-gather ydb-platform#17181 (comment)
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru> Support for MSG_ZEROCOPY feature for XDC stream. Linux has features which allows to perform send in to socket without copy during send call. MSG_ZEROCOPY is a one of possibility to achieve it. To use it we must configure net.core.optmem_max kernel option, default values usually not enought. Also process should have capability to lock memory, so consider settings ulimit -l or IPC_LOCK capability. Note0: MSG_ZEROCOPY causes hiden copy inside kernel when traffic goes between process on the same host. The implementation handle it and disable using MSG_ZEROCOPY for such sessions. Note1: Some processes using PACKET sockets breaks MSG_ZEROCOPY and also causes hidden copy inside kernel. So consider output `ss -0` in case of non succcess. Note2: Hardware must support scatter-gather #17181 (comment)
Co-authored-by: Vlad Kuznetsov <va.kuznecov@physics.msu.ru> Support for MSG_ZEROCOPY feature for XDC stream. Linux has features which allows to perform send in to socket without copy during send call. MSG_ZEROCOPY is a one of possibility to achieve it. To use it we must configure net.core.optmem_max kernel option, default values usually not enought. Also process should have capability to lock memory, so consider settings ulimit -l or IPC_LOCK capability. Note0: MSG_ZEROCOPY causes hiden copy inside kernel when traffic goes between process on the same host. The implementation handle it and disable using MSG_ZEROCOPY for such sessions. Note1: Some processes using PACKET sockets breaks MSG_ZEROCOPY and also causes hidden copy inside kernel. So consider output `ss -0` in case of non succcess. Note2: Hardware must support scatter-gather ydb-platform#17181 (comment)
Changelog entry
Support for MSG_ZEROCOPY feature for XDC stream.
Linux has features which allows to perform send in to socket without copy during send call. MSG_ZEROCOPY is a one of possibility to achieve it.
without ZC

with ZC

Changelog category
Description for reviewers
...