History log of /recipes/tpc/bin/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
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/