7431d6ce |
19-May-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
tpc/tcpperf support -p and -b options |
c7fe36ba |
26-Apr-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
print cwnd and retrans in tpc/tcpperf.cc |
14ca1249 |
21-Apr-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
add tpc/bin/tcpperf.cc |
77bc5cb1 |
08-Apr-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
tpc/footprint.cc binds to source IP and port before connecting. This reduces runtime of 500,000 connections from 110s to 16s on z420. Before: Samples: 529K of event 'cycles', Event count (approx.): 490797782170 Children Self Command Shared Object Symbol - 88.24% 0.04% connect_many.py [kernel.vmlinux] [k] entry_SYSCALL_64_after_hwframe - 88.20% entry_SYSCALL_64_after_hwframe - 82.53% do_syscall_64 - 73.49% __x64_sys_bind - __sys_bind - 73.32% __inet_bind - 73.16% inet_csk_get_port - 62.04% inet_csk_bind_conflict 46.77% inet_rcv_saddr_equal - 12.33% sock_i_uid 6.18% _raw_read_lock_bh 4.68% _raw_read_unlock_bh 0.63% __local_bh_enable_ip 4.64% _raw_spin_lock_bh 0.89% __local_bh_enable_ip 0.82% _cond_resched + 5.88% __x64_sys_connect + 1.19% __x64_sys_socket + 0.96% __x64_sys_accept4 + 0.57% __x64_sys_epoll_ctl - 5.67% syscall_exit_to_user_mode + 5.59% exit_to_user_mode_prepare After: Samples: 143K of event 'cycles', Event count (approx.): 132260215644 Children Self Command Shared Object Symbol - 57.20% 0.15% connect_many.py [kernel.vmlinux] [k] entry_SYSCALL_64_after_hwframe - 57.05% entry_SYSCALL_64_after_hwframe - 36.48% do_syscall_64 - 21.05% __x64_sys_connect - 21.01% __sys_connect - 20.66% inet_stream_connect - 20.56% __inet_stream_connect - 11.71% tcp_v4_connect - 9.94% tcp_connect + 8.11% __tcp_transmit_skb 0.70% sk_stream_alloc_skb + 0.54% ip_route_output_flow + 8.49% release_sock + 4.79% __x64_sys_socket + 3.60% __x64_sys_bind + 3.31% __x64_sys_accept4 + 2.08% __x64_sys_epoll_ctl + 0.79% __x64_sys_close + 20.56% syscall_exit_to_user_mode |
246b2f80 |
06-Apr-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
tpc/bin/footprint.cc supports millions of connections. Client binds to 127.1.xxx.yyy before connecting to 127.0.0.1. |
eef48d84 |
24-Feb-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
fix Socket::getLocalAddr() and Socket::getPeerAddr() for IPv6 Also fix bin/roundtrip_udp.cc for IPv6. |
02165cfc |
24-Feb-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
tpc echo.cc supports -6 flag. |
be081f78 |
24-Feb-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
print min,max,avg rtt in roundtrip_tcp.cc |
8bdf4aaf |
24-Feb-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
Use TEMP_FAILURE_RETRY() to deal with EINTR. Also replace read(2) with recv(2), write(2) with send(2). On Linux 5.10, recv/send save a hop in VFS, so it's a bit more efficient. read -> do_syscall_64 -> ksys_read -> vfs_read -> new_sync_read -> call_read_iter -> sock_read_iter -> inet_recvmsg readv -> do_syscall_64 -> do_readv -> vfs_readv -> do_iter_read -> do_iter_readv_writev -> call_read_iter -> sock_read_iter -> inet_recvmsg recv -> do_syscall_64 -> __x64_sys_recvfrom -> __se_sys_recvfrom -> __do_sys_recvfrom -> __sys_recv_from -> inet_recvmsg write -> do_syscall_64 -> ksys_write -> vfs_write -> new_sync_write -> call_write_iter -> sock_write_iter -> sock_sendmsg send -> do_syscall_64 -> __x64_sys_sendto -> __se_sys_sendto -> __do_sys_sendto -> __sys_sendto -> sock_sendmsg |
91852b37 |
12-Feb-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
add tpc/roundtrip_tcp.cc |
24ca08a8 |
01-Jul-2020 |
Shuo Chen <chenshuo@chenshuo.com> |
Support IPv6. |
475e9be4 |
22-Aug-2017 |
Shuo Chen <chenshuo@chenshuo.com> |
Add tpc/bin/sendoob.cc |
e2512892 |
18-Feb-2017 |
Shuo Chen <chenshuo@chenshuo.com> |
add bin/footprint |
726c52da |
08-Jan-2017 |
Shuo Chen <chenshuo@chenshuo.com> |
organize source files in tpc/ |