On Wed, Dec 08, 2010 at 12:14:51PM +0000, Walukiewicz, Miroslaw wrote:
> Or, 
> 
> >I don't see why the ib uverbs flow (BTW - the data path has nothing to do 
> >with the 
> >rdma_cm, you're working with /dev/infiniband/uverbsX), can't be enhanced 
> >e.g to support shared-page which is allocated && mmaped from uverbs to 
> >user space and used in the same manner your implementation does.
> 
> The problem that I see is that the mmap is currently used for
> mapping of doorbell page in different drivers.
> 
> We can use it for mapping a page for transmit/receive operation when
> we are able to differentiate that we need to map Doorbell or our
> shared page.

There is the 64 bit file offset field to mmap which I think is
driver-specific. You could use 0 for the doorbell page, QPN*PAGE_SIZE
+ QPN_OFFSET for the per-QP page, etc..

> The second problem is that this rx/tx mmap should map the separate
> page per QP to avoid the unnecessary QP lookups so page identifier
> passed to mmap should be based on QP identifier.
> 
> I cannot find a specific code for /dev/infiniband/uverbsX. Is this
> device driver sharing the same functions like /dev/infiniband/rdmacm
> or it has own implementation.

It is in drivers/infiniband/core/uverbs*

For mmap the call is just routed to the driver's ib_dev mmap function,
so you can do whatever you want in your driver and match the
functionality in your userspace libibverbs driver library.

I think you should be able to implement your driver-specific
optimization within the uverbs framework - that would be best all
round.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to