• Jason Gunthorpe's avatar
    RDMA/mlx5: Allow larger pages in DevX umem · 7610ab57
    Jason Gunthorpe authored
    The umem DMA list calculation was locked at 4k pages due to confusion
    around how this API works and is used when larger pages are present.
    
    The conclusion is:
    
     - umem's cannot extend past what is mapped into the process, so creating
       a lage page size and referring to a sub-range is not allowed
    
     - umem's must always have a page offset of zero, except for sub PAGE_SIZE
       umems
    
     - The feature of umem_offset to create multiple objects inside a umem
       is buggy and isn't used anyplace. Thus we can assume all users of the
       current API have umem_offset == 0 as well
    
    Provide a new page size calculator that limits the DMA list to the VA
    range and enforces umem_offset == 0.
    
    Allow user space to specify the page sizes which it can accept, this
    bitmap must be derived from the intended use of the umem, based on
    per-usage HW limitations.
    
    Link: https://lore.kernel.org/r/20210304130501.1102577-4-leon@kernel.orgSigned-off-by: default avatarYishai Hadas <yishaih@nvidia.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    7610ab57
mlx5_user_ioctl_cmds.h 9.18 KB