Back to index

Lazy Receiver Processing (LRP): A Network Subsystem Architecture for Server Systems

Peter Druschel and Gaurav Banga, Rice Univ.

One-line summary: Goal: alleviate receiver livelock and increase receiver-process throughput and scheduling fairness under high network load. Strategy: replace single IP queue with per-socket queues, demux packets as early as possible (in NI if possible), and do protocol processing lazily (when possible) and always at receiver's (not interrupt's) priority.

Overview/Main Points

Receiver livelock: OS spends all its time receiving/delivering packets (this code runs at interrupt level with high priority, regardless of receiver process). No cycles left over for receiver processes, so packets get dropped on the floor after resources have been expended on them.
How to fix: Implementation:


A generalization of some Active Message-like techniques (early demux, receiver-based message extraction) for IP-like servers under high load. Prevents receiver process thrashing and can help insure fairness of priority scheduling, by improving accounting (of NI interrupts) and limiting resources spent on receiving according to receiver's priority.


Back to index