[Mesa-dev] [PATCH 4/4] intel/aubinator: Pull useful information from the AUB header

Jason Ekstrand jason at jlekstrand.net
Mon Nov 28 23:47:44 UTC 2016


On Mon, Nov 28, 2016 at 3:46 PM, Jordan Justen <jordan.l.justen at intel.com>
wrote:

> On 2016-11-23 20:27:28, Jason Ekstrand wrote:
> > This commit does two things.  One is to pull useful and/or interesting
> > information from the AUB file header and display it as a header above
> your
> > decoded batches.  Second, it is now capable of pulling the PCI ID from
> the
> > AUB file comment left by intel_aubdump.  This removes the need to use the
> > --gen flag all the time.
> > ---
> >  src/intel/tools/aubinator.c | 37 ++++++++++++++++++++++++++++++++++---
> >  1 file changed, 34 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
> > index 60aead8..f9aa8ce 100644
> > --- a/src/intel/tools/aubinator.c
> > +++ b/src/intel/tools/aubinator.c
> > @@ -63,7 +63,7 @@ static enum { COLOR_AUTO, COLOR_ALWAYS, COLOR_NEVER }
> option_color;
> >  /* state */
> >
> >  uint16_t pci_id = 0;
> > -char *xml_path = NULL;
> > +char *input_file = NULL, *xml_path = NULL;
> >  struct gen_spec *spec;
> >  struct gen_disasm *disasm;
> >
> > @@ -891,9 +891,23 @@ handle_trace_block(uint32_t *p)
> >     }
> >  }
> >
> > +#define MAX(a, b) ((a) < (b) ? (b) : (a))
> > +
>
> Why was this moved? Also, couldn't we use MAX2 from utils/macros.h?
>

An earlier version of the patch needed it in handle_trace_header


>
> Series Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
>
> >  static void
> >  handle_trace_header(uint32_t *p)
> >  {
> > +   /* The intel_aubdump tool from IGT is kind enough to put a PCI-ID=
> tag in
> > +    * the AUB header comment.  If the user hasn't specified a hardware
> > +    * generation, try to use the one from the AUB file.
> > +    */
> > +   uint32_t *end = p + (p[0] & 0xffff) + 2;
> > +   int aub_pci_id = 0;
> > +   if (end > &p[12] && p[12] > 0)
> > +      sscanf((char *)&p[13], "PCI-ID=%i", &aub_pci_id);
> > +
> > +   if (pci_id == 0)
> > +      pci_id = aub_pci_id;
> > +
> >     struct gen_device_info devinfo;
> >     if (!gen_get_device_info(pci_id, &devinfo)) {
> >        fprintf(stderr, "can't find device information: pci_id=0x%x\n",
> pci_id);
> > @@ -908,6 +922,25 @@ handle_trace_header(uint32_t *p)
> >
> >     if (spec == NULL || disasm == NULL)
> >        exit(EXIT_FAILURE);
> > +
> > +   printf("%sAubinator: Intel AUB file decoder.%-80s%s\n",
> > +          GREEN_HEADER, "", NORMAL);
> > +
> > +   if (input_file)
> > +      printf("File name:        %s\n", input_file);
> > +
> > +   if (aub_pci_id)
> > +      printf("PCI ID:           0x%x\n", aub_pci_id);
> > +
> > +   char app_name[33];
> > +   strncpy(app_name, (char *)&p[2], 32);
> > +   app_name[32] = 0;
> > +   printf("Application name: %s\n", app_name);
> > +
> > +   printf("Decoding as:      %s\n", gen_get_device_name(pci_id));
> > +
> > +   /* Throw in a new line before the first batch */
> > +   printf("\n");
> >  }
> >
> >  struct aub_file {
> > @@ -1094,7 +1127,6 @@ aub_file_more_stuff(struct aub_file *file)
> >  }
> >
> >  #define AUB_READ_BUFFER_SIZE (4096)
> > -#define MAX(a, b) ((a) < (b) ? (b) : (a))
> >
> >  static void
> >  aub_file_data_grow(struct aub_file *file)
> > @@ -1185,7 +1217,6 @@ int main(int argc, char *argv[])
> >     struct aub_file *file;
> >     int c, i;
> >     bool help = false, pager = true;
> > -   char *input_file = NULL;
> >     const struct {
> >        const char *name;
> >        int pci_id;
> > --
> > 2.5.0.400.gff86faf
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161128/b6d6096a/attachment-0001.html>


More information about the mesa-dev mailing list