[openib-general] Re: Re: [PATCH] [CMA] support loopback addresses

Michael S. Tsirkin mst at mellanox.co.il
Wed Dec 28 14:49:10 PST 2005


Quoting r. Sean Hefty <mshefty at ichips.intel.com>:
> Subject: Re: Re: [PATCH] [CMA] support loopback addresses
> 
> Michael S. Tsirkin wrote:
> >>+	INIT_WORK(work, loopback_addr_handler, id_priv);
> >>+	queue_work(wq, work);
> >>+	return 0;
> >>+err:
> >>+	kfree(work);
> >>+	return ret;
> >>+}
> > 
> > I'm not following this: why are we deferring the work?
> > Cant it be done directly?
> 
> To keep rdma_resolve_addr() generic, it is an asynchronous call.  The work
> queue is used to callback the user from a separate thread other than the one
> that they called down with.  The ib_addr module does something similar when
> the destination address is actually a local address, deferring the callback to
> another thread.

Maybe this should be moved to ib_addr then?

> 
> The alternative is to have the API behave one way for destination addresses that 
> are local, versus those that are remote, but this complicates applications that 
> are not aware if an address belongs to the local or a remote system.
> 
> - Sean

So, maybe we can reuse the ib_addr wq? Having all requests complete from
a single thread could help applications, I think.

-- 
MST



More information about the general mailing list