Re: [RESEND PATCH] sched/debug: Put sched/domains files under the verbose flag

From: Phil Auld
Date: Fri Jan 20 2023 - 11:07:27 EST


On Fri, Jan 20, 2023 at 03:52:55PM +0000 Valentin Schneider wrote:
> On 19/01/23 10:07, Phil Auld wrote:
> > The debug files under sched/domains can take a long time to regenerate,
> > especially when updates are done one at a time. Move these files under
> > the sched verbose debug flag. Allow changes to verbose to trigger
> > generation of the files. This lets a user batch the updates but still
> > have the information available. The detailed topology printk messages
> > are also under verbose.
> >
> > Discussion that lead to this approach can be found in the link below.
> >
> > Simplified code to maintain use of debugfs bool routines suggested by
> > Michael Ellerman <mpe@xxxxxxxxxxxxxx>.
> >
> > Signed-off-by: Phil Auld <pauld@xxxxxxxxxx>
> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> > Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > Cc: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
> > Cc: Valentin Schneider <vschneid@xxxxxxxxxx>
> > Cc: Vishal Chourasia <vishalc@xxxxxxxxxxxxxxxxxx>
> > Cc: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
> > Link: https://lore.kernel.org/all/Y01UWQL2y2r69sBX@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
>
> Small nits below, other than that:
>
> Reviewed-by: Valentin Schneider <vschneid@xxxxxxxxxx>
>
> > @@ -402,15 +440,23 @@ void update_sched_domain_debugfs(void)
> > if (!debugfs_sched)
> > return;
> >
> > + if (!sched_debug_verbose)
> > + return;
> > +
> > if (!cpumask_available(sd_sysctl_cpus)) {
> > if (!alloc_cpumask_var(&sd_sysctl_cpus, GFP_KERNEL))
> > return;
> > cpumask_copy(sd_sysctl_cpus, cpu_possible_mask);
> > }
> >
> > - if (!sd_dentry)
> > + if (!sd_dentry) {
> > sd_dentry = debugfs_create_dir("domains", debugfs_sched);
> >
> > + /* rebuild sd_sysclt_cpus if empty since it gets cleared below */
> ^^^^^^^^^^^^^^
> Nit: sd_sysctl_cpus
>
> > + if (cpumask_first(sd_sysctl_cpus) >= nr_cpu_ids)
>
> Use cpumask_empty() instead?

Heh, I didn't find that when I looked somehow :) Yes, that's what this check
is doing. I'll fix these in a quick v2.


Thanks!


Cheers,
Phil



>
> > + cpumask_copy(sd_sysctl_cpus, cpu_online_mask);
> > + }
> > +
> > for_each_cpu(cpu, sd_sysctl_cpus) {
> > struct sched_domain *sd;
> > struct dentry *d_cpu;
> > --
> > 2.31.1
>

--