- cross-posted to:
- technology@lemmy.world
The OS also periodically polls the network to check for incoming packets before an interrupt request fires. This busy polling mechanism minimizes delays in network traffic processing at the cost of CPU power consumption. During low traffic conditions in particular, polling continues even without packets to process, leading to needless energy usage.
Karsten decided to optimize this approach. “Instead of always waiting for a fixed period of time, we dynamically wait based on what we know is going on in the application,” he says. He devised a technique such that busy polling happens during high network traffic periods, with unnecessary interrupt requests suspended. When network traffic dies down, interrupt-based delivery resumes. “That makes the resulting mechanism much more efficient and flexible,” he adds.
Gotta love open-source for these discoveries.