[Lustre-devel] Completion callbacks

Maxim V. Patlasov Maxim.Patlasov at Sun.COM
Wed Aug 13 04:04:51 PDT 2008


> Liang Zhen ??:
>> >
>> > 2. we change ptlrpc_master_callback so that: it makes a copy of EV and 
>> > queue it in a
>> > FIFO and return, another thread process ev's in this FIFO and callback 
>> > one by one and
>> > we can guarantee events order and call real callbacks without lnet_lock
>> >   
> We can even have an eq_callback_thread (or threads pool) in LNet,
> lnet_enq_event_locked() enqueue event and wakeup the callback_thread,
> so we don't need change ptlrpc at all.

I dislike the idea of introducing any additional callback-devoted 
threads because 1) it would spoil the original design of callbacks as 
light-weight notifications and 2) introduce additional latency. I'd 
prefer to see per-MD locks (or per-EQ array of locks, that's quite 
equivalent) to serialize calling callbacks associated with any 
particular MD. This approach looks more natural and "right" than 
inventing callback-threads.


More information about the lustre-devel mailing list