-
Notifications
You must be signed in to change notification settings - Fork 153
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
VMA TCP connect() call takes much longer than OS #1017
Comments
@Fed3n thank you for your analysis. Could you check connect() operation duration to another server w/o closing the first one. I guess that connect() duration might be long just for the first time. |
@Fed3n have you had a chance to verify my assumption? |
@igor-ivanov sorry this slipped my mind. Using VMA on all servers as described above:
Using OS Stack on all servers:
You are absolutely right that only the very first connect takes a long time. Regardless, the |
Thank you, @Fed3n on the first connection ring related resources are initialized. |
VMA TCP connect() call takes much longer than OS
Configuration:
I'm testing VMA flow completion time for a TCP flow against the OS stack and I notice that a blocking connect() call on VMA takes about 1.5-2ms while the same measurement on the OS stack is about 40us. VMA is run on both hosts with
VMA_SPEC=latency
and compiled with--enable-tso
.To see where the bottleneck is, I did some measurements inside the VMA stack and see that in the connect() path the
sockinfo_tcp::prepare_dst_to_send
andsockinfo::attach_as_uc_receiver
take 1.5-2ms combined, while the lwiptcp_connect
call after that only takes around 20us. send/recv delays once the connect is done are then much lower than on OS stack.Is this setup time for a new connection a known limitation of VMA or might there be something wrong with my setup?
The text was updated successfully, but these errors were encountered: