Re: [Mesa-dev] [PATCH v2 4/4] intel: tools: dump: trace memory writes

2018-07-19 Thread Rafael Antognolli
On Thu, Jul 19, 2018 at 10:14:32AM +0100, Lionel Landwerlin wrote:
> On 18/07/18 21:58, Rafael Antognolli wrote:
> > On Wed, Jul 18, 2018 at 06:21:32PM +0100, Lionel Landwerlin wrote:
> > > Signed-off-by: Lionel Landwerlin 
> > > ---
> > >   src/intel/tools/aub_write.c | 45 ++---
> > >   1 file changed, 32 insertions(+), 13 deletions(-)
> > > 
> > > diff --git a/src/intel/tools/aub_write.c b/src/intel/tools/aub_write.c
> > > index de4ce33..9c140553542 100644
> > > --- a/src/intel/tools/aub_write.c
> > > +++ b/src/intel/tools/aub_write.c
> > > @@ -313,10 +313,17 @@ dword_out(struct aub_file *aub, uint32_t data)
> > >   static void
> > >   mem_trace_memory_write_header_out(struct aub_file *aub, uint64_t addr,
> > > -  uint32_t len, uint32_t addr_space)
> > > +  uint32_t len, uint32_t addr_space,
> > > +  const char *desc)
> > Looks like you are not using desc anywhere...
> > 
> > Other than that, things look good.
> 
> Duh! Fixed locally.
> Counts as Rb?

Yeah, sure :)

> Thanks,
> 
> -
> Lionel
> 
> > 
> > >   {
> > >  uint32_t dwords = ALIGN(len, sizeof(uint32_t)) / sizeof(uint32_t);
> > > +   if (aub->verbose_log_file) {
> > > +  fprintf(aub->verbose_log_file,
> > > +  "  MEM WRITE (0x%016" PRIx64 "-0x%016" PRIx64 ")\n",
> > > +  addr, addr + len);
> > > +   }
> > > +
> > >  dword_out(aub, CMD_MEM_TRACE_MEMORY_WRITE | (5 + dwords - 1));
> > >  dword_out(aub, addr & 0x);   /* addr lo */
> > >  dword_out(aub, addr >> 32);   /* addr hi */
> > > @@ -387,7 +394,8 @@ populate_ppgtt_table(struct aub_file *aub, struct 
> > > aub_ppgtt_table *table,
> > > uint64_t write_size = (dirty_end - dirty_start + 1) *
> > >sizeof(uint64_t);
> > > mem_trace_memory_write_header_out(aub, write_addr, write_size,
> > > -
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL);
> > > +
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL,
> > > +"PPGTT update");
> > > data_out(aub, entries + dirty_start, write_size);
> > >  }
> > >   }
> > > @@ -476,7 +484,8 @@ write_execlists_header(struct aub_file *aub, const 
> > > char *name)
> > >  mem_trace_memory_write_header_out(aub, STATIC_GGTT_MAP_START >> 12,
> > >ggtt_ptes * GEN8_PTE_SIZE,
> > > - 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY);
> > > + 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY,
> > > + "GGTT PT");
> > >  for (uint32_t i = 0; i < ggtt_ptes; i++) {
> > > dword_out(aub, 1 + 0x1000 * i + STATIC_GGTT_MAP_START);
> > > dword_out(aub, 0);
> > > @@ -484,7 +493,8 @@ write_execlists_header(struct aub_file *aub, const 
> > > char *name)
> > >  /* RENDER_RING */
> > >  mem_trace_memory_write_header_out(aub, RENDER_RING_ADDR, RING_SIZE,
> > > - 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> > > + 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> > > + "RENDER RING");
> > >  for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
> > > dword_out(aub, 0);
> > > @@ -492,7 +502,8 @@ write_execlists_header(struct aub_file *aub, const 
> > > char *name)
> > >  mem_trace_memory_write_header_out(aub, RENDER_CONTEXT_ADDR,
> > >PPHWSP_SIZE +
> > >sizeof(render_context_init),
> > > - 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> > > + 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> > > + "RENDER PPHWSP");
> > >  for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
> > > dword_out(aub, 0);
> > > @@ -501,7 +512,8 @@ write_execlists_header(struct aub_file *aub, const 
> > > char *name)
> > >  /* BLITTER_RING */
> > >  mem_trace_memory_write_header_out(aub, BLITTER_RING_ADDR, RING_SIZE,
> > > - 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> > > + 
> > > AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> > > + "BLITTER RING");
> > >  for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
> > > dword_out(aub, 0);
> > > @@ -509,7 +521,8 @@ write_execlists_header(struct aub_file *aub, const 
> > > char *name)
> > >  mem_trace_memory_write_header_out(aub, BLITTER_CONTEXT_ADDR,
> > >PPHWSP_SIZE +
> > >

Re: [Mesa-dev] [PATCH v2 4/4] intel: tools: dump: trace memory writes

2018-07-19 Thread Lionel Landwerlin

On 18/07/18 21:58, Rafael Antognolli wrote:

On Wed, Jul 18, 2018 at 06:21:32PM +0100, Lionel Landwerlin wrote:

Signed-off-by: Lionel Landwerlin 
---
  src/intel/tools/aub_write.c | 45 ++---
  1 file changed, 32 insertions(+), 13 deletions(-)

diff --git a/src/intel/tools/aub_write.c b/src/intel/tools/aub_write.c
index de4ce33..9c140553542 100644
--- a/src/intel/tools/aub_write.c
+++ b/src/intel/tools/aub_write.c
@@ -313,10 +313,17 @@ dword_out(struct aub_file *aub, uint32_t data)
  
  static void

  mem_trace_memory_write_header_out(struct aub_file *aub, uint64_t addr,
-  uint32_t len, uint32_t addr_space)
+  uint32_t len, uint32_t addr_space,
+  const char *desc)

Looks like you are not using desc anywhere...

Other than that, things look good.


Duh! Fixed locally.
Counts as Rb?

Thanks,

-
Lionel




  {
 uint32_t dwords = ALIGN(len, sizeof(uint32_t)) / sizeof(uint32_t);
  
+   if (aub->verbose_log_file) {

+  fprintf(aub->verbose_log_file,
+  "  MEM WRITE (0x%016" PRIx64 "-0x%016" PRIx64 ")\n",
+  addr, addr + len);
+   }
+
 dword_out(aub, CMD_MEM_TRACE_MEMORY_WRITE | (5 + dwords - 1));
 dword_out(aub, addr & 0x);   /* addr lo */
 dword_out(aub, addr >> 32);   /* addr hi */
@@ -387,7 +394,8 @@ populate_ppgtt_table(struct aub_file *aub, struct 
aub_ppgtt_table *table,
uint64_t write_size = (dirty_end - dirty_start + 1) *
   sizeof(uint64_t);
mem_trace_memory_write_header_out(aub, write_addr, write_size,
-
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL);
+
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL,
+"PPGTT update");
data_out(aub, entries + dirty_start, write_size);
 }
  }
@@ -476,7 +484,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
  
 mem_trace_memory_write_header_out(aub, STATIC_GGTT_MAP_START >> 12,

   ggtt_ptes * GEN8_PTE_SIZE,
- 
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY);
+ 
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY,
+ "GGTT PT");
 for (uint32_t i = 0; i < ggtt_ptes; i++) {
dword_out(aub, 1 + 0x1000 * i + STATIC_GGTT_MAP_START);
dword_out(aub, 0);
@@ -484,7 +493,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
  
 /* RENDER_RING */

 mem_trace_memory_write_header_out(aub, RENDER_RING_ADDR, RING_SIZE,
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "RENDER RING");
 for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
dword_out(aub, 0);
  
@@ -492,7 +502,8 @@ write_execlists_header(struct aub_file *aub, const char *name)

 mem_trace_memory_write_header_out(aub, RENDER_CONTEXT_ADDR,
   PPHWSP_SIZE +
   sizeof(render_context_init),
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "RENDER PPHWSP");
 for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
dword_out(aub, 0);
  
@@ -501,7 +512,8 @@ write_execlists_header(struct aub_file *aub, const char *name)
  
 /* BLITTER_RING */

 mem_trace_memory_write_header_out(aub, BLITTER_RING_ADDR, RING_SIZE,
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "BLITTER RING");
 for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
dword_out(aub, 0);
  
@@ -509,7 +521,8 @@ write_execlists_header(struct aub_file *aub, const char *name)

 mem_trace_memory_write_header_out(aub, BLITTER_CONTEXT_ADDR,
   PPHWSP_SIZE +
   sizeof(blitter_context_init),
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "BLITTER PPHWSP");
 for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
dword_out(aub, 0);
  
@@ -518,7 +531,8 @@ write_execlists_header(struct aub_file *aub, const char *name)
  
 /* VIDEO_RING */

 mem_trace_memory_write_header_out(aub, VIDEO_RING_ADDR, RING_SIZE,
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ 

Re: [Mesa-dev] [PATCH v2 4/4] intel: tools: dump: trace memory writes

2018-07-18 Thread Rafael Antognolli
On Wed, Jul 18, 2018 at 06:21:32PM +0100, Lionel Landwerlin wrote:
> Signed-off-by: Lionel Landwerlin 
> ---
>  src/intel/tools/aub_write.c | 45 ++---
>  1 file changed, 32 insertions(+), 13 deletions(-)
> 
> diff --git a/src/intel/tools/aub_write.c b/src/intel/tools/aub_write.c
> index de4ce33..9c140553542 100644
> --- a/src/intel/tools/aub_write.c
> +++ b/src/intel/tools/aub_write.c
> @@ -313,10 +313,17 @@ dword_out(struct aub_file *aub, uint32_t data)
>  
>  static void
>  mem_trace_memory_write_header_out(struct aub_file *aub, uint64_t addr,
> -  uint32_t len, uint32_t addr_space)
> +  uint32_t len, uint32_t addr_space,
> +  const char *desc)

Looks like you are not using desc anywhere...

Other than that, things look good.

>  {
> uint32_t dwords = ALIGN(len, sizeof(uint32_t)) / sizeof(uint32_t);
>  
> +   if (aub->verbose_log_file) {
> +  fprintf(aub->verbose_log_file,
> +  "  MEM WRITE (0x%016" PRIx64 "-0x%016" PRIx64 ")\n",
> +  addr, addr + len);
> +   }
> +
> dword_out(aub, CMD_MEM_TRACE_MEMORY_WRITE | (5 + dwords - 1));
> dword_out(aub, addr & 0x);   /* addr lo */
> dword_out(aub, addr >> 32);   /* addr hi */
> @@ -387,7 +394,8 @@ populate_ppgtt_table(struct aub_file *aub, struct 
> aub_ppgtt_table *table,
>uint64_t write_size = (dirty_end - dirty_start + 1) *
>   sizeof(uint64_t);
>mem_trace_memory_write_header_out(aub, write_addr, write_size,
> -
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL);
> +
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL,
> +"PPGTT update");
>data_out(aub, entries + dirty_start, write_size);
> }
>  }
> @@ -476,7 +484,8 @@ write_execlists_header(struct aub_file *aub, const char 
> *name)
>  
> mem_trace_memory_write_header_out(aub, STATIC_GGTT_MAP_START >> 12,
>   ggtt_ptes * GEN8_PTE_SIZE,
> - 
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY);
> + 
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY,
> + "GGTT PT");
> for (uint32_t i = 0; i < ggtt_ptes; i++) {
>dword_out(aub, 1 + 0x1000 * i + STATIC_GGTT_MAP_START);
>dword_out(aub, 0);
> @@ -484,7 +493,8 @@ write_execlists_header(struct aub_file *aub, const char 
> *name)
>  
> /* RENDER_RING */
> mem_trace_memory_write_header_out(aub, RENDER_RING_ADDR, RING_SIZE,
> - 
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> + AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> + "RENDER RING");
> for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
>dword_out(aub, 0);
>  
> @@ -492,7 +502,8 @@ write_execlists_header(struct aub_file *aub, const char 
> *name)
> mem_trace_memory_write_header_out(aub, RENDER_CONTEXT_ADDR,
>   PPHWSP_SIZE +
>   sizeof(render_context_init),
> - 
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> + AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> + "RENDER PPHWSP");
> for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
>dword_out(aub, 0);
>  
> @@ -501,7 +512,8 @@ write_execlists_header(struct aub_file *aub, const char 
> *name)
>  
> /* BLITTER_RING */
> mem_trace_memory_write_header_out(aub, BLITTER_RING_ADDR, RING_SIZE,
> - 
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> + AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> + "BLITTER RING");
> for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
>dword_out(aub, 0);
>  
> @@ -509,7 +521,8 @@ write_execlists_header(struct aub_file *aub, const char 
> *name)
> mem_trace_memory_write_header_out(aub, BLITTER_CONTEXT_ADDR,
>   PPHWSP_SIZE +
>   sizeof(blitter_context_init),
> - 
> AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
> + AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
> + "BLITTER PPHWSP");
> for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
>dword_out(aub, 0);
>  
> @@ -518,7 +531,8 @@ write_execlists_header(struct aub_file *aub, const char 
> *name)
>  
> /* VIDEO_RING */
> mem_trace_memory_write_header_out(aub, VIDEO_RING_ADDR, RING_SIZE,
> - 
> 

[Mesa-dev] [PATCH v2 4/4] intel: tools: dump: trace memory writes

2018-07-18 Thread Lionel Landwerlin
Signed-off-by: Lionel Landwerlin 
---
 src/intel/tools/aub_write.c | 45 ++---
 1 file changed, 32 insertions(+), 13 deletions(-)

diff --git a/src/intel/tools/aub_write.c b/src/intel/tools/aub_write.c
index de4ce33..9c140553542 100644
--- a/src/intel/tools/aub_write.c
+++ b/src/intel/tools/aub_write.c
@@ -313,10 +313,17 @@ dword_out(struct aub_file *aub, uint32_t data)
 
 static void
 mem_trace_memory_write_header_out(struct aub_file *aub, uint64_t addr,
-  uint32_t len, uint32_t addr_space)
+  uint32_t len, uint32_t addr_space,
+  const char *desc)
 {
uint32_t dwords = ALIGN(len, sizeof(uint32_t)) / sizeof(uint32_t);
 
+   if (aub->verbose_log_file) {
+  fprintf(aub->verbose_log_file,
+  "  MEM WRITE (0x%016" PRIx64 "-0x%016" PRIx64 ")\n",
+  addr, addr + len);
+   }
+
dword_out(aub, CMD_MEM_TRACE_MEMORY_WRITE | (5 + dwords - 1));
dword_out(aub, addr & 0x);   /* addr lo */
dword_out(aub, addr >> 32);   /* addr hi */
@@ -387,7 +394,8 @@ populate_ppgtt_table(struct aub_file *aub, struct 
aub_ppgtt_table *table,
   uint64_t write_size = (dirty_end - dirty_start + 1) *
  sizeof(uint64_t);
   mem_trace_memory_write_header_out(aub, write_addr, write_size,
-
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL);
+
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_PHYSICAL,
+"PPGTT update");
   data_out(aub, entries + dirty_start, write_size);
}
 }
@@ -476,7 +484,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
 
mem_trace_memory_write_header_out(aub, STATIC_GGTT_MAP_START >> 12,
  ggtt_ptes * GEN8_PTE_SIZE,
- 
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY);
+ 
AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT_ENTRY,
+ "GGTT PT");
for (uint32_t i = 0; i < ggtt_ptes; i++) {
   dword_out(aub, 1 + 0x1000 * i + STATIC_GGTT_MAP_START);
   dword_out(aub, 0);
@@ -484,7 +493,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
 
/* RENDER_RING */
mem_trace_memory_write_header_out(aub, RENDER_RING_ADDR, RING_SIZE,
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "RENDER RING");
for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
   dword_out(aub, 0);
 
@@ -492,7 +502,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
mem_trace_memory_write_header_out(aub, RENDER_CONTEXT_ADDR,
  PPHWSP_SIZE +
  sizeof(render_context_init),
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "RENDER PPHWSP");
for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
   dword_out(aub, 0);
 
@@ -501,7 +512,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
 
/* BLITTER_RING */
mem_trace_memory_write_header_out(aub, BLITTER_RING_ADDR, RING_SIZE,
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "BLITTER RING");
for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
   dword_out(aub, 0);
 
@@ -509,7 +521,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
mem_trace_memory_write_header_out(aub, BLITTER_CONTEXT_ADDR,
  PPHWSP_SIZE +
  sizeof(blitter_context_init),
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "BLITTER PPHWSP");
for (uint32_t i = 0; i < PPHWSP_SIZE; i += sizeof(uint32_t))
   dword_out(aub, 0);
 
@@ -518,7 +531,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
 
/* VIDEO_RING */
mem_trace_memory_write_header_out(aub, VIDEO_RING_ADDR, RING_SIZE,
- AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT);
+ AUB_MEM_TRACE_MEMORY_ADDRESS_SPACE_GGTT,
+ "VIDEO RING");
for (uint32_t i = 0; i < RING_SIZE; i += sizeof(uint32_t))
   dword_out(aub, 0);
 
@@ -526,7 +540,8 @@ write_execlists_header(struct aub_file *aub, const char 
*name)
mem_trace_memory_write_header_out(aub,