[igt-dev] [PATCH i-g-t 1/2] tests/intel/xe_create: sanity check all MBZ fields
Kamil Konieczny
kamil.konieczny at linux.intel.com
Thu Nov 30 17:02:05 UTC 2023
Hi Matthew,
On 2023-11-30 at 14:34:56 +0000, Matthew Auld wrote:
> On 30/11/2023 13:54, Kamil Konieczny wrote:
> > Hi Matthew,
> > On 2023-11-30 at 11:17:34 +0000, Matthew Auld wrote:
> > > Explicitly check that all MBZ fields are rejected by the KMD.
> >
> > Please add also info about testing extension, which is now unused.
> > Write also what MBZ means, for example:
> >
> > Explicitly check that all MBZ (Must Be Zero) fields are rejected.
> >
> > Btw no need to mension Xe driver.
> >
> > >
> > > Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> > > Cc: Pallavi Mishra <pallavi.mishra at intel.com>
> > > Cc: Francois Dugast <francois.dugast at intel.com>
> > > ---
> > > tests/intel/xe_create.c | 59 +++++++++++++++++++++++++++++++++++++----
> > > 1 file changed, 54 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/tests/intel/xe_create.c b/tests/intel/xe_create.c
> > > index bb55a15e1..b0051f5d5 100644
> > > --- a/tests/intel/xe_create.c
> > > +++ b/tests/intel/xe_create.c
> > > @@ -18,6 +18,18 @@
> > > #define PAGE_SIZE 0x1000
> > > +static int ___create_bo(int fd, struct drm_xe_gem_create *create)
> >
> > Could you avoid adding yet enother underscore? I would suggest
> > something simple:
> >
> > static int __ioctl_create(int fd, struct drm_xe_gem_create *create)
> >
> > or just __create:
> >
> > static int __create(int fd, struct drm_xe_gem_create *create)
> >
> > > +{
> > > + int ret = 0;
> > > +
> > > + if (igt_ioctl(fd, DRM_IOCTL_XE_GEM_CREATE, create)) {
> > > + ret = -errno;
> > > + errno = 0;
> > > + }
> > > +
> > > + return ret;
> > > +}
> > > +
> > > static int __create_bo(int fd, uint32_t vm, uint64_t size, uint32_t flags,
> > > uint32_t *handlep)
> > > {
> > > @@ -27,14 +39,11 @@ static int __create_bo(int fd, uint32_t vm, uint64_t size, uint32_t flags,
> > > .flags = flags,
> > > .cpu_caching = __xe_default_cpu_caching_from_flags(fd, flags),
> > > };
> > > - int ret = 0;
> > > + int ret;
> > > igt_assert(handlep);
> > > - if (igt_ioctl(fd, DRM_IOCTL_XE_GEM_CREATE, &create)) {
> > > - ret = -errno;
> > > - errno = 0;
> > > - }
> > > + ret = ___create_bo(fd, &create);
> >
> > Please avoid mixing optimizations, here it is simple and may be
> > accepted but with longer patches would be cumbersome.
>
> Thanks for reviewing. So should I split this change or can I leave it?
>
Leave it, it can stay as is.
Regards,
Kamil
> >
> > Regards,
> > Kamil
> >
> > > *handlep = create.handle;
> > > return ret;
> > > @@ -88,6 +97,43 @@ static void create_invalid_size(int fd)
> > > xe_vm_destroy(fd, vm);
> > > }
> > > +/**
> > > + * SUBTEST: create-invalid-mbz
> > > + * Functionality: ioctl
> > > + * Test category: negative test
> > > + * Description: Verifies xe bo create returns expected error code on all MBZ fields.
> > > + */
> > > +static void create_invalid_mbz(int fd)
> > > +{
> > > + struct drm_xe_gem_create create = {
> > > + .size = PAGE_SIZE,
> > > + .flags = system_memory(fd),
> > > + .cpu_caching = DRM_XE_GEM_CPU_CACHING_WB,
> > > + };
> > > + int i;
> > > +
> > > + /* Make sure the baseline passes */
> > > + igt_assert_eq(___create_bo(fd, &create), 0);
> > > + gem_close(fd, create.handle);
> > > + create.handle = 0;
> > > +
> > > + /* No supported extensions yet */
> > > + create.extensions = -1;
> > > + igt_assert_eq(___create_bo(fd, &create), -EINVAL);
> > > + create.extensions = 0;
> > > +
> > > + /* Make sure KMD rejects non-zero padding/reserved fields */
> > > + create.pad = -1;
> > > + igt_assert_eq(___create_bo(fd, &create), -EINVAL);
> > > + create.pad = 0;
> > > +
> > > + for (i = 0; i < ARRAY_SIZE(create.reserved); i++) {
> > > + create.reserved[i] = -1;
> > > + igt_assert_eq(___create_bo(fd, &create), -EINVAL);
> > > + create.reserved[i] = 0;
> > > + }
> > > +}
> > > +
> > > enum exec_queue_destroy {
> > > NOLEAK,
> > > LEAK
> > > @@ -222,6 +268,9 @@ igt_main
> > > igt_fixture
> > > xe = drm_open_driver(DRIVER_XE);
> > > + igt_subtest("create-invalid-mbz")
> > > + create_invalid_mbz(xe);
> > > +
> > > igt_subtest("create-invalid-size") {
> > > create_invalid_size(xe);
> > > }
> > > --
> > > 2.43.0
> > >
More information about the igt-dev
mailing list