logoalt Hacker News

ck2yesterday at 4:36 PM2 repliesview on HN

good old buffer packet size

anyone old enough from dialup modems and RS232 to remember the trick of replacing the 16450 UART with 16550 if you were lucky enough to have it on a socket instead of soldered?

that took it from a 1-byte buffer to 16-bytes, instant speed boost

same idea going from X-modem to Y-modem for transfers, 128bytes vs 1024bytes before checksum

surprised ethernet by now doesn't constantly try to negotiate larger buffer windows


Replies

toast0yesterday at 5:25 PM

A lot of these drivers were written in a different era and the defaults are less appropriate now.

Having too few receive buffers leaves a trail in diagnostics (if you know to look for it!), having too many gives more subtle problems. But with 10G ethernet, you can get a lot of packets really quickly and the buffer default was probably set for a card doing 100M or 1G and the driver was updated to handle 10G without new defaults. Interrupt modulation is also common now, which is great for throughput, but means packets buffers will get more full.

I feel like segmentation offload is a nice idea, but weirdness always lurks in the shadows and I don't hesitate to turn it off if any weirdness appears. I haven't noticed a perf difference when I turn it off, but I also haven't run great tests.

Scoundrellertoday at 12:01 AM

Took wayyyy too many hours of tech support to find someone that clued in that I had an 8250 uart. A surprisingly crappy piece of hardware on an 486. and that’s why my $$$ 33.6k performed like garbage until I bought a 16550 card.

I also only learned like 5 years ago that crossover cables are unnecessary nowadays. The 10mbit one I made with a bad soldering iron worked surprisingly well.