Re: How does GD_SYNCOP work?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Emmanuel,

The scheduling of a paused task happens when the epoll thread receives a POLLIN event along with
the response from the remote endpoint. This is contingent on the fact that the call back must issue
a synctask_wake, which will trigger the resumption of the task (in one of the threads from the syncenv).
In summary, the call back code triggers the scheduling back of the paused task.

HTH,
KP

----- Original Message -----
> On Wed, Sep 10, 2014 at 05:32:41AM -0400, Krishnan Parthasarathi wrote:
> > Let me try to explain how GD_SYNCOP works. Internally, GD_SYNCOP yields the
> > thread that was
> > executing the (sync)task once the RPC request is submitted (asynchronously)
> > to the remote endpoint.
> > It's equivalent to pausing the task until the response is received. The
> > call back function, which generally
> > executes in the epoll thread, wakes the corresponding task into execution
> > (ie. resumes task execution).
> 
> I suspect this is the problem: the task is not scheduled. NetBSD uses poll
> and not epoll,
> which may explain the problem. Where does the task scheduling happens in
> epoll code?
> --
> Emmanuel Dreyfus
> manu@xxxxxxxxxx
> 
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://supercolony.gluster.org/mailman/listinfo/gluster-devel




[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux