Re: [PATCH net-next 2/3] mm: vmalloc: export find_vm_area()
From: Jason Gunthorpe <jgg@ziepe.ca>
Date: 2026-01-28 18:06:32
Also in:
linux-mm, linux-rdma, linux-s390, lkml
From: Jason Gunthorpe <jgg@ziepe.ca>
Date: 2026-01-28 18:06:32
Also in:
linux-mm, linux-rdma, linux-s390, lkml
On Wed, Jan 28, 2026 at 11:45:58AM +0800, D. Wythe wrote:
By leveraging vmalloc_huge() and the proposed helper to increase the page_size in ib_map_mr_sg(), each MTTE covers a much larger contiguous physical block.
This doesn't seem right, if your goal is to take a vmalloc() pointer and convert it to a MR via a scatterlist and ib_map_mr_sg() then you should be asking for a helper to convert a kernel pointer into a scatterlist. Even if you do this in a naive way and call the sg_alloc_append_table_from_pages() function it will automatically join physically contiguous ranges together for you. From there you can check the resulting scatterlist and compute the page_size to pass to ib_map_mr_sg(). No need to ask the MM for anything other than the list of physicals to build the scatterlist with. Still, I wouldn't mind seeing a helper to convert a kernel pointer into a scatterlist because I have see that opencoded in a few places, and maybe there are ways to optimize that using more information from the MM - but it should be APIs used only by this helper not exposed to drivers. Jason