On 2017-09-13 18:11:00, Jordan Justen wrote: > In some cases it is preferable to not send exec commands to the > kernel, but to otherwise record the exec command into the AUB file. > > For example, when using the --device override option, it might be best > to avoid passing the EXEC ioctls through to the kernel. > > Signed-off-by: Jordan Justen <jordan.l.justen@xxxxxxxxx> > --- > tools/aubdump.c | 13 +++++++++++-- > tools/intel_aubdump.in | 7 +++++++ > 2 files changed, 18 insertions(+), 2 deletions(-) > > diff --git a/tools/aubdump.c b/tools/aubdump.c > index 4392e589..6961cd51 100644 > --- a/tools/aubdump.c > +++ b/tools/aubdump.c > @@ -58,6 +58,7 @@ static int gen = 0; > static int verbose = 0; > static bool device_override; > static uint32_t device; > +static bool no_exec = false; > > #define MAX_BO_COUNT 64 * 1024 > > @@ -567,6 +568,8 @@ maybe_init(void) > "intel_aubdump: failed to parse device id '%s'", > value); > device_override = true; > + } else if (!strcmp(key, "no_exec")) { > + no_exec = true; > } else if (!strcmp(key, "file")) { > filename = strdup(value); > files[0] = fopen(filename, "w+"); > @@ -645,7 +648,10 @@ ioctl(int fd, unsigned long request, ...) > "application uses DRM_IOCTL_I915_GEM_EXECBUFFER, not handled\n"); > once = true; > } > - return libc_ioctl(fd, request, argp); > + if (verbose && no_exec) > + printf("Skipping DRM_IOCTL_I915_GEM_EXECBUFFER " > + "ioctl (--no-exec)\n"); > + return no_exec ? 0 : libc_ioctl(fd, request, argp); > } > > case DRM_IOCTL_I915_GEM_EXECBUFFER2: > @@ -654,7 +660,10 @@ ioctl(int fd, unsigned long request, ...) > if (device_override) > return 0; Hmm, I guess I just looked at the DRM_IOCTL_I915_GEM_EXECBUFFER case and then glossed over the fact that DRM_IOCTL_I915_GEM_EXECBUFFER2 already skips exec when --device is used. So, this patch should be dropped... I guess the other meson ones might be useful. -Jordan > > - return libc_ioctl(fd, request, argp); > + if (verbose && no_exec) > + printf("Skipping DRM_IOCTL_I915_GEM_EXECBUFFER2 " > + "ioctl (--no-exec)\n"); > + return no_exec ? 0 : libc_ioctl(fd, request, argp); > } > > case DRM_IOCTL_I915_GEM_CREATE: { > diff --git a/tools/intel_aubdump.in b/tools/intel_aubdump.in > index 8bc6b19d..ce77c849 100755 > --- a/tools/intel_aubdump.in > +++ b/tools/intel_aubdump.in > @@ -15,6 +15,9 @@ contents and execution of the GEM application. > > --device=ID Override PCI ID of the reported device > > + -n, --no-exec Record exec commands in the AUB file, but don't send > + them to the kernel > + > -v Enable verbose output > > --help Display this help message and exit > @@ -79,6 +82,10 @@ while true; do > add_arg "device=${1##--device=}" > shift > ;; > + -n|--no-exec) > + add_arg "no_exec=1" > + shift > + ;; > --help) > show_help > ;; > -- > 2.14.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx