Hi Christian, Thanks for the information! I am not very familiar with the inner workings of DRM, so I'm not really in a position to make any large or systematic changes to the test regarding the points you made. I am mainly trying to allow the tests to be run on more diverse hardware. >From the looks of it this test has been adapted from an older test, so perhaps this rule was set in place in the past. Either way, I dont think my changes are going to break anything, so for the time being I think this small change is the best approach. Please let me know if you think otherwise. David, do you still have this on your radar? We've been carrying this as a RHEL-only since I originally posted it and have not noticed any issues due to it. Cheers, -- Nico On Wed, Apr 19, 2023 at 4:30 AM Christian König <christian.koenig@xxxxxxx> wrote: > > Am 18.04.23 um 19:15 schrieb Nico Pache: > > The DRM buddy test uses a fixed 12 bit shift to covert from pages to > > bytes. This number is then used to confirm that (chunk_size < PAGE_SIZE) > > which can lead to a failing drm_buddy_init on systems with PAGE_SIZE > 4k. > > Since the buddy allocator is used for resources which are independent of > the CPU PAGE size the later check is actually the broken one. > > E.g. neither in the buddy allocator nor in it's test cases we should > have any of PAGE_SHIFT or PAGE_SIZE. > > Otherwise the allocator wouldn't work correctly on systems with a > PAGE_SIZE different than 4k. > > Regards, > Christian. > > > > > Fixes: 92937f170d3f ("drm/selftests: add drm buddy alloc range testcase") > > Signed-off-by: Nico Pache <npache@xxxxxxxxxx> > > --- > > drivers/gpu/drm/tests/drm_buddy_test.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/tests/drm_buddy_test.c b/drivers/gpu/drm/tests/drm_buddy_test.c > > index 09ee6f6af896..a62b2690d3c2 100644 > > --- a/drivers/gpu/drm/tests/drm_buddy_test.c > > +++ b/drivers/gpu/drm/tests/drm_buddy_test.c > > @@ -318,8 +318,8 @@ static void mm_config(u64 *size, u64 *chunk_size) > > s &= -ms; > > > > /* Convert from pages to bytes */ > > - *chunk_size = (u64)ms << 12; > > - *size = (u64)s << 12; > > + *chunk_size = (u64)ms << PAGE_SHIFT; > > + *size = (u64)s << PAGE_SHIFT; > > } > > > > static void drm_test_buddy_alloc_pathological(struct kunit *test) >