-
Notifications
You must be signed in to change notification settings - Fork 25
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
Avoid kernel_recvmsg() #21
Comments
I think the best approach would be to:
Using directly skbuffs is not nice, since there should be appropriate operations on UDP/TCP sockets to encapsulate such logic (and make it possible to reuse these operations in other parts of the kernel). |
When run "splice echo time" scenario for 2 seconds a simple ping-pong with server [1]:
With MTU 1400:I am getting following results:
With MTU 16000:I am getting following results:
Ideally we could save:
We have to consider addional logic within
related: https://github.com/fridex/af_ktls/issues/22 [1] https://github.com/fridex/af_ktls-tool/blob/master/action.c#L795 |
fixed by #62 |
Current implementation uses
kernel_recvmsg()
for receiving records. This function does copy from skbuff to passed vector (see [1] for TCP, see [2] for UDP), so it would be nice to avoid it.tcp_read_sock()
. Unfortunately the implementation oftcp_read_sock()
does not support peeking (see [3]), which is necessary according to current AF_KTLS design.EDIT: we could consider to operate directly on skbuff
[1] http://lxr.free-electrons.com/source/net/ipv4/tcp.c#L1830
[2] http://lxr.free-electrons.com/source/net/ipv4/udp.c#L1392
[3] http://lxr.free-electrons.com/source/net/ipv4/tcp.c#L1485
The text was updated successfully, but these errors were encountered: