[CI] drm/xe/guc: Remove spurious line feed in debug print
Souza, Jose
jose.souza at intel.com
Thu Jun 27 15:27:56 UTC 2024
On Thu, 2024-06-27 at 16:42 +0200, Michal Wajdeczko wrote:
>
> On 27.06.2024 15:53, Souza, Jose wrote:
> > On Wed, 2024-06-26 at 23:18 +0200, Michal Wajdeczko wrote:
> > >
> > > On 26.06.2024 22:35, Souza, Jose wrote:
> > > > On Wed, 2024-06-26 at 22:12 +0200, Michal Wajdeczko wrote:
> > > > > From: John Harrison <John.C.Harrison at Intel.com>
> > > > >
> > > > > Including line feeds at the start of a debug print messes up the
> > > > > output when sent to dmesg. The break actually appears between all the
> > > > > usefu prefix information and the actual string being printed. In this
> > > > > case, each block of data has a very clear start line and an extra
> > > > > delimeter is really not necessary. So don't do it.
> > > >
> > > > I guess the indention was to have one blank like between guc_ctb_snapshot_print() 'cmd[X]' lines and 'G2H CTB (all sizes in DW):'.
> > > > I agree with the change if you add one line breaker in the end of guc_ctb_snapshot_print().
> > >
> > > but 'cmd[XXX]' lines already have additional indent compared to 'H2G|G2H
> > > CTB' headers so IMO this extra separation line seems unnecessary:
> > >
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: TLB invalidation time'd out,
> > > seqno=27, recv=26
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: H2G CTB (all sizes in DW):
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: size: 1024
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: resv_space: 0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: head: 0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: tail: 572
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: space: 451
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: broken: 0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: head (memory): 568
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: tail (memory): 572
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: status (memory): 0x0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: cmd[568]: 0x80670003
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: cmd[569]: 0x20007000
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: cmd[570]: 0x0000001b
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: cmd[571]: 0x80000003
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: G2H CTB (all sizes in DW):
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: size: 4096
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: resv_space: 1024
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: head: 210
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: tail: 0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: space: 3068
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: broken: 0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: head (memory): 210
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: tail (memory): 210
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: status (memory): 0x0
> > > [ ] xe 0000:4d:00.1: [drm] *ERROR* GT0: g2h outstanding: 1
> > >
> > > and IMO printing empty lines is just a waste of paper ;)
> >
> > This same function is called during gpu hang capture(devcoredump) and the output of that file has new lines between sections for better reading.
> > This a old sample that I had around:
> >
> >
> >
> > **** Xe Device Coredump ****
> > kernel: 6.9.0-rc6-zeh-xe+
> > module: xe
> > Snapshot time: 1715877420.647211377
> > Uptime: 70684.605982665
> > PCI ID: 0x9a49
> > PCI revision: 0x01
> > GT id: 0
> > Type: main
> > IP ver: 0.0.0
> > CS reference clock: 19200000
> >
> > **** GuC CT ****
> > H2G CTB (all sizes in DW):
> > size: 1024
> > resv_space: 0
> > head: 978
> > tail: 599
> > space: 378
> > broken: 0
> > head (memory): 599
> > tail (memory): 599
> > status (memory): 0x0
> >
>
> but G2H is still part of the CT, no need for extra split
>
> > G2H CTB (all sizes in DW):
> > size: 4096
> > resv_space: 1024
> > head: 626
> > tail: 0
> > space: 3071
> > broken: 0
> > head (memory): 626
> > tail (memory): 626
> > status (memory): 0x0
> > g2h outstanding: 0
> >
> > GuC ID: 9
>
> hmm, so it looks that we need to fix two more places:
>
> 1) in xe_guc_exec_queue_snapshot_print() we need to drop spurious \n as
> well:
>
> - drm_printf(p, "\nGuC ID: %d\n", snapshot->guc.id);
> + drm_printf(p, "GuC ID: %d\n", snapshot->guc.id);
>
>
> 2) in xe_devcoredump_read() we need to add proper decorations/separation
> lines since xe_guc_exec_queue_snapshot_print() is not part of "GuC CT"
>
> - drm_printf(&p, "\n**** GuC CT ****\n");
> + drm_printf(&p, "\n**** GuC CT ****\n\n");
> xe_guc_ct_snapshot_print(coredump->snapshot.ct, &p);
> + drm_printf(&p, "\n**** GuC submission ****\n\n");
> xe_guc_exec_queue_snapshot_print(coredump->snapshot.ge, &p);
>
> and maybe also
>
> - drm_printf(&p, "**** Xe Device Coredump ****\n");
> + drm_printf(&p, "\n**** Xe Device Coredump ****\n\n");
>
> > Name: rcs9
> > Class: 0
> > Logical mask: 0x1
> > Width: 1
> > Ref: 4
> > Timeout: 0 (ms)
> > Timeslice: 1000 (us)
> > Preempt timeout: 640000 (us)
> > HW Context Desc: 0x01480000
> > LRC Head: (memory) 280
> > LRC Tail: (internal) 552, (memory) 552
> > Start seqno: (memory) -125
> > Seqno: (memory) -126
> > [HWSP].length: 0x1000
> >
> > ....
>
> then the output will look like:
>
> **** Xe Device Coredump ****
>
> kernel: 6.9.0-rc6-zeh-xe+
> module: xe
> Snapshot time: 1715877420.647211377
> Uptime: 70684.605982665
> PCI ID: 0x9a49
> PCI revision: 0x01
> GT id: 0
> Type: main
> IP ver: 0.0.0
> CS reference clock: 19200000
>
> **** GuC CT ****
>
> H2G CTB (all sizes in DW):
> size: 1024
> resv_space: 0
> head: 978
> tail: 599
> space: 378
> broken: 0
> head (memory): 599
> tail (memory): 599
> status (memory): 0x0
> G2H CTB (all sizes in DW):
> size: 4096
> resv_space: 1024
> head: 626
> tail: 0
> space: 3071
> broken: 0
> head (memory): 626
> tail (memory): 626
> status (memory): 0x0
> g2h outstanding: 0
>
> **** GuC submission ****
>
> GuC ID: 9
> Name: rcs9
> Class: 0
> ...
>
> would that work for you?
In my opinion this looks worst.
Lets see what Rodrigo that implemented most of it thinks.
>
> >
> >
> > >
> > > >
> > > > >
> > > > > Signed-off-by: John Harrison <John.C.Harrison at Intel.com>
> > > > > Reviewed-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> > > > > Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> > > > > ---
> > > > > cherry-picked from [1]
> > > > >
> > > > > [1] https://patchwork.freedesktop.org/patch/598024/?series=134695&rev=2
> > > > > ---
> > > > > drivers/gpu/drm/xe/xe_guc_ct.c | 2 +-
> > > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
> > > > > index 873d1bcbedd7..113e6348c6ac 100644
> > > > > --- a/drivers/gpu/drm/xe/xe_guc_ct.c
> > > > > +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
> > > > > @@ -1489,7 +1489,7 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,
> > > > > drm_puts(p, "H2G CTB (all sizes in DW):\n");
> > > > > guc_ctb_snapshot_print(&snapshot->h2g, p);
> > > > >
> > > > > - drm_puts(p, "\nG2H CTB (all sizes in DW):\n");
> > > > > + drm_puts(p, "G2H CTB (all sizes in DW):\n");
> > > > > guc_ctb_snapshot_print(&snapshot->g2h, p);
> > > > >
> > > > > drm_printf(p, "\tg2h outstanding: %d\n",
> > > >
> >
More information about the Intel-xe
mailing list