[sheepdog] [PATCH 1/3] sheep: queue local gateway request instead of directly call forward_*_obj_req

Christoph Hellwig hch at infradead.org
Mon Jun 25 13:21:05 CEST 2012


On Mon, Jun 25, 2012 at 07:17:07PM +0800, Liu Yuan wrote:
> On 06/25/2012 07:10 PM, Christoph Hellwig wrote:
> > How do you ensure this is always called from the main thread?  Calling
> > queue_request from helper threads seems like it would cause major
> > problems.
> 
> What kind of problems?
> 
> For now queue_request() is already called in worker threads context.
> Looks to me we should add a thread safe version of queue_request() that
> can be called in worker threads.

 - get_vnode_info is expected to be called from the main thread,
 - req_done is expected to be called freom the main thread
 - and most serious one is request_in_recovery, which manipulates
   sys->wait_rw_queue and sys->wait_obj_queue without taking locks.




More information about the sheepdog mailing list