[ofa-general] Re: Sharing userspace IB objects
Michael S. Tsirkin
mst at dev.mellanox.co.il
Sun Jun 24 02:58:01 PDT 2007
> Quoting Roland Dreier <rdreier at cisco.com>:
> Subject: Re: Sharing userspace IB objects
>
> > Can you please elaborate a little bit more on what steps are required to
> > achieve this? I have a connection manager running as a separate process from
> > the apps which would be sending/receiving data on QPs. I was hoping to
> > create IB objects via CM and be made sharable to the apps.
>
> You would have to do a lot of hacking of low-level stuff (libibverbs
> and whatever userspace driver libraries you need) to handle passing
> file descriptors through unix domain sockets and figure out a way to
> make the CQ/QP buffers visible in the address space of the process
> that will actually use them. And also handle doorbell pages etc.
This is related to scalability stuff that Dror presented at Sonoma
http://www.openfabrics.org/archives/spring2007sonoma/Tuesday%20May%201/gdror%20Next%20Generation%20Hardware%20Assists%20And%20Scalability2.pdf
See especially the shared send queue slide.
So, since the need seems to be there, I started thinking about how this could be done.
Basically, we could create shared memory objects (shm_open) and use these
for all hardware-accessible registers, as well as necessary control (head/tail pointers,
spinlocks used for protection, etc).
If we do this, we can use unix domain sockets for everything,
a client just mmaps the fd that it got. Does this make sense?
--
MST
More information about the general
mailing list