[Lustre-devel] Completion callbacks
Maxim V. Patlasov
Maxim.Patlasov at Sun.COM
Wed Aug 13 04:04:51 PDT 2008
Folks,
> 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.
Sincerely,
Maxim
More information about the lustre-devel
mailing list