On Thu, Oct 25, 2018 at 08:27:17PM -0600, Jason Gunthorpe wrote: > On Tue, Oct 23, 2018 at 06:55:45PM -0500, Shiraz Saleem wrote: > > On Mon, Oct 22, 2018 at 03:06:42PM -0600, Jason Gunthorpe wrote: > > > On Fri, Oct 19, 2018 at 06:34:06PM -0500, Shiraz Saleem wrote: > > > > Squash contiguous regions of PAGE_SIZE pages > > > > into a single SG entry as opposed to one > > > > SG entry per page. This reduces the SG table > > > > size and is friendliest to the IOMMU. > > > > > > > > Suggested-by: Jason Gunthorpe <jgg@xxxxxxxx> > > > > Reviewed-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx> > > > > Signed-off-by: Shiraz Saleem <shiraz.saleem@xxxxxxxxx> > > > > drivers/infiniband/core/umem.c | 66 ++++++++++++++++++++---------------------- > > > > 1 file changed, 31 insertions(+), 35 deletions(-) [..] > > Since sg_alloc_table_from_pages cant be really used here as page_list size has > > to be restricted, I would prefer we defer solving the problem of over allocating > > of SG table to a follow on series. > > And do combining of contig regions into SGL entries in this one. > > Sure, I don't mind the overallocation, it is already the way things > are today. > > Maybe we trivially add an API to trim the sg_table? I will explore this and try adding to this series. > > > If the umem core starts producing large SGL entries won't all the > > > drivers break? > > > > Hmmm..why? > > I'm concerned something iterates over the SGL without using the 'for > each page' varient of the iterator.. It is worth doing some survey at > least. OK. That sounds reasonable.