Hacker News new | ask | show | jobs
by bnoordhuis 5557 days ago
The problem is that a high-bandwidth link overruns the CPU with thousands of interrupts per second. It can paralyse the system, where the CPU is so busy handling I/O that it doesn't get around to actually scheduling processes.

Disclaimer: I sometimes consult for HFTs but we don't use FPGAs (yet).

1 comments

So it is more an architecture issue with conventional hardware ? It makes much more sense to me with this explanation - the issue is the same as in most real-time systems then (like in embedded hardware for audio gears, which is more familiar to me than HFT).

Don't things like real time linux or soft real time patches for linux help, though ?

> Don't things like real time linux or soft real time patches for linux help, though ?

I don't see how it could.

The CPU essentially drops everything it's doing when a packet comes in. Have that happen often enough and there won't be time left to do anything else, unless you start dropping packets.

Doesn't interrupt moderation and receive-side scaling (new Intel NICs can even do rule-based queue distribution) sort this out?
We see this behavior on high pps routers -- but isn't this why you have multiple CPUs and thread-based interrupt handling?