[Intel-gfx] [PATCH 6/6] intel_aubdump: Add --no-exec command option
Jordan Justen
jordan.l.justen at intel.com
Thu Sep 14 01:23:21 UTC 2017
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 at intel.com>
> ---
> 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
>
More information about the Intel-gfx
mailing list