Skip to content

rtl9139: fix tx buffer handling - #2700

Draft
sbutz wants to merge 1 commit into
hermit-os:mainfrom
sbutz:fix_rtl8139
Draft

rtl9139: fix tx buffer handling#2700
sbutz wants to merge 1 commit into
hermit-os:mainfrom
sbutz:fix_rtl8139

Conversation

@sbutz

@sbutz sbutz commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Fixes #2636.

Transmit buffers are usually released by the TOK interrupt.
Though several frames may have to be sent while handling a single interrupt so the transmit buffer status descriptors are polled too.

Needs #2699 to activate miotcp ci jobs.

Transmit buffers are usually released by the TOK interrupt.
Though several frames may have to be sent while handling a single interrupt
so the transmit buffer status descriptors are polled too.

@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: 17ca6e3 Previous: 2e23902 Performance Ratio
startup_benchmark Build Time 93.16 s 80.34 s 1.16
startup_benchmark File Size 0.79 MB 0.80 MB 0.99
Startup Time - 1 core 0.70 s (±0.02 s) 0.75 s (±0.02 s) 0.94
Startup Time - 2 cores 0.72 s (±0.02 s) 0.74 s (±0.02 s) 0.98
Startup Time - 4 cores 0.72 s (±0.02 s) 0.74 s (±0.02 s) 0.98
multithreaded_benchmark Build Time 93.82 s 82.11 s 1.14
multithreaded_benchmark File Size 0.88 MB 0.86 MB 1.02
Multithreaded Pi Efficiency - 2 Threads 68.14 % (±6.06 %) 85.89 % (±6.61 %) 0.79
Multithreaded Pi Efficiency - 4 Threads 41.99 % (±2.57 %) 43.43 % (±2.56 %) 0.97
Multithreaded Pi Efficiency - 8 Threads 20.70 % (±1.64 %) 25.76 % (±1.53 %) 0.80
micro_benchmarks Build Time 223.55 s 80.40 s 2.78
micro_benchmarks File Size 0.88 MB 0.86 MB 1.02
Scheduling time - 1 thread 168.95 ticks (±44.69 ticks) 62.65 ticks (±4.06 ticks) 2.70
Scheduling time - 2 threads 98.03 ticks (±22.47 ticks) 34.08 ticks (±4.10 ticks) 2.88
Micro - Time for syscall (getpid) 7.78 ticks (±5.48 ticks) 3.45 ticks (±0.58 ticks) 2.26
Memcpy speed - (built_in) block size 4096 57320.56 MByte/s (±40497.14 MByte/s) 82448.38 MByte/s (±56997.13 MByte/s) 0.70
Memcpy speed - (built_in) block size 1048576 14419.58 MByte/s (±11768.38 MByte/s) 30585.98 MByte/s (±24707.84 MByte/s) 0.47
Memcpy speed - (built_in) block size 16777216 12713.92 MByte/s (±10644.98 MByte/s) 26340.06 MByte/s (±21720.96 MByte/s) 0.48
Memset speed - (built_in) block size 4096 57523.55 MByte/s (±40599.15 MByte/s) 82292.76 MByte/s (±56891.50 MByte/s) 0.70
Memset speed - (built_in) block size 1048576 14739.35 MByte/s (±11939.69 MByte/s) 31323.85 MByte/s (±25145.86 MByte/s) 0.47
Memset speed - (built_in) block size 16777216 12999.85 MByte/s (±10783.75 MByte/s) 27104.68 MByte/s (±22209.94 MByte/s) 0.48
Memcpy speed - (rust) block size 4096 52599.96 MByte/s (±38932.02 MByte/s) 74097.96 MByte/s (±51811.44 MByte/s) 0.71
Memcpy speed - (rust) block size 1048576 14931.38 MByte/s (±12470.10 MByte/s) 30361.60 MByte/s (±24602.37 MByte/s) 0.49
Memcpy speed - (rust) block size 16777216 11927.14 MByte/s (±9824.16 MByte/s) 27625.34 MByte/s (±22806.88 MByte/s) 0.43
Memset speed - (rust) block size 4096 53078.02 MByte/s (±39196.53 MByte/s) 74373.47 MByte/s (±51976.48 MByte/s) 0.71
Memset speed - (rust) block size 1048576 15294.61 MByte/s (±12648.00 MByte/s) 31110.89 MByte/s (±25033.24 MByte/s) 0.49
Memset speed - (rust) block size 16777216 12197.47 MByte/s (±9953.96 MByte/s) 28386.93 MByte/s (±23265.03 MByte/s) 0.43
alloc_benchmarks Build Time 206.47 s 74.76 s 2.76
alloc_benchmarks File Size 0.87 MB 0.87 MB 0.99
Allocations - Allocation success 91.38 % 91.31 % 1.00
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.60 % 61.44 % 1.00
Allocations - Average Allocation time 16329.52 Ticks (±2020.33 Ticks) 5860.58 Ticks (±98.43 Ticks) 2.79
Allocations - Average Allocation time (no fail) 18267.99 Ticks (±2121.46 Ticks) 6554.81 Ticks (±92.86 Ticks) 2.79
Allocations - Average Deallocation time 7398.19 Ticks (±1319.90 Ticks) 1805.01 Ticks (±250.35 Ticks) 4.10
mutex_benchmark Build Time 215.65 s 79.82 s 2.70
mutex_benchmark File Size 0.88 MB 0.86 MB 1.02
Mutex Stress Test Average Time per Iteration - 1 Threads 34.02 ns (±6.56 ns) 12.10 ns (±0.41 ns) 2.81
Mutex Stress Test Average Time per Iteration - 2 Threads 28.36 ns (±7.68 ns) 40.26 ns (±1.68 ns) 0.70

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Some PCI setups are broken on RISC-V

1 participant