drm/i915/region: fix order when adding blocks
authorMatthew Auld <matthew.auld@intel.com>
Mon, 9 Nov 2020 11:12:49 +0000 (11:12 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 9 Nov 2020 13:38:41 +0000 (13:38 +0000)
commit330b7d33056bb0fa7d7f672d4a98495f200fe9d4
treec67a8f83e20bcd070ff2d59a4fca43fbd8668427
parent2dae0c852940189af35b65895443f9ab05e1b319
drm/i915/region: fix order when adding blocks

When performing an allocation we try split it down into the largest
possible power-of-two blocks/pages-sizes, and for the common case we
expect to allocate the blocks in descending order. This also naturally
fits with our GTT alignment tricks(including the hugepages selftest),
where we sometimes try to align to the largest possible GTT page-size
for the allocation, in the hope that translates to bigger GTT
page-sizes. Currently, we seem to incorrectly add the blocks in the
opposite order, which is definitely not the intended behaviour.

Reported-by: CQ Tang <cq.tang@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: CQ Tang <cq.tang@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20201109111249.109365-1-matthew.auld@intel.com
drivers/gpu/drm/i915/intel_memory_region.c