[openib-general] Re: [PATCH] (repost) sdp: replace mlock with get_user_pages

Libor Michalek libor at topspin.com
Fri May 13 10:01:49 PDT 2005


On Fri, May 13, 2005 at 04:51:45PM +0300, Michael S. Tsirkin wrote:
> Quoting r. Roland Dreier <roland at topspin.com>:
> > 
> >     Libor>   Always call aio_complete() immediately when
> >     Libor> iocb_complete() is called, and only spawn the work thread
> >     Libor> to unlock the memory after the aio_complete() call. The
> >     Libor> patch is below.
> 
> Libor, I dont think its a good idea - this will break other assumptions,
> like the assumption that the task mm isnt destroyed before we unlock
> the memory.

  That's a good point.

> > Another alternative would be to always complete aios asynchronously,
> > which should preserve the order.  I guess this would hurt latency for
> > small ios...
> 
> To avoid hurting latency, lets count the number of outstanding
> asynchronous AIOs, and if there are asynchronous AIOs complete
> all of them asynchronously.
> 
> Does this make sense?

  Yes, except that the current iocb code does not reference individual
sockets anywhere, and do_iocb_complete would have to be the function
which decremented the per connection counter of outstanding AIOs. Also,
since we don't have to do get_user_pages a second time on the send
path, this would only need to be done on the recv path.

-Libor



More information about the general mailing list