Message ID | 2vie3dumx3ajb7lwhiotxs4wj6zcr2fq6on3ebd2vsm2qb3k6l@s5uny4fry4gr (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2] drm/i915/selftest: allow larger memory allocation | expand |
Hi MikoĊaj, > Due to changes in allocator, the size of the allocation for > contiguous region is not rounded up to a power-of-two and > instead allocated as is. Thus, change the part of test that > expected the allocation to fail. > > Signed-off-by: Mikolaj Wasiak <mikolaj.wasiak@intel.com> > --- > v1 -> v2: > - Added negative test for too large allocation I see that you kept the rounding in determining the sizes :) LGTM: Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com> Best Regards, Krzysztof
Hi Mikolaj, On Fri, Mar 21, 2025 at 03:02:49PM +0100, Mikolaj Wasiak wrote: > Due to changes in allocator, the size of the allocation for which change in the allocator? > contiguous region is not rounded up to a power-of-two and > instead allocated as is. The allocator has always been rounded up instead of a power of two round up. > Thus, change the part of test that > expected the allocation to fail. Is the failure part of the test? Andi > Signed-off-by: Mikolaj Wasiak <mikolaj.wasiak@intel.com>
diff --git a/drivers/gpu/drm/i915/selftests/intel_memory_region.c b/drivers/gpu/drm/i915/selftests/intel_memory_region.c index f08f6674911e..7e72e12b26ca 100644 --- a/drivers/gpu/drm/i915/selftests/intel_memory_region.c +++ b/drivers/gpu/drm/i915/selftests/intel_memory_region.c @@ -413,15 +413,8 @@ static int igt_mock_splintered_region(void *arg) close_objects(mem, &objects); - /* - * While we should be able allocate everything without any flag - * restrictions, if we consider I915_BO_ALLOC_CONTIGUOUS then we are - * actually limited to the largest power-of-two for the region size i.e - * max_order, due to the inner workings of the buddy allocator. So make - * sure that does indeed hold true. - */ - - obj = igt_object_create(mem, &objects, size, I915_BO_ALLOC_CONTIGUOUS); + obj = igt_object_create(mem, &objects, roundup_pow_of_two(size), + I915_BO_ALLOC_CONTIGUOUS); if (!IS_ERR(obj)) { pr_err("%s too large contiguous allocation was not rejected\n", __func__); @@ -429,10 +422,19 @@ static int igt_mock_splintered_region(void *arg) goto out_close; } + obj = igt_object_create(mem, &objects, size, I915_BO_ALLOC_CONTIGUOUS); + if (IS_ERR(obj)) { + pr_err("%s largest possible contiguous allocation failed\n", + __func__); + err = PTR_ERR(obj); + goto out_close; + } + close_objects(mem, &objects); + obj = igt_object_create(mem, &objects, rounddown_pow_of_two(size), I915_BO_ALLOC_CONTIGUOUS); if (IS_ERR(obj)) { - pr_err("%s largest possible contiguous allocation failed\n", + pr_err("%s largest rounded possible contiguous allocation failed\n", __func__); err = PTR_ERR(obj); goto out_close;
Due to changes in allocator, the size of the allocation for contiguous region is not rounded up to a power-of-two and instead allocated as is. Thus, change the part of test that expected the allocation to fail. Signed-off-by: Mikolaj Wasiak <mikolaj.wasiak@intel.com> --- v1 -> v2: - Added negative test for too large allocation .../drm/i915/selftests/intel_memory_region.c | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-)