Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
-
9223372036854775807
Description
lib-eq provides a "event queue' which allows one thread to add events to a queue, and another to remove them, or wait for more.
Such a queue would be useful if LNet were accessed from user-space: allowing user-space to pluck events of a queue with minimal interaction with the kernel would be valuable. But lnet/eq is never used like that.
Almost all users for LNet/eq allocate a queue with zero slots and provide a call-back to be called for each event. This is a sensible approach when producer and consumer are in the same address space (i.e. both in the kernel).
The one exception is lnet_ping() which allocated a 2-element queue. lnet_ping() can easily be re-written to use a call-back, with a reduction in code size.
So let's remove the whole EQ subsystem and just use callbacks everywhere.