[openib-general] Re: RFC on SDP checkin

Michael S. Tsirkin mst at mellanox.co.il
Thu Feb 17 06:03:59 PST 2005


Quoting r. Libor Michalek <libor at topspin.com>:
> Subject: Re: RFC on SDP checkin
> Possible Issues
> 
>   
> [...] 
> 
>   - Memory locking for AIO requires a call to do_mlock() which is not a
>     kernel exported function, the method for calling the function is not
>     standard.

Libor, in my eyes this is the biggest issue with this gen2 sdp code.
In short, I dont think using do_mlock is a good idea.
Even if do_mlock *would* be exported, using this call to
do user page locking has other limitations:

- number of locked pages is very restricted, if its not,
  user can easily DOS the box
- fork() is broken in many ways
- user is forbidden from doing mlock/munlock

This may work well enough for things like MPI where
software may be rewritten for infiniband use, but SDP
shall provide migration path for legacy applications without
code changes.

I would like to suggest, once again, that the standard get_user_pages
call is used, instead. It is true that virtual mappings may change,
but it is easy to check that once the transaction is complete,
and perform copy if this happends.

Mellanox implemented and benchmarked this on Gen1 with good results.

If you are interested, I may post the design document for how this
works for us, or I can try and find some time to build a patch.
However, the second option wont happend till the end of
the month, and the patch is likely to be quite big.


-- 
MST - Michael S. Tsirkin



More information about the general mailing list