[sheepdog] [PATCH 0/3] introduce a thread safe mechanism for register/unregister event
Hitoshi Mitake
mitake.hitoshi at gmail.com
Mon Jan 13 11:15:47 CET 2014
At Mon, 13 Jan 2014 17:15:24 +0800,
Liu Yuan wrote:
>
> On Mon, Jan 13, 2014 at 05:13:09PM +0800, Liu Yuan wrote:
> > On Mon, Jan 13, 2014 at 05:40:36PM +0900, Hitoshi Mitake wrote:
> > > The commit 6601e90cf2c5 (sheep: allow {register,unregister}_event to be called
> > > in worker thread) introduced dangerous change of
> > > {register,unregister}_event(). The changed functions are halfway thread safe. It
> > > will be bug prone stuff and shoud be fixed in a correct manner. This patch adds
> > > real thread safe version functions for registering and unregistering events.
> >
> > No, as we previously discussed, we need a high performance register/unregister
> > mechanism for worker threads. Currently, exec_local_req_async is only user of it
> > and current code serve it well.
> >
> > Queuing reg/unreg in the main thread is too slow.
>
> "2. make sure registeration is done before some other events"
>
> can main thread reg/unreg satisfy above requirements? I don't think so.
The main thread reg/unreg satisfy the above requirement. The
requirement is satisfied by the event priority mechanism.
I think you are talking about that the main thread reg/unreg can lose
notifications to req->local_req_efd. But it cannot be
lost. Registering is always done before local_req_handler() because
the register/unregister is set as an event with highest priority.
Thanks,
Hitoshi
More information about the sheepdog
mailing list