Skip to content

v9.36.3

Choose a tag to compare

@doronz88 doronz88 released this 21 Jul 05:19
· 332 commits to master since this release
d0c292b

Highlights

🐛 Userspace tunnel: up to 13× faster interactive round-trips

Every DTX/RemoteXPC round-trip over the userspace tunnel used to stall for one
full delayed-ACK timer. The device Nagle-holds the tail segment of each
multi-segment response until our stack ACKs the previous one, and pmd-pytcp's
RFC-default timer is 100 ms — so short interactive operations paid ~110 ms
apiece, and the RSD/DTX handshakes paid several timers each. The delayed-ACK
timer is now dropped to 1 ms (effectively ACK-immediately) through the same
registered-knob check as the other throughput sysctls, so an older pmd-pytcp
just logs and runs untuned. Measured on a USB iPhone (iPhone12,1):

  • dvt ls / round-trip: 110 ms → 8 ms
  • RSD connect: 400 ms → ~85 ms; DTX connect: 190 ms → ~78 ms
  • full dvt ls / CLI: 1.45 s → 0.82 s
  • bulk transfers unaffected: DSC download stays at 38–39 MB/s

In addition, the userspace branch of tun_read_task no longer pays one
event-loop reschedule per outbound packet. It now batch-drains the stack egress
the same way the kernel-tun path does — one wakeup services a whole egress
burst — and hoists the per-packet Ethernet header and EtherType constants out
of the hot paths. This also moves Windows off the per-packet win32 branch.

What's Changed

Full Changelog: v9.36.2...v9.36.3