intel/error2aub: add a verbose option
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 23 Aug 2018 18:01:47 +0000 (19:01 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 8 Mar 2019 11:01:14 +0000 (11:01 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
src/intel/tools/error2aub.c

index e2dded29c2c8b5fa9c6d955193c8210ba5c13ab1..dd6717def587891a56525173fc5ef828ecc96402 100644 (file)
@@ -231,16 +231,17 @@ int
 main(int argc, char *argv[])
 {
    int i, c;
-   bool help = false;
+   bool help = false, verbose;
    char *out_filename = NULL, *in_filename = NULL;
    const struct option aubinator_opts[] = {
       { "help",       no_argument,       NULL,     'h' },
       { "output",     required_argument, NULL,     'o' },
+      { "verbose",    no_argument,       NULL,     'v' },
       { NULL,         0,                 NULL,     0 }
    };
 
    i = 0;
-   while ((c = getopt_long(argc, argv, "ho:", aubinator_opts, &i)) != -1) {
+   while ((c = getopt_long(argc, argv, "ho:v", aubinator_opts, &i)) != -1) {
       switch (c) {
       case 'h':
          help = true;
@@ -248,6 +249,9 @@ main(int argc, char *argv[])
       case 'o':
          out_filename = strdup(optarg);
          break;
+      case 'v':
+         verbose = true;
+         break;
       default:
          break;
       }
@@ -306,6 +310,8 @@ main(int argc, char *argv[])
 
          aub_file_init(&aub, aub_file,
                        NULL, pci_id, "error_state");
+         if (verbose)
+            aub.verbose_log_file = stdout;
          fail_if(!aub_use_execlists(&aub),
                  "%s currently only works on gen8+\n", argv[0]);
          continue;
@@ -423,6 +429,14 @@ main(int argc, char *argv[])
       }
    }
 
+   if (verbose) {
+      fprintf(stdout, "BOs found:\n");
+      list_for_each_entry(struct bo, bo_entry, &bo_list, link) {
+         fprintf(stdout, "\t type=%i addr=0x%016" PRIx64 " size=%" PRIu64 "\n",
+                 bo_entry->type, bo_entry->addr, bo_entry->size);
+      }
+   }
+
    /* Find the batch that trigger the hang */
    struct bo *batch_bo = NULL;
    list_for_each_entry(struct bo, bo_entry, &bo_list, link) {