Skip to content

Instantly share code, notes, and snippets.

@roman-shuhov
Last active October 30, 2025 09:32
Show Gist options
  • Select an option

  • Save roman-shuhov/428cdd881dba6890ba9c010704959ba4 to your computer and use it in GitHub Desktop.

Select an option

Save roman-shuhov/428cdd881dba6890ba9c010704959ba4 to your computer and use it in GitHub Desktop.
TCP vs MPTCP+0 vs MPTCP+1 with 1M window and "perf record"
## TCP
```
[ 5] 0.00-30.00 sec 174 GBytes 49.7 Gbits/sec 0 sender
```
```
41.44% iperf3 [kernel.kallsyms] [k] _copy_from_iter
13.57% iperf3 [kernel.kallsyms] [k] tcp_sendmsg
4.16% iperf3 [kernel.kallsyms] [k] _raw_spin_lock
3.95% iperf3 [kernel.kallsyms] [k] __alloc_pages_noprof
3.25% iperf3 [kernel.kallsyms] [k] mlx5e_txwqe_complete
2.85% iperf3 [kernel.kallsyms] [k] skb_clone
2.70% iperf3 [kernel.kallsyms] [k] tcp_ack
1.78% iperf3 [kernel.kallsyms] [k] queued_spin_lock_slowpath
1.75% iperf3 [kernel.kallsyms] [k] __kfree_skb
1.60% iperf3 [kernel.kallsyms] [k] tcp_write_xmit
1.55% iperf3 [kernel.kallsyms] [k] mem_cgroup_charge_skmem
1.45% iperf3 [kernel.kallsyms] [k] sk_page_frag_refill
1.00% iperf3 [kernel.kallsyms] [k] kmem_cache_alloc_node_noprof
0.93% iperf3 [kernel.kallsyms] [k] free_unref_page
0.75% iperf3 [kernel.kallsyms] [k] __alloc_skb
0.69% iperf3 bpf_prog_... [k] bpf_prog_...
0.62% iperf3 [kernel.kallsyms] [k] ip6_xmit
0.60% iperf3 [kernel.kallsyms] [k] __htab_map_lookup_elem.llvm.5951019846955005645
0.59% iperf3 [kernel.kallsyms] [k] __memcg_slab_free_hook
0.58% iperf3 [kernel.kallsyms] [k] rb_erase
0.57% iperf3 [kernel.kallsyms] [k] page_counter_try_charge
0.56% iperf3 [kernel.kallsyms] [k] kmem_cache_free
0.52% iperf3 [kernel.kallsyms] [k] _raw_spin_lock_irqsave
0.44% iperf3 [kernel.kallsyms] [k] skb_gso_validate_network_len
0.41% iperf3 [kernel.kallsyms] [k] __tcp_push_pending_frames
0.37% iperf3 [kernel.kallsyms] [k] _raw_spin_lock_bh
0.35% iperf3 [kernel.kallsyms] [k] mod_timer
0.34% iperf3 [kernel.kallsyms] [k] tcp_rcv_established
0.34% iperf3 [kernel.kallsyms] [k] __sk_mem_schedule
0.30% iperf3 [kernel.kallsyms] [k] __dev_queue_xmit
0.29% iperf3 bpf_prog_... [k] bpf_prog_...
0.28% iperf3 [kernel.kallsyms] [k] _raw_spin_trylock
0.26% iperf3 [kernel.kallsyms] [k] page_counter_uncharge
0.25% iperf3 [kernel.kallsyms] [k] bpf_sk_storage_get
```
## MPTCP no subflows
```
[ 5] 0.00-30.00 sec 148 GBytes 42.3 Gbits/sec 0 sender
```
```
33.71% iperf3 [kernel.kallsyms] [k] _copy_from_iter
10.77% iperf3 [kernel.kallsyms] [k] queued_spin_lock_slowpath
7.06% iperf3 [kernel.kallsyms] [k] mptcp_sendmsg
3.31% iperf3 [kernel.kallsyms] [k] __alloc_pages_noprof
3.27% iperf3 [kernel.kallsyms] [k] mptcp_sendmsg_frag
2.68% iperf3 [kernel.kallsyms] [k] tcp_ack
2.29% iperf3 [kernel.kallsyms] [k] _raw_spin_lock
2.20% iperf3 [kernel.kallsyms] [k] __kfree_skb
1.91% iperf3 [kernel.kallsyms] [k] dfrag_clear
1.68% iperf3 [kernel.kallsyms] [k] free_unref_page
1.64% iperf3 [kernel.kallsyms] [k] mem_cgroup_charge_skmem
1.60% iperf3 [kernel.kallsyms] [k] kmem_cache_free
1.49% iperf3 [kernel.kallsyms] [k] __tcp_push_pending_frames
1.44% iperf3 [kernel.kallsyms] [k] mlx5e_txwqe_complete
1.11% iperf3 [kernel.kallsyms] [k] __skb_ext_put
1.09% iperf3 [kernel.kallsyms] [k] skb_page_frag_refill
1.09% iperf3 [kernel.kallsyms] [k] tcp_rcv_established
1.06% iperf3 [kernel.kallsyms] [k] skb_clone
0.99% iperf3 [kernel.kallsyms] [k] __memcg_slab_free_hook
0.84% iperf3 [kernel.kallsyms] [k] __release_sock
0.82% iperf3 [kernel.kallsyms] [k] __alloc_skb
0.76% iperf3 [kernel.kallsyms] [k] page_counter_try_charge
0.73% iperf3 [kernel.kallsyms] [k] _raw_spin_lock_bh
0.64% iperf3 [kernel.kallsyms] [k] mptcp_established_options
0.64% iperf3 [kernel.kallsyms] [k] ip6_xmit
0.59% iperf3 [kernel.kallsyms] [k] mem_cgroup_uncharge_skmem
0.59% iperf3 [kernel.kallsyms] [k] kmem_cache_alloc_node_noprof
0.58% iperf3 [kernel.kallsyms] [k] _raw_spin_lock_irqsave
0.57% iperf3 [kernel.kallsyms] [k] __sk_mem_schedule
0.51% iperf3 bpf_prog_... [k] bpf_prog_...
0.47% iperf3 [kernel.kallsyms] [k] rb_erase
0.46% iperf3 [kernel.kallsyms] [k] mptcp_subflow_get_send
0.40% iperf3 [kernel.kallsyms] [k] __folio_put
0.38% iperf3 [kernel.kallsyms] [k] __subflow_push_pending
```
## MPTCP 1 subflow
```
[ 5] 0.00-10.00 sec 47.0 GBytes 40.4 Gbits/sec 0 sender
```
```
34.55% iperf3 [kernel.kallsyms] [k] _copy_from_iter
11.24% iperf3 [kernel.kallsyms] [k] queued_spin_lock_slowpath
6.60% iperf3 [kernel.kallsyms] [k] mptcp_sendmsg
4.45% iperf3 [kernel.kallsyms] [k] __alloc_pages_noprof
2.95% iperf3 [kernel.kallsyms] [k] mptcp_sendmsg_frag
1.77% iperf3 [kernel.kallsyms] [k] dfrag_clear
1.76% iperf3 [kernel.kallsyms] [k] skb_page_frag_refill
1.76% iperf3 [kernel.kallsyms] [k] mem_cgroup_charge_skmem
1.59% iperf3 [kernel.kallsyms] [k] free_unref_page
1.27% iperf3 [kernel.kallsyms] [k] __tcp_push_pending_frames
1.18% iperf3 [kernel.kallsyms] [k] __alloc_skb
1.13% iperf3 [kernel.kallsyms] [k] __dev_queue_xmit
1.13% iperf3 [kernel.kallsyms] [k] tcp_ack
1.08% iperf3 [kernel.kallsyms] [k] skb_clone
1.07% iperf3 [kernel.kallsyms] [k] mlx5e_txwqe_complete
1.04% iperf3 [kernel.kallsyms] [k] mptcp_subflow_get_send
1.02% iperf3 [kernel.kallsyms] [k] kmem_cache_free
0.97% iperf3 [kernel.kallsyms] [k] _raw_spin_lock
0.94% iperf3 [kernel.kallsyms] [k] mptcp_established_options
0.90% iperf3 [kernel.kallsyms] [k] _raw_spin_lock_bh
0.89% iperf3 [kernel.kallsyms] [k] __kfree_skb
0.89% iperf3 [kernel.kallsyms] [k] kmem_cache_alloc_node_noprof
0.86% iperf3 [kernel.kallsyms] [k] page_counter_try_charge
0.71% iperf3 [kernel.kallsyms] [k] _raw_spin_lock_irqsave
0.68% iperf3 [kernel.kallsyms] [k] __memcg_slab_free_hook
0.68% iperf3 [kernel.kallsyms] [k] ip6_xmit
0.64% iperf3 [kernel.kallsyms] [k] __subflow_push_pending
0.58% iperf3 [kernel.kallsyms] [k] __sk_mem_schedule
0.53% iperf3 [kernel.kallsyms] [k] kmem_cache_alloc_noprof
0.49% iperf3 [kernel.kallsyms] [k] __skb_ext_put
0.42% iperf3 [kernel.kallsyms] [k] mem_cgroup_uncharge_skmem
0.39% iperf3 [kernel.kallsyms] [k] _raw_spin_trylock
0.38% iperf3 [kernel.kallsyms] [k] tcp_current_mss
0.36% iperf3 [kernel.kallsyms] [k] mptcp_sched_get_send
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment