Re: [RFC rdma 1/3] RDMA/core: Create a common mmap function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 27, 2019 at 06:25:37PM +0300, Gal Pressman wrote:
> On 27/06/2019 16:58, Michal Kalderon wrote:
> > Create a common API for adding entries to a xa_mmap.
> > This API can be used by drivers that don't require special
> > mapping for user mapped memory.
> > 
> > The code was copied from the efa driver almost as is, just renamed
> > function to be generic and not efa specific.
> 
> I don't think we should force the mmap flags to be the same for all drivers..
> Take a look at mlx5 for example:
> 
> enum mlx5_ib_mmap_cmd {
> 	MLX5_IB_MMAP_REGULAR_PAGE               = 0,
> 	MLX5_IB_MMAP_GET_CONTIGUOUS_PAGES       = 1,
> 	MLX5_IB_MMAP_WC_PAGE                    = 2,
> 	MLX5_IB_MMAP_NC_PAGE                    = 3,
> 	/* 5 is chosen in order to be compatible with old versions of libmlx5 */
> 	MLX5_IB_MMAP_CORE_CLOCK                 = 5,
> 	MLX5_IB_MMAP_ALLOC_WC                   = 6,
> 	MLX5_IB_MMAP_CLOCK_INFO                 = 7,
> 	MLX5_IB_MMAP_DEVICE_MEM                 = 8,
> };
> 
> The flags taken from EFA aren't necessarily going to work for other drivers.
> Maybe the flags bits should be opaque to ib_core and leave the actual mmap
> callbacks in the drivers. Not sure how dealloc_ucontext is going to work with
> opaque flags though?

Yes, the driver will have to take care of masking the flags before
lookup

We should probably store the struct page * in the
rdma_user_mmap_entry() and use that to key struct page behavior.

Do you think we should go further and provide a generic mmap() that
does the right thing? It would not be hard to provide a callback that
computes the pgprot flags 

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux