Messages in this thread | | | From | Chaitanya Kulkarni <> | Subject | Re: [PATCH v11 5/9] lib/scatterlist: add check when merging zone device pages | Date | Tue, 25 Oct 2022 01:19:10 +0000 |
| |
On 10/21/22 10:41, Logan Gunthorpe wrote: > Consecutive zone device pages should not be merged into the same sgl > or bvec segment with other types of pages or if they belong to different > pgmaps. Otherwise getting the pgmap of a given segment is not possible > without scanning the entire segment. This helper returns true either if > both pages are not zone device pages or both pages are zone device > pages with the same pgmap. > > Factor out the check for page mergability into a pages_are_mergable() > helper and add a check with zone_device_pages_are_mergeable(). > > Signed-off-by: Logan Gunthorpe <logang@deltatee.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> > --- > lib/scatterlist.c | 25 +++++++++++++++---------- > 1 file changed, 15 insertions(+), 10 deletions(-) > > diff --git a/lib/scatterlist.c b/lib/scatterlist.c > index c8c3d675845c..a0ad2a7959b5 100644 > --- a/lib/scatterlist.c > +++ b/lib/scatterlist.c > @@ -410,6 +410,15 @@ static struct scatterlist *get_next_sg(struct sg_append_table *table, > return new_sg; > } > > +static bool pages_are_mergeable(struct page *a, struct page *b) > +{ > + if (page_to_pfn(a) != page_to_pfn(b) + 1) > + return false; > + if (!zone_device_pages_have_same_pgmap(a, b)) > + return false; > + return true; > +} > +
not sure if it makes sense to make it inline ? either way,
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
-ck
| |