Skip to content

Commit

Permalink
drm/i915: s/sg_mask/sg_page_sizes/
Browse files Browse the repository at this point in the history
It's a little unclear what the sg_mask actually is, so prefer the more
meaningful name of sg_page_sizes.

Suggested-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171009110024.29114-1-matthew.auld@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
  • Loading branch information
Matthew Auld authored and Chris Wilson committed Oct 9, 2017
1 parent 43ae70d commit 84e8978
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 38 deletions.
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -3537,7 +3537,7 @@ i915_gem_object_get_dma_address(struct drm_i915_gem_object *obj,

void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj,
struct sg_table *pages,
unsigned int sg_mask);
unsigned int sg_page_sizes);
int __i915_gem_object_get_pages(struct drm_i915_gem_object *obj);

static inline int __must_check
Expand Down
28 changes: 14 additions & 14 deletions drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -2333,7 +2333,7 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
struct page *page;
unsigned long last_pfn = 0; /* suppress gcc warning */
unsigned int max_segment = i915_sg_segment_size();
unsigned int sg_mask;
unsigned int sg_page_sizes;
gfp_t noreclaim;
int ret;

Expand Down Expand Up @@ -2365,7 +2365,7 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)

sg = st->sgl;
st->nents = 0;
sg_mask = 0;
sg_page_sizes = 0;
for (i = 0; i < page_count; i++) {
const unsigned int shrink[] = {
I915_SHRINK_BOUND | I915_SHRINK_UNBOUND | I915_SHRINK_PURGEABLE,
Expand Down Expand Up @@ -2419,7 +2419,7 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
sg->length >= max_segment ||
page_to_pfn(page) != last_pfn + 1) {
if (i) {
sg_mask |= sg->length;
sg_page_sizes |= sg->length;
sg = sg_next(sg);
}
st->nents++;
Expand All @@ -2433,7 +2433,7 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
WARN_ON((gfp & __GFP_DMA32) && (last_pfn >= 0x00100000UL));
}
if (sg) { /* loop terminated early; short sg table */
sg_mask |= sg->length;
sg_page_sizes |= sg->length;
sg_mark_end(sg);
}

Expand Down Expand Up @@ -2464,7 +2464,7 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
if (i915_gem_object_needs_bit17_swizzle(obj))
i915_gem_object_do_bit_17_swizzle(obj, st);

__i915_gem_object_set_pages(obj, st, sg_mask);
__i915_gem_object_set_pages(obj, st, sg_page_sizes);

return 0;

Expand Down Expand Up @@ -2492,7 +2492,7 @@ static int i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)

void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj,
struct sg_table *pages,
unsigned int sg_mask)
unsigned int sg_page_sizes)
{
struct drm_i915_private *i915 = to_i915(obj->base.dev);
unsigned long supported = INTEL_INFO(i915)->page_sizes;
Expand All @@ -2512,16 +2512,16 @@ void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj,
obj->mm.quirked = true;
}

GEM_BUG_ON(!sg_mask);
obj->mm.page_sizes.phys = sg_mask;
GEM_BUG_ON(!sg_page_sizes);
obj->mm.page_sizes.phys = sg_page_sizes;

/*
* Calculate the supported page-sizes which fit into the given sg_mask.
* This will give us the page-sizes which we may be able to use
* opportunistically when later inserting into the GTT. For example if
* phys=2G, then in theory we should be able to use 1G, 2M, 64K or 4K
* pages, although in practice this will depend on a number of other
* factors.
* Calculate the supported page-sizes which fit into the given
* sg_page_sizes. This will give us the page-sizes which we may be able
* to use opportunistically when later inserting into the GTT. For
* example if phys=2G, then in theory we should be able to use 1G, 2M,
* 64K or 4K pages, although in practice this will depend on a number of
* other factors.
*/
obj->mm.page_sizes.sg = 0;
for_each_set_bit(i, &supported, ilog2(I915_GTT_MAX_PAGE_SIZE) + 1) {
Expand Down
6 changes: 3 additions & 3 deletions drivers/gpu/drm/i915/i915_gem_dmabuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,16 +259,16 @@ struct dma_buf *i915_gem_prime_export(struct drm_device *dev,
static int i915_gem_object_get_pages_dmabuf(struct drm_i915_gem_object *obj)
{
struct sg_table *pages;
unsigned int sg_mask;
unsigned int sg_page_sizes;

pages = dma_buf_map_attachment(obj->base.import_attach,
DMA_BIDIRECTIONAL);
if (IS_ERR(pages))
return PTR_ERR(pages);

sg_mask = i915_sg_page_sizes(pages->sgl);
sg_page_sizes = i915_sg_page_sizes(pages->sgl);

__i915_gem_object_set_pages(obj, pages, sg_mask);
__i915_gem_object_set_pages(obj, pages, sg_page_sizes);

return 0;
}
Expand Down
8 changes: 4 additions & 4 deletions drivers/gpu/drm/i915/i915_gem_internal.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ static int i915_gem_object_get_pages_internal(struct drm_i915_gem_object *obj)
struct drm_i915_private *i915 = to_i915(obj->base.dev);
struct sg_table *st;
struct scatterlist *sg;
unsigned int sg_mask;
unsigned int sg_page_sizes;
unsigned int npages;
int max_order;
gfp_t gfp;
Expand Down Expand Up @@ -88,7 +88,7 @@ static int i915_gem_object_get_pages_internal(struct drm_i915_gem_object *obj)

sg = st->sgl;
st->nents = 0;
sg_mask = 0;
sg_page_sizes = 0;

do {
int order = min(fls(npages) - 1, max_order);
Expand All @@ -106,7 +106,7 @@ static int i915_gem_object_get_pages_internal(struct drm_i915_gem_object *obj)
} while (1);

sg_set_page(sg, page, PAGE_SIZE << order, 0);
sg_mask |= PAGE_SIZE << order;
sg_page_sizes |= PAGE_SIZE << order;
st->nents++;

npages -= 1 << order;
Expand Down Expand Up @@ -135,7 +135,7 @@ static int i915_gem_object_get_pages_internal(struct drm_i915_gem_object *obj)
*/
obj->mm.madv = I915_MADV_DONTNEED;

__i915_gem_object_set_pages(obj, st, sg_mask);
__i915_gem_object_set_pages(obj, st, sg_page_sizes);

return 0;

Expand Down
6 changes: 3 additions & 3 deletions drivers/gpu/drm/i915/i915_gem_userptr.c
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ __i915_gem_userptr_alloc_pages(struct drm_i915_gem_object *obj,
{
unsigned int max_segment = i915_sg_segment_size();
struct sg_table *st;
unsigned int sg_mask;
unsigned int sg_page_sizes;
int ret;

st = kmalloc(sizeof(*st), GFP_KERNEL);
Expand Down Expand Up @@ -435,9 +435,9 @@ __i915_gem_userptr_alloc_pages(struct drm_i915_gem_object *obj,
return ERR_PTR(ret);
}

sg_mask = i915_sg_page_sizes(st->sgl);
sg_page_sizes = i915_sg_page_sizes(st->sgl);

__i915_gem_object_set_pages(obj, st, sg_mask);
__i915_gem_object_set_pages(obj, st, sg_page_sizes);

return st;
}
Expand Down
18 changes: 9 additions & 9 deletions drivers/gpu/drm/i915/selftests/huge_pages.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ static int get_huge_pages(struct drm_i915_gem_object *obj)
unsigned int page_mask = obj->mm.page_mask;
struct sg_table *st;
struct scatterlist *sg;
unsigned int sg_mask;
unsigned int sg_page_sizes;
u64 rem;

st = kmalloc(sizeof(*st), GFP);
Expand All @@ -83,7 +83,7 @@ static int get_huge_pages(struct drm_i915_gem_object *obj)
rem = obj->base.size;
sg = st->sgl;
st->nents = 0;
sg_mask = 0;
sg_page_sizes = 0;

/*
* Our goal here is simple, we want to greedily fill the object from
Expand All @@ -104,7 +104,7 @@ static int get_huge_pages(struct drm_i915_gem_object *obj)
goto err;

sg_set_page(sg, page, page_size, 0);
sg_mask |= page_size;
sg_page_sizes |= page_size;
st->nents++;

rem -= page_size;
Expand All @@ -124,8 +124,8 @@ static int get_huge_pages(struct drm_i915_gem_object *obj)

obj->mm.madv = I915_MADV_DONTNEED;

GEM_BUG_ON(sg_mask != obj->mm.page_mask);
__i915_gem_object_set_pages(obj, st, sg_mask);
GEM_BUG_ON(sg_page_sizes != obj->mm.page_mask);
__i915_gem_object_set_pages(obj, st, sg_page_sizes);

return 0;

Expand Down Expand Up @@ -192,7 +192,7 @@ static int fake_get_huge_pages(struct drm_i915_gem_object *obj)
const u64 max_len = rounddown_pow_of_two(UINT_MAX);
struct sg_table *st;
struct scatterlist *sg;
unsigned int sg_mask;
unsigned int sg_page_sizes;
u64 rem;

st = kmalloc(sizeof(*st), GFP);
Expand All @@ -208,7 +208,7 @@ static int fake_get_huge_pages(struct drm_i915_gem_object *obj)
rem = obj->base.size;
sg = st->sgl;
st->nents = 0;
sg_mask = 0;
sg_page_sizes = 0;
do {
unsigned int page_size = get_largest_page_size(i915, rem);
unsigned int len = min(page_size * div_u64(rem, page_size),
Expand All @@ -221,7 +221,7 @@ static int fake_get_huge_pages(struct drm_i915_gem_object *obj)
sg_dma_len(sg) = len;
sg_dma_address(sg) = page_size;

sg_mask |= len;
sg_page_sizes |= len;

st->nents++;

Expand All @@ -236,7 +236,7 @@ static int fake_get_huge_pages(struct drm_i915_gem_object *obj)

obj->mm.madv = I915_MADV_DONTNEED;

__i915_gem_object_set_pages(obj, st, sg_mask);
__i915_gem_object_set_pages(obj, st, sg_page_sizes);

return 0;
}
Expand Down
8 changes: 4 additions & 4 deletions drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ static int fake_get_pages(struct drm_i915_gem_object *obj)
#define PFN_BIAS 0x1000
struct sg_table *pages;
struct scatterlist *sg;
unsigned int sg_mask;
unsigned int sg_page_sizes;
typeof(obj->base.size) rem;

pages = kmalloc(sizeof(*pages), GFP);
Expand All @@ -58,7 +58,7 @@ static int fake_get_pages(struct drm_i915_gem_object *obj)
return -ENOMEM;
}

sg_mask = 0;
sg_page_sizes = 0;
rem = obj->base.size;
for (sg = pages->sgl; sg; sg = sg_next(sg)) {
unsigned long len = min_t(typeof(rem), rem, BIT(31));
Expand All @@ -67,15 +67,15 @@ static int fake_get_pages(struct drm_i915_gem_object *obj)
sg_set_page(sg, pfn_to_page(PFN_BIAS), len, 0);
sg_dma_address(sg) = page_to_phys(sg_page(sg));
sg_dma_len(sg) = len;
sg_mask |= len;
sg_page_sizes |= len;

rem -= len;
}
GEM_BUG_ON(rem);

obj->mm.madv = I915_MADV_DONTNEED;

__i915_gem_object_set_pages(obj, pages, sg_mask);
__i915_gem_object_set_pages(obj, pages, sg_page_sizes);

return 0;
#undef GFP
Expand Down

0 comments on commit 84e8978

Please sign in to comment.