public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH i-g-t 0/2] Update intel_error_decode for Gen12
@ 2023-04-25 20:19 John.C.Harrison
  2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly John.C.Harrison
  2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 2/2] tools/intel_error_decode: Correctly name the GuC CT buffer John.C.Harrison
  0 siblings, 2 replies; 7+ messages in thread
From: John.C.Harrison @ 2023-04-25 20:19 UTC (permalink / raw)
  To: IGT-Dev; +Cc: Intel-GFX

From: John Harrison <John.C.Harrison@Intel.com>

The error capture decoder was reporting invalid errors in batch
buffers and getting confused about the prescence of the GuC CTB. So
fix those up.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>


John Harrison (2):
  lib/intel_decode: Decode Gen12 ring/batch instructions correctly
  tools/intel_error_decode: Correctly name the GuC CT buffer

 lib/i915/intel_decode.c    | 15 +++++++++++++--
 tools/intel_error_decode.c |  1 +
 2 files changed, 14 insertions(+), 2 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly
  2023-04-25 20:19 [Intel-gfx] [PATCH i-g-t 0/2] Update intel_error_decode for Gen12 John.C.Harrison
@ 2023-04-25 20:19 ` John.C.Harrison
  2023-04-26 21:51   ` Dixit, Ashutosh
  2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 2/2] tools/intel_error_decode: Correctly name the GuC CT buffer John.C.Harrison
  1 sibling, 1 reply; 7+ messages in thread
From: John.C.Harrison @ 2023-04-25 20:19 UTC (permalink / raw)
  To: IGT-Dev; +Cc: Intel-GFX

From: John Harrison <John.C.Harrison@Intel.com>

Some MI_ instructions have changed (or are just new) for Gen12. So
update the decoder code to match.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
 lib/i915/intel_decode.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/lib/i915/intel_decode.c b/lib/i915/intel_decode.c
index 80b92d90c61c..1b6de5edafad 100644
--- a/lib/i915/intel_decode.c
+++ b/lib/i915/intel_decode.c
@@ -236,7 +236,7 @@ decode_mi(struct intel_decode *ctx)
 		{ 0x08, 0, 1, 1, "MI_ARB_ON_OFF" },
 		{ 0x0a, 0, 1, 1, "MI_BATCH_BUFFER_END" },
 		{ 0x30, 0x3f, 3, 3, "MI_BATCH_BUFFER" },
-		{ 0x31, 0x3f, 2, 2, "MI_BATCH_BUFFER_START" },
+		{ 0x31, 0x3f, 2, 3, "MI_BATCH_BUFFER_START" },
 		{ 0x14, 0x3f, 3, 3, "MI_DISPLAY_BUFFER_INFO" },
 		{ 0x04, 0, 1, 1, "MI_FLUSH" },
 		{ 0x22, 0x1f, 3, 3, "MI_LOAD_REGISTER_IMM" },
@@ -256,6 +256,7 @@ decode_mi(struct intel_decode *ctx)
 		{ 0x28, 0x3f, 3, 3, "MI_REPORT_PERF_COUNT" },
 		{ 0x29, 0xff, 3, 3, "MI_LOAD_REGISTER_MEM" },
 		{ 0x0b, 0, 1, 1, "MI_SUSPEND_FLUSH"},
+		{ 0x05, 0, 1, 1, "MI_ARB_CHECK"},
 	}, *opcode_mi = NULL;
 
 	/* check instruction length */
@@ -3623,7 +3624,17 @@ decode_3d_965(struct intel_decode *ctx)
 		return len;
 
 	case 0x7a00:
-		if (IS_GEN6(devid) || IS_GEN7(devid)) {
+		if (IS_GEN12(devid)) {
+			if (len != 6)
+				fprintf(out, "Bad count in PIPE_CONTROL\n");
+			instr_out(ctx, 0, "PIPE_CONTROL\n");
+			instr_out(ctx, 1, "flags\n");
+			instr_out(ctx, 2, "write address low\n");
+			instr_out(ctx, 3, "write address high\n");
+			instr_out(ctx, 4, "write data low\n");
+			instr_out(ctx, 5, "write data high\n");
+			return len;
+		} else if (IS_GEN6(devid) || IS_GEN7(devid)) {
 			if (len != 4 && len != 5)
 				fprintf(out, "Bad count in PIPE_CONTROL\n");
 
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Intel-gfx] [PATCH i-g-t 2/2] tools/intel_error_decode: Correctly name the GuC CT buffer
  2023-04-25 20:19 [Intel-gfx] [PATCH i-g-t 0/2] Update intel_error_decode for Gen12 John.C.Harrison
  2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly John.C.Harrison
@ 2023-04-25 20:19 ` John.C.Harrison
  2023-04-26 21:49   ` Dixit, Ashutosh
  1 sibling, 1 reply; 7+ messages in thread
From: John.C.Harrison @ 2023-04-25 20:19 UTC (permalink / raw)
  To: IGT-Dev; +Cc: Intel-GFX

From: John Harrison <John.C.Harrison@Intel.com>

The buffer decoding code doesn't cope well with unknown buffers. So
add an entry for the GuC CTB so that it gets decoded correctly.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
 tools/intel_error_decode.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/intel_error_decode.c b/tools/intel_error_decode.c
index 99680bedc785..451608826be3 100644
--- a/tools/intel_error_decode.c
+++ b/tools/intel_error_decode.c
@@ -617,6 +617,7 @@ read_data_file(FILE *file)
 				{ "user", "user", 0 },
 				{ "semaphores", "semaphores", 0 },
 				{ "guc log buffer", "GuC log", 0 },
+				{ "guc ct buffer", "GuC CTB", 0 },
 				{ },
 			}, *b;
 			char *new_ring_name;
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Intel-gfx] [PATCH i-g-t 2/2] tools/intel_error_decode: Correctly name the GuC CT buffer
  2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 2/2] tools/intel_error_decode: Correctly name the GuC CT buffer John.C.Harrison
@ 2023-04-26 21:49   ` Dixit, Ashutosh
  0 siblings, 0 replies; 7+ messages in thread
From: Dixit, Ashutosh @ 2023-04-26 21:49 UTC (permalink / raw)
  To: John.C.Harrison; +Cc: IGT-Dev, Intel-GFX

On Tue, 25 Apr 2023 13:19:26 -0700, John.C.Harrison@Intel.com wrote:
>
> From: John Harrison <John.C.Harrison@Intel.com>
>
> The buffer decoding code doesn't cope well with unknown buffers. So
> add an entry for the GuC CTB so that it gets decoded correctly.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
>  tools/intel_error_decode.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/tools/intel_error_decode.c b/tools/intel_error_decode.c
> index 99680bedc785..451608826be3 100644
> --- a/tools/intel_error_decode.c
> +++ b/tools/intel_error_decode.c
> @@ -617,6 +617,7 @@ read_data_file(FILE *file)
>				{ "user", "user", 0 },
>				{ "semaphores", "semaphores", 0 },
>				{ "guc log buffer", "GuC log", 0 },
> +				{ "guc ct buffer", "GuC CTB", 0 },
>				{ },
>			}, *b;
>			char *new_ring_name;
> --
> 2.39.1
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly
  2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly John.C.Harrison
@ 2023-04-26 21:51   ` Dixit, Ashutosh
  2023-05-01 19:44     ` John Harrison
  0 siblings, 1 reply; 7+ messages in thread
From: Dixit, Ashutosh @ 2023-04-26 21:51 UTC (permalink / raw)
  To: John.C.Harrison; +Cc: IGT-Dev, Intel-GFX

On Tue, 25 Apr 2023 13:19:25 -0700, John.C.Harrison@Intel.com wrote:
>
> @@ -3623,7 +3624,17 @@ decode_3d_965(struct intel_decode *ctx)
>		return len;
>
>	case 0x7a00:
> -		if (IS_GEN6(devid) || IS_GEN7(devid)) {
> +		if (IS_GEN12(devid)) {
> +			if (len != 6)
> +				fprintf(out, "Bad count in PIPE_CONTROL\n");
> +			instr_out(ctx, 0, "PIPE_CONTROL\n");
> +			instr_out(ctx, 1, "flags\n");
> +			instr_out(ctx, 2, "write address low\n");
> +			instr_out(ctx, 3, "write address high\n");
> +			instr_out(ctx, 4, "write data low\n");
> +			instr_out(ctx, 5, "write data high\n");
> +			return len;

Is there a reference for this? I can review but have no idea what's going
on here. The rest of the patch looks good. Thanks.

> +		} else if (IS_GEN6(devid) || IS_GEN7(devid)) {
>			if (len != 4 && len != 5)
>				fprintf(out, "Bad count in PIPE_CONTROL\n");
>
> --
> 2.39.1
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly
  2023-04-26 21:51   ` Dixit, Ashutosh
@ 2023-05-01 19:44     ` John Harrison
  2023-05-01 20:01       ` Dixit, Ashutosh
  0 siblings, 1 reply; 7+ messages in thread
From: John Harrison @ 2023-05-01 19:44 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: IGT-Dev, Intel-GFX

On 4/26/2023 14:51, Dixit, Ashutosh wrote:
> On Tue, 25 Apr 2023 13:19:25 -0700, John.C.Harrison@Intel.com wrote:
>> @@ -3623,7 +3624,17 @@ decode_3d_965(struct intel_decode *ctx)
>> 		return len;
>>
>> 	case 0x7a00:
>> -		if (IS_GEN6(devid) || IS_GEN7(devid)) {
>> +		if (IS_GEN12(devid)) {
>> +			if (len != 6)
>> +				fprintf(out, "Bad count in PIPE_CONTROL\n");
>> +			instr_out(ctx, 0, "PIPE_CONTROL\n");
>> +			instr_out(ctx, 1, "flags\n");
>> +			instr_out(ctx, 2, "write address low\n");
>> +			instr_out(ctx, 3, "write address high\n");
>> +			instr_out(ctx, 4, "write data low\n");
>> +			instr_out(ctx, 5, "write data high\n");
>> +			return len;
> Is there a reference for this? I can review but have no idea what's going
> on here. The rest of the patch looks good. Thanks.
Just the bspec definition of PIPE_CONTROL. On later gens it has more 
data - 64bit rather than 32bit addressing I think.

John.

>
>> +		} else if (IS_GEN6(devid) || IS_GEN7(devid)) {
>> 			if (len != 4 && len != 5)
>> 				fprintf(out, "Bad count in PIPE_CONTROL\n");
>>
>> --
>> 2.39.1
>>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly
  2023-05-01 19:44     ` John Harrison
@ 2023-05-01 20:01       ` Dixit, Ashutosh
  0 siblings, 0 replies; 7+ messages in thread
From: Dixit, Ashutosh @ 2023-05-01 20:01 UTC (permalink / raw)
  To: John Harrison; +Cc: IGT-Dev, Intel-GFX

On Mon, 01 May 2023 12:44:14 -0700, John Harrison wrote:
>
> On 4/26/2023 14:51, Dixit, Ashutosh wrote:
> > On Tue, 25 Apr 2023 13:19:25 -0700, John.C.Harrison@Intel.com wrote:
> >> @@ -3623,7 +3624,17 @@ decode_3d_965(struct intel_decode *ctx)
> >>		return len;
> >>
> >>	case 0x7a00:
> >> -		if (IS_GEN6(devid) || IS_GEN7(devid)) {
> >> +		if (IS_GEN12(devid)) {
> >> +			if (len != 6)
> >> +				fprintf(out, "Bad count in PIPE_CONTROL\n");
> >> +			instr_out(ctx, 0, "PIPE_CONTROL\n");
> >> +			instr_out(ctx, 1, "flags\n");
> >> +			instr_out(ctx, 2, "write address low\n");
> >> +			instr_out(ctx, 3, "write address high\n");
> >> +			instr_out(ctx, 4, "write data low\n");
> >> +			instr_out(ctx, 5, "write data high\n");
> >> +			return len;
> > Is there a reference for this? I can review but have no idea what's going
> > on here. The rest of the patch looks good. Thanks.
> Just the bspec definition of PIPE_CONTROL. On later gens it has more data -
> 64bit rather than 32bit addressing I think.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-05-01 20:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-25 20:19 [Intel-gfx] [PATCH i-g-t 0/2] Update intel_error_decode for Gen12 John.C.Harrison
2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 1/2] lib/intel_decode: Decode Gen12 ring/batch instructions correctly John.C.Harrison
2023-04-26 21:51   ` Dixit, Ashutosh
2023-05-01 19:44     ` John Harrison
2023-05-01 20:01       ` Dixit, Ashutosh
2023-04-25 20:19 ` [Intel-gfx] [PATCH i-g-t 2/2] tools/intel_error_decode: Correctly name the GuC CT buffer John.C.Harrison
2023-04-26 21:49   ` Dixit, Ashutosh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox