[RFC,v7,3/5] lib: ioctl_wrappers: check GET/SETPARAM ioctl and build active engine list

Submitted by Tomi Valkeinen via igt-dev on Feb. 11, 2019, 11:08 p.m.

Details

Message ID 20190211230811.24955-4-andi.shyti@intel.com
State New
Headers show
Series "new engine discovery interface" ( rev: 1 ) in IGT

Not browsing as part of any series.

Commit Message

Tomi Valkeinen via igt-dev Feb. 11, 2019, 11:08 p.m.
The igt_require_gem_engine_list() is called whenever the test
wants to use the GET/SETPARAM ioctls.

The function checks whether the GET/SETPARAM are implemented in
the running kernel and stops the test in case these commands are
not supported.

At the first call it creates the current engine list as
implemented in the gem_init_engine_list() function.

Signed-off-by: Andi Shyti <andi.shyti@intel.com>
---
 lib/ioctl_wrappers.c | 7 +++++++
 lib/ioctl_wrappers.h | 1 +
 2 files changed, 8 insertions(+)

Patch hide | download patch | download mbox

diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 404c2fbf9355..2d2a3033d961 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -53,6 +53,7 @@ 
 #include "intel_chipset.h"
 #include "intel_io.h"
 #include "igt_debugfs.h"
+#include "igt_gt.h"
 #include "igt_sysfs.h"
 #include "config.h"
 
@@ -1465,6 +1466,12 @@  void igt_require_gem(int fd)
 	igt_require_f(err == 0, "Unresponsive i915/GEM device\n");
 }
 
+void igt_require_gem_engine_list(int fd)
+{
+	igt_require_intel(fd);
+	igt_require(!gem_init_engine_list(fd));
+}
+
 bool gem_has_ring(int fd, unsigned ring)
 {
 	struct drm_i915_gem_execbuffer2 execbuf;
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index b22b36b0b2dd..e0b54154f5c1 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -142,6 +142,7 @@  bool gem_bo_busy(int fd, uint32_t handle);
 
 /* feature test helpers */
 void igt_require_gem(int fd);
+void igt_require_gem_engine_list(int fd);
 bool gem_has_llc(int fd);
 bool gem_has_bsd(int fd);
 bool gem_has_blt(int fd);

Comments

Quoting Andi Shyti (2019-02-11 23:08:09)
> The igt_require_gem_engine_list() is called whenever the test
> wants to use the GET/SETPARAM ioctls.
> 
> The function checks whether the GET/SETPARAM are implemented in
> the running kernel and stops the test in case these commands are
> not supported.
> 
> At the first call it creates the current engine list as
> implemented in the gem_init_engine_list() function.
> 
> Signed-off-by: Andi Shyti <andi.shyti@intel.com>
> ---
>  lib/ioctl_wrappers.c | 7 +++++++
>  lib/ioctl_wrappers.h | 1 +

No new additions to ioctl_wrappers.c please. If we are generalising an
existing interface, pull it out into i915/ and add your additions there.
-Chris
Hi Chris,

On Mon, Feb 11, 2019 at 11:16:42PM +0000, Chris Wilson wrote:
> Quoting Andi Shyti (2019-02-11 23:08:09)
> > The igt_require_gem_engine_list() is called whenever the test
> > wants to use the GET/SETPARAM ioctls.
> > 
> > The function checks whether the GET/SETPARAM are implemented in
> > the running kernel and stops the test in case these commands are
> > not supported.
> > 
> > At the first call it creates the current engine list as
> > implemented in the gem_init_engine_list() function.
> > 
> > Signed-off-by: Andi Shyti <andi.shyti@intel.com>
> > ---
> >  lib/ioctl_wrappers.c | 7 +++++++
> >  lib/ioctl_wrappers.h | 1 +
> 
> No new additions to ioctl_wrappers.c please. If we are generalising an
> existing interface, pull it out into i915/ and add your additions there.

for both the reviews: I will move then everything in i915/.

Thanks again!
Andi