Re: [PATCH 3/3] irqchip/gic-v3-its: Print the vPE table installed in redistributor

From: Oliver Upton
Date: Sat Feb 24 2024 - 06:11:58 EST


On Sat, Feb 24, 2024 at 10:41:36AM +0000, Marc Zyngier wrote:
> On Mon, 19 Feb 2024 18:58:08 +0000, Oliver Upton <oliver.upton@xxxxxxxxx> wrote:
> > - pr_debug("CPU%d: VPROPBASER = %llx %*pbl\n",
> > - smp_processor_id(), val,
> > - cpumask_pr_args(gic_data_rdist()->vpe_table_mask));
> > + pr_info("CPU%d: Using %s vPE table @%llx (%s)\n",
> > + smp_processor_id(),
> > + (val & GICR_VPROPBASER_4_1_INDIRECT) ? "indirect" : "direct",
> > + val & GICR_VPROPBASER_4_1_ADDR,
> > + (page) ? "allocated" :
> > + ((from_its) ? "inherited from ITS" : "inherited from RD"));
>
> From past experience, having the vpe_table_mask value displayed did
> help tracking VPE table affinity bugs.

My reasoning behind it was that the change expanded the table mask by
way of printing what's going on at every RD. But easy enough to throw
back in!

> This said, my problem with this patch is that we already have tons of
> these statement printed once per CPU/RD. This is really huge and
> accounts for a significant part of the boot time on large machines
> (64+ CPUs).
>
> Before we add more of those, I'd really want to have a way to tone
> them down and only print them at runtime *if* required by the user.
> Kind of a dymanic debug, but driven from the command-line and present
> early enough.

Yeah, what'd be really nice is a way to enable pr_debug() on a per
file / driver / whatever basis, since turning on all of it becomes a bit
of a firehose... But I guess that's what grep is for.

WDYT about leaving it at pr_debug() for now, with the additional context
of what exactly VPROPBASE is getting programmend with?

--
Thanks,
Oliver