Skip to content

feat(virtio-net): declare support for TCP receive coalescing offload#2522

Open
cagatay-y wants to merge 2 commits into
hermit-os:mainfrom
cagatay-y:feat-guest-tso
Open

feat(virtio-net): declare support for TCP receive coalescing offload#2522
cagatay-y wants to merge 2 commits into
hermit-os:mainfrom
cagatay-y:feat-guest-tso

Conversation

@cagatay-y

Copy link
Copy Markdown
Contributor

No description provided.

cagatay-y added 2 commits July 2, 2026 19:36
The value for the receive buffer size when GUEST_TSO{4,6} is negotiated has been
updated in the version 1.4 of the specification in order to allow for larger
packets on IPv6.

IPv6 headers do not eat away from the range of the 16-bit IP packet length
field, which affords 40 additional bytes. The actual increase in the value is 39
instead of 40 because the maximum for the header field is 65535 and not 65536,
which I guess was overlooked when the previous version of the specification was
written.
@mkroening mkroening self-assigned this Jul 2, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark Results

Details
Benchmark Current: 4a8c62c Previous: 51d6ad4 Performance Ratio
startup_benchmark Build Time 82.56 s 85.12 s 0.97
startup_benchmark File Size 0.80 MB 0.80 MB 1.00
Startup Time - 1 core 0.76 s (±0.02 s) 0.77 s (±0.02 s) 0.99
Startup Time - 2 cores 0.76 s (±0.02 s) 0.79 s (±0.03 s) 0.96
Startup Time - 4 cores 0.77 s (±0.01 s) 0.77 s (±0.02 s) 1.00
multithreaded_benchmark Build Time 78.30 s 84.73 s 0.92
multithreaded_benchmark File Size 0.90 MB 0.90 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 89.06 % (±7.20 %) 89.89 % (±7.15 %) 0.99
Multithreaded Pi Efficiency - 4 Threads 45.00 % (±2.36 %) 44.39 % (±2.99 %) 1.01
Multithreaded Pi Efficiency - 8 Threads 25.98 % (±1.41 %) 25.11 % (±2.15 %) 1.03
micro_benchmarks Build Time 78.31 s 84.30 s 0.93
micro_benchmarks File Size 0.90 MB 0.90 MB 1
Scheduling time - 1 thread 65.08 ticks (±2.18 ticks) 67.33 ticks (±3.34 ticks) 0.97
Scheduling time - 2 threads 35.47 ticks (±3.17 ticks) 36.43 ticks (±4.37 ticks) 0.97
Micro - Time for syscall (getpid) 4.34 ticks (±0.68 ticks) 4.46 ticks (±0.69 ticks) 0.97
Memcpy speed - (built_in) block size 4096 83109.87 MByte/s (±57427.74 MByte/s) 81004.52 MByte/s (±56131.20 MByte/s) 1.03
Memcpy speed - (built_in) block size 1048576 30379.82 MByte/s (±24599.61 MByte/s) 30233.45 MByte/s (±24513.51 MByte/s) 1.00
Memcpy speed - (built_in) block size 16777216 29433.10 MByte/s (±24235.00 MByte/s) 26069.66 MByte/s (±21594.24 MByte/s) 1.13
Memset speed - (built_in) block size 4096 82893.58 MByte/s (±57275.09 MByte/s) 81057.49 MByte/s (±56165.25 MByte/s) 1.02
Memset speed - (built_in) block size 1048576 31137.21 MByte/s (±25048.54 MByte/s) 30950.59 MByte/s (±24913.45 MByte/s) 1.01
Memset speed - (built_in) block size 16777216 30218.98 MByte/s (±24696.12 MByte/s) 26687.51 MByte/s (±21937.31 MByte/s) 1.13
Memcpy speed - (rust) block size 4096 76657.16 MByte/s (±53222.67 MByte/s) 73234.17 MByte/s (±51106.90 MByte/s) 1.05
Memcpy speed - (rust) block size 1048576 30275.46 MByte/s (±24515.95 MByte/s) 30101.44 MByte/s (±24506.74 MByte/s) 1.01
Memcpy speed - (rust) block size 16777216 29307.05 MByte/s (±24127.22 MByte/s) 26865.89 MByte/s (±22294.91 MByte/s) 1.09
Memset speed - (rust) block size 4096 77120.39 MByte/s (±53552.47 MByte/s) 73852.35 MByte/s (±51525.94 MByte/s) 1.04
Memset speed - (rust) block size 1048576 31056.09 MByte/s (±24988.07 MByte/s) 30843.86 MByte/s (±24935.89 MByte/s) 1.01
Memset speed - (rust) block size 16777216 30078.51 MByte/s (±24576.09 MByte/s) 27626.33 MByte/s (±22762.37 MByte/s) 1.09
alloc_benchmarks Build Time 76.88 s 75.82 s 1.01
alloc_benchmarks File Size 0.88 MB 0.88 MB 1.00
Allocations - Allocation success 91.31 % 91.31 % 1
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.44 % 61.44 % 1
Allocations - Average Allocation time 5078.73 Ticks (±104.17 Ticks) 4947.01 Ticks (±101.23 Ticks) 1.03
Allocations - Average Allocation time (no fail) 5842.00 Ticks (±113.78 Ticks) 5640.35 Ticks (±123.14 Ticks) 1.04
Allocations - Average Deallocation time 1430.58 Ticks (±231.74 Ticks) 1082.18 Ticks (±188.51 Ticks) 1.32
mutex_benchmark Build Time 75.98 s 76.45 s 0.99
mutex_benchmark File Size 0.90 MB 0.90 MB 1
Mutex Stress Test Average Time per Iteration - 1 Threads 12.22 ns (±0.58 ns) 12.38 ns (±0.49 ns) 0.99
Mutex Stress Test Average Time per Iteration - 2 Threads 42.42 ns (±2.33 ns) 42.20 ns (±2.37 ns) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants