* [PATCH] drm/i915: Skip logging impossible slices
@ 2018-03-21 10:32 Tvrtko Ursulin
2018-03-21 10:41 ` Chris Wilson
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Tvrtko Ursulin @ 2018-03-21 10:32 UTC (permalink / raw)
To: Intel-gfx
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
printing impossible and empty slices for a platform.
Also compact slice total and slice mask into one log line.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
index 4babfc6ee45b..68aa9746d0e1 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
{
int s;
- drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
- drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
+ drm_printf(p, "slice total: %u, mask=%04x\n",
+ hweight8(sseu->slice_mask), sseu->slice_mask);
drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
- for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
- drm_printf(p, "slice%d %u subslices mask=%04x\n",
+ for (s = 0; s < sseu->max_slices; s++) {
+ drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
s, hweight8(sseu->subslice_mask[s]),
sseu->subslice_mask[s]);
}
--
2.14.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 10:32 [PATCH] drm/i915: Skip logging impossible slices Tvrtko Ursulin
@ 2018-03-21 10:41 ` Chris Wilson
2018-03-21 10:56 ` Chris Wilson
2018-03-21 10:52 ` Lionel Landwerlin
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Chris Wilson @ 2018-03-21 10:41 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx
Quoting Tvrtko Ursulin (2018-03-21 10:32:28)
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
> printing impossible and empty slices for a platform.
>
> Also compact slice total and slice mask into one log line.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> ---
> drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 4babfc6ee45b..68aa9746d0e1 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
> {
> int s;
>
> - drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
> - drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
> + drm_printf(p, "slice total: %u, mask=%04x\n",
> + hweight8(sseu->slice_mask), sseu->slice_mask);
> drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
> - for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
> - drm_printf(p, "slice%d %u subslices mask=%04x\n",
> + for (s = 0; s < sseu->max_slices; s++) {
> + drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
> s, hweight8(sseu->subslice_mask[s]),
> sseu->subslice_mask[s]);
Just idly testing the waters...
In yaml, this would be
"<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
How do we feel about that in our debug output? And gradually use that
style by default? (I'm planning on converting the error state
wholesale...)
-chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 10:32 [PATCH] drm/i915: Skip logging impossible slices Tvrtko Ursulin
2018-03-21 10:41 ` Chris Wilson
@ 2018-03-21 10:52 ` Lionel Landwerlin
2018-03-21 11:21 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-03-21 12:25 ` ✗ Fi.CI.IGT: warning " Patchwork
3 siblings, 0 replies; 11+ messages in thread
From: Lionel Landwerlin @ 2018-03-21 10:52 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
On 21/03/18 10:32, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
> printing impossible and empty slices for a platform.
>
> Also compact slice total and slice mask into one log line.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> ---
> drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 4babfc6ee45b..68aa9746d0e1 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
> {
> int s;
>
> - drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
> - drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
> + drm_printf(p, "slice total: %u, mask=%04x\n",
> + hweight8(sseu->slice_mask), sseu->slice_mask);
> drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
> - for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
> - drm_printf(p, "slice%d %u subslices mask=%04x\n",
> + for (s = 0; s < sseu->max_slices; s++) {
> + drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
> s, hweight8(sseu->subslice_mask[s]),
> sseu->subslice_mask[s]);
> }
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 10:41 ` Chris Wilson
@ 2018-03-21 10:56 ` Chris Wilson
2018-03-21 11:47 ` Jani Nikula
0 siblings, 1 reply; 11+ messages in thread
From: Chris Wilson @ 2018-03-21 10:56 UTC (permalink / raw)
To: Tvrtko Ursulin, Intel-gfx
Quoting Chris Wilson (2018-03-21 10:41:37)
> Quoting Tvrtko Ursulin (2018-03-21 10:32:28)
> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >
> > Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
> > printing impossible and empty slices for a platform.
> >
> > Also compact slice total and slice mask into one log line.
> >
> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> > index 4babfc6ee45b..68aa9746d0e1 100644
> > --- a/drivers/gpu/drm/i915/intel_device_info.c
> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
> > @@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
> > {
> > int s;
> >
> > - drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
> > - drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
> > + drm_printf(p, "slice total: %u, mask=%04x\n",
> > + hweight8(sseu->slice_mask), sseu->slice_mask);
> > drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
> > - for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
> > - drm_printf(p, "slice%d %u subslices mask=%04x\n",
> > + for (s = 0; s < sseu->max_slices; s++) {
> > + drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
> > s, hweight8(sseu->subslice_mask[s]),
> > sseu->subslice_mask[s]);
>
> Just idly testing the waters...
>
> In yaml, this would be
> "<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
Or if we keep the node name the same for easier parsing:
"<indent>- slice: { id:%u, subslices:%u, mask:0x%04x }\n"
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Skip logging impossible slices
2018-03-21 10:32 [PATCH] drm/i915: Skip logging impossible slices Tvrtko Ursulin
2018-03-21 10:41 ` Chris Wilson
2018-03-21 10:52 ` Lionel Landwerlin
@ 2018-03-21 11:21 ` Patchwork
2018-03-21 12:25 ` ✗ Fi.CI.IGT: warning " Patchwork
3 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2018-03-21 11:21 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Skip logging impossible slices
URL : https://patchwork.freedesktop.org/series/40367/
State : success
== Summary ==
Series 40367v1 drm/i915: Skip logging impossible slices
https://patchwork.freedesktop.org/api/1.0/series/40367/revisions/1/mbox/
---- Known issues:
Test gem_mmap_gtt:
Subgroup basic-small-bo-tiledx:
pass -> FAIL (fi-gdg-551) fdo#102575
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-a:
incomplete -> PASS (fi-cfl-s2) fdo#105641
Test prime_vgem:
Subgroup basic-fence-flip:
pass -> FAIL (fi-ilk-650) fdo#104008
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fdo#105641 https://bugs.freedesktop.org/show_bug.cgi?id=105641
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fi-bdw-5557u total:285 pass:264 dwarn:0 dfail:0 fail:0 skip:21 time:433s
fi-bdw-gvtdvm total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:443s
fi-blb-e6850 total:285 pass:220 dwarn:1 dfail:0 fail:0 skip:64 time:379s
fi-bsw-n3050 total:285 pass:239 dwarn:0 dfail:0 fail:0 skip:46 time:541s
fi-bwr-2160 total:285 pass:180 dwarn:0 dfail:0 fail:0 skip:105 time:298s
fi-bxt-dsi total:285 pass:255 dwarn:0 dfail:0 fail:0 skip:30 time:510s
fi-bxt-j4205 total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:509s
fi-byt-j1900 total:285 pass:250 dwarn:0 dfail:0 fail:0 skip:35 time:514s
fi-byt-n2820 total:285 pass:246 dwarn:0 dfail:0 fail:0 skip:39 time:508s
fi-cfl-8700k total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:409s
fi-cfl-s2 total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:580s
fi-cfl-u total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:511s
fi-cnl-drrs total:285 pass:254 dwarn:3 dfail:0 fail:0 skip:28 time:523s
fi-elk-e7500 total:285 pass:225 dwarn:1 dfail:0 fail:0 skip:59 time:413s
fi-gdg-551 total:285 pass:176 dwarn:0 dfail:0 fail:1 skip:108 time:314s
fi-glk-1 total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:537s
fi-hsw-4770 total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:402s
fi-ilk-650 total:285 pass:224 dwarn:0 dfail:0 fail:1 skip:60 time:419s
fi-ivb-3520m total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:469s
fi-ivb-3770 total:285 pass:252 dwarn:0 dfail:0 fail:0 skip:33 time:432s
fi-kbl-7500u total:285 pass:260 dwarn:1 dfail:0 fail:0 skip:24 time:475s
fi-kbl-7567u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:468s
fi-kbl-r total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:514s
fi-pnv-d510 total:285 pass:219 dwarn:1 dfail:0 fail:0 skip:65 time:652s
fi-skl-6260u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:441s
fi-skl-6600u total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:529s
fi-skl-6700k2 total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:506s
fi-skl-6770hq total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:506s
fi-skl-guc total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:429s
fi-skl-gvtdvm total:285 pass:262 dwarn:0 dfail:0 fail:0 skip:23 time:446s
fi-snb-2520m total:285 pass:245 dwarn:0 dfail:0 fail:0 skip:40 time:586s
fi-snb-2600 total:285 pass:245 dwarn:0 dfail:0 fail:0 skip:40 time:399s
9d737cebc219c821989021a3115424165ff7b052 drm-tip: 2018y-03m-20d-14h-56m-05s UTC integration manifest
1787d01b7782 drm/i915: Skip logging impossible slices
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8429/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 10:56 ` Chris Wilson
@ 2018-03-21 11:47 ` Jani Nikula
2018-03-21 11:54 ` Chris Wilson
0 siblings, 1 reply; 11+ messages in thread
From: Jani Nikula @ 2018-03-21 11:47 UTC (permalink / raw)
To: Chris Wilson, Tvrtko Ursulin, Intel-gfx
On Wed, 21 Mar 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> Quoting Chris Wilson (2018-03-21 10:41:37)
>> Quoting Tvrtko Ursulin (2018-03-21 10:32:28)
>> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> >
>> > Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
>> > printing impossible and empty slices for a platform.
>> >
>> > Also compact slice total and slice mask into one log line.
>> >
>> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
>> > ---
>> > drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
>> > 1 file changed, 4 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
>> > index 4babfc6ee45b..68aa9746d0e1 100644
>> > --- a/drivers/gpu/drm/i915/intel_device_info.c
>> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
>> > @@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
>> > {
>> > int s;
>> >
>> > - drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
>> > - drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
>> > + drm_printf(p, "slice total: %u, mask=%04x\n",
>> > + hweight8(sseu->slice_mask), sseu->slice_mask);
>> > drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
>> > - for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
>> > - drm_printf(p, "slice%d %u subslices mask=%04x\n",
>> > + for (s = 0; s < sseu->max_slices; s++) {
>> > + drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
>> > s, hweight8(sseu->subslice_mask[s]),
>> > sseu->subslice_mask[s]);
>>
>> Just idly testing the waters...
>>
>> In yaml, this would be
>> "<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
>
> Or if we keep the node name the same for easier parsing:
>
> "<indent>- slice: { id:%u, subslices:%u, mask:0x%04x }\n"
I'm not against doing this, especially for gpu dumps.
Wouldn't json be easier to generate and parse? Or do you prefer the
slightly better human readability of yaml?
I think it would be pretty straighforward to write drm printer helpers
for printing valid json without having to actually manually print the
colons and braces etc. And the struct drm_printer could even have checks
for ensuring you don't burp verbatim stuff to a printer that's supposed
to be json.
Any considerations for the transition? Massive wholesale patch bomb
conversion? Yikes.
BR,
Jani.
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 11:47 ` Jani Nikula
@ 2018-03-21 11:54 ` Chris Wilson
2018-03-21 12:16 ` Jani Nikula
0 siblings, 1 reply; 11+ messages in thread
From: Chris Wilson @ 2018-03-21 11:54 UTC (permalink / raw)
To: Jani Nikula, Tvrtko Ursulin, Intel-gfx
Quoting Jani Nikula (2018-03-21 11:47:06)
>
> On Wed, 21 Mar 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > Quoting Chris Wilson (2018-03-21 10:41:37)
> >> Quoting Tvrtko Ursulin (2018-03-21 10:32:28)
> >> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >> >
> >> > Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
> >> > printing impossible and empty slices for a platform.
> >> >
> >> > Also compact slice total and slice mask into one log line.
> >> >
> >> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> >> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
> >> > ---
> >> > drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
> >> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> >> > index 4babfc6ee45b..68aa9746d0e1 100644
> >> > --- a/drivers/gpu/drm/i915/intel_device_info.c
> >> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
> >> > @@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
> >> > {
> >> > int s;
> >> >
> >> > - drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
> >> > - drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
> >> > + drm_printf(p, "slice total: %u, mask=%04x\n",
> >> > + hweight8(sseu->slice_mask), sseu->slice_mask);
> >> > drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
> >> > - for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
> >> > - drm_printf(p, "slice%d %u subslices mask=%04x\n",
> >> > + for (s = 0; s < sseu->max_slices; s++) {
> >> > + drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
> >> > s, hweight8(sseu->subslice_mask[s]),
> >> > sseu->subslice_mask[s]);
> >>
> >> Just idly testing the waters...
> >>
> >> In yaml, this would be
> >> "<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
> >
> > Or if we keep the node name the same for easier parsing:
> >
> > "<indent>- slice: { id:%u, subslices:%u, mask:0x%04x }\n"
>
> I'm not against doing this, especially for gpu dumps.
>
> Wouldn't json be easier to generate and parse? Or do you prefer the
> slightly better human readability of yaml?
I think for any of the debug output preferring to keep it as readable as
possible is essential. libyaml isn't that hard to use, even for a
beginner like myself.
> I think it would be pretty straighforward to write drm printer helpers
> for printing valid json without having to actually manually print the
> colons and braces etc. And the struct drm_printer could even have checks
> for ensuring you don't burp verbatim stuff to a printer that's supposed
> to be json.
About the biggest challenge is tracking indent; which drm_printer
already does iirc. Still, I think we want to move this into lib/
> Any considerations for the transition? Massive wholesale patch bomb
> conversion? Yikes.
I think it's only worth converting bits and pieces that we are trying to
parse. So quite a few debugfs are candidates, and the error-state being
a prime example as we want to make it more amenable and flexible for
future post-mortem capture depending on what userspace needs. (I might
even go as far as all future debugfs should come with a parser for igt.)
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 11:54 ` Chris Wilson
@ 2018-03-21 12:16 ` Jani Nikula
2018-03-23 12:29 ` Joonas Lahtinen
0 siblings, 1 reply; 11+ messages in thread
From: Jani Nikula @ 2018-03-21 12:16 UTC (permalink / raw)
To: Chris Wilson, Tvrtko Ursulin, Intel-gfx
On Wed, 21 Mar 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> Quoting Jani Nikula (2018-03-21 11:47:06)
>>
>> On Wed, 21 Mar 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
>> > Quoting Chris Wilson (2018-03-21 10:41:37)
>> >> Quoting Tvrtko Ursulin (2018-03-21 10:32:28)
>> >> > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> >> >
>> >> > Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
>> >> > printing impossible and empty slices for a platform.
>> >> >
>> >> > Also compact slice total and slice mask into one log line.
>> >> >
>> >> > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> >> > Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
>> >> > ---
>> >> > drivers/gpu/drm/i915/intel_device_info.c | 8 ++++----
>> >> > 1 file changed, 4 insertions(+), 4 deletions(-)
>> >> >
>> >> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
>> >> > index 4babfc6ee45b..68aa9746d0e1 100644
>> >> > --- a/drivers/gpu/drm/i915/intel_device_info.c
>> >> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
>> >> > @@ -83,11 +83,11 @@ static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
>> >> > {
>> >> > int s;
>> >> >
>> >> > - drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
>> >> > - drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
>> >> > + drm_printf(p, "slice total: %u, mask=%04x\n",
>> >> > + hweight8(sseu->slice_mask), sseu->slice_mask);
>> >> > drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
>> >> > - for (s = 0; s < ARRAY_SIZE(sseu->subslice_mask); s++) {
>> >> > - drm_printf(p, "slice%d %u subslices mask=%04x\n",
>> >> > + for (s = 0; s < sseu->max_slices; s++) {
>> >> > + drm_printf(p, "slice%d: %u subslices, mask=%04x\n",
>> >> > s, hweight8(sseu->subslice_mask[s]),
>> >> > sseu->subslice_mask[s]);
>> >>
>> >> Just idly testing the waters...
>> >>
>> >> In yaml, this would be
>> >> "<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
>> >
>> > Or if we keep the node name the same for easier parsing:
>> >
>> > "<indent>- slice: { id:%u, subslices:%u, mask:0x%04x }\n"
>>
>> I'm not against doing this, especially for gpu dumps.
>>
>> Wouldn't json be easier to generate and parse? Or do you prefer the
>> slightly better human readability of yaml?
>
> I think for any of the debug output preferring to keep it as readable as
> possible is essential. libyaml isn't that hard to use, even for a
> beginner like myself.
Fair enough; I'm only familiar with json, and that's my natural reason
to lean towards it.
>> I think it would be pretty straighforward to write drm printer helpers
>> for printing valid json without having to actually manually print the
>> colons and braces etc. And the struct drm_printer could even have checks
>> for ensuring you don't burp verbatim stuff to a printer that's supposed
>> to be json.
>
> About the biggest challenge is tracking indent; which drm_printer
> already does iirc. Still, I think we want to move this into lib/
I agree having this in lib is preferrable. But apparently that requires
moving the whole abstracted drm_printer style printing there first, and
then hoping to get yaml/json added on top. There's bound to be some
friction there.
>> Any considerations for the transition? Massive wholesale patch bomb
>> conversion? Yikes.
>
> I think it's only worth converting bits and pieces that we are trying to
> parse. So quite a few debugfs are candidates, and the error-state being
> a prime example as we want to make it more amenable and flexible for
> future post-mortem capture depending on what userspace needs. (I might
> even go as far as all future debugfs should come with a parser for igt.)
Oh, I did mean mass conversion on a per-debugfs-file basis, i.e. error
state in one go. But I guess there's no way around that, anything else
is just pain spread over a longer period.
I'd definitely go as far as saying any debugfs file that's supposed to
be in a serialized format should have a corresponding parser in igt, and
written *before* merging the kernel change.
There's also some discipline required wrt backward/forward compatibility
to actually reap the benefits of the format. Can't just change the
contents nilly willy with that either. It's not a magic bullet.
BR,
Jani.
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✗ Fi.CI.IGT: warning for drm/i915: Skip logging impossible slices
2018-03-21 10:32 [PATCH] drm/i915: Skip logging impossible slices Tvrtko Ursulin
` (2 preceding siblings ...)
2018-03-21 11:21 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-03-21 12:25 ` Patchwork
3 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2018-03-21 12:25 UTC (permalink / raw)
To: Tvrtko Ursulin; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Skip logging impossible slices
URL : https://patchwork.freedesktop.org/series/40367/
State : warning
== Summary ==
---- Possible new issues:
Test kms_setmode:
Subgroup clone-exclusive-crtc:
pass -> DMESG-WARN (shard-hsw)
---- Known issues:
Test kms_vblank:
Subgroup pipe-b-ts-continuation-dpms-suspend:
incomplete -> PASS (shard-hsw) fdo#105054
fdo#105054 https://bugs.freedesktop.org/show_bug.cgi?id=105054
shard-apl total:3478 pass:1815 dwarn:1 dfail:0 fail:6 skip:1655 time:13139s
shard-hsw total:3478 pass:1767 dwarn:2 dfail:0 fail:1 skip:1707 time:11858s
shard-snb total:3478 pass:1358 dwarn:1 dfail:0 fail:2 skip:2117 time:7304s
Blacklisted hosts:
shard-kbl total:3478 pass:1939 dwarn:1 dfail:0 fail:10 skip:1528 time:9952s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8429/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-21 12:16 ` Jani Nikula
@ 2018-03-23 12:29 ` Joonas Lahtinen
2018-03-23 12:38 ` Chris Wilson
0 siblings, 1 reply; 11+ messages in thread
From: Joonas Lahtinen @ 2018-03-23 12:29 UTC (permalink / raw)
To: Chris Wilson, Intel-gfx, Jani Nikula, Tvrtko Ursulin
Quoting Jani Nikula (2018-03-21 14:16:37)
> On Wed, 21 Mar 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > Quoting Jani Nikula (2018-03-21 11:47:06)
> >>
> >> > Quoting Chris Wilson (2018-03-21 10:41:37)
> >> >>
> >> >> Just idly testing the waters...
> >> >>
> >> >> In yaml, this would be
> >> >> "<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
> >> >
> >> > Or if we keep the node name the same for easier parsing:
> >> >
> >> > "<indent>- slice: { id:%u, subslices:%u, mask:0x%04x }\n"
> >>
> >> I'm not against doing this, especially for gpu dumps.
> >>
> >> Wouldn't json be easier to generate and parse? Or do you prefer the
> >> slightly better human readability of yaml?
> >
> > I think for any of the debug output preferring to keep it as readable as
> > possible is essential. libyaml isn't that hard to use, even for a
> > beginner like myself.
>
> Fair enough; I'm only familiar with json, and that's my natural reason
> to lean towards it.
JSON gets irritating to look at by plain eye. So I would agree that YAML
would serve better when developers are likely to scroll through the file
contents manually, too.
Then some more random thoughts:
This discussion will of course bring closer the can of forms that when
we've formalized the debugfs format, does somebody expect it to stay
more stable than not?
Having a counterpart in IGT and making that always match kernel, would
be the obvious way to keep things sane.
Regards, Joonas
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] drm/i915: Skip logging impossible slices
2018-03-23 12:29 ` Joonas Lahtinen
@ 2018-03-23 12:38 ` Chris Wilson
0 siblings, 0 replies; 11+ messages in thread
From: Chris Wilson @ 2018-03-23 12:38 UTC (permalink / raw)
To: Joonas Lahtinen, Intel-gfx, Jani Nikula, Tvrtko Ursulin
Quoting Joonas Lahtinen (2018-03-23 12:29:54)
> Quoting Jani Nikula (2018-03-21 14:16:37)
> > On Wed, 21 Mar 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > > Quoting Jani Nikula (2018-03-21 11:47:06)
> > >>
> > >> > Quoting Chris Wilson (2018-03-21 10:41:37)
> > >> >>
> > >> >> Just idly testing the waters...
> > >> >>
> > >> >> In yaml, this would be
> > >> >> "<indent>- slice%d: { subslices: %u, mask: 0x%04x }\n"
> > >> >
> > >> > Or if we keep the node name the same for easier parsing:
> > >> >
> > >> > "<indent>- slice: { id:%u, subslices:%u, mask:0x%04x }\n"
> > >>
> > >> I'm not against doing this, especially for gpu dumps.
> > >>
> > >> Wouldn't json be easier to generate and parse? Or do you prefer the
> > >> slightly better human readability of yaml?
> > >
> > > I think for any of the debug output preferring to keep it as readable as
> > > possible is essential. libyaml isn't that hard to use, even for a
> > > beginner like myself.
> >
> > Fair enough; I'm only familiar with json, and that's my natural reason
> > to lean towards it.
>
> JSON gets irritating to look at by plain eye. So I would agree that YAML
> would serve better when developers are likely to scroll through the file
> contents manually, too.
>
> Then some more random thoughts:
>
> This discussion will of course bring closer the can of forms that when
> we've formalized the debugfs format, does somebody expect it to stay
> more stable than not?
The starting point is that we do want to transition to an
easier-to-extend file format for sysfs (the idea of it being
single-valued is long gone :) There having a stable interface is without
question, so getting the transition right is the challenge and then
maintaining the hierarchy such that it is backwards and forward
compatible with new content.
> Having a counterpart in IGT and making that always match kernel, would
> be the obvious way to keep things sane.
Imo, if we aren't parsing debugfs in igt, then they can be dead code
eliminated. So I expect yamlification to snow ball once we've got the
first few done and a good feel for how to design kernel/igt API to suite
us. Then it's just a matter of throwing each debugfs through a yamllint
:)
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-03-23 12:38 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-21 10:32 [PATCH] drm/i915: Skip logging impossible slices Tvrtko Ursulin
2018-03-21 10:41 ` Chris Wilson
2018-03-21 10:56 ` Chris Wilson
2018-03-21 11:47 ` Jani Nikula
2018-03-21 11:54 ` Chris Wilson
2018-03-21 12:16 ` Jani Nikula
2018-03-23 12:29 ` Joonas Lahtinen
2018-03-23 12:38 ` Chris Wilson
2018-03-21 10:52 ` Lionel Landwerlin
2018-03-21 11:21 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-03-21 12:25 ` ✗ Fi.CI.IGT: warning " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.