Re: [PATCH v11 9/9] cpuset: Allow reporting of sched domain generation info

From: Peter Zijlstra
Date: Thu Jul 19 2018 - 09:54:46 EST


On Sun, Jun 24, 2018 at 03:30:40PM +0800, Waiman Long wrote:
> This patch enables us to report sched domain generation information.
>
> If DYNAMIC_DEBUG is enabled, issuing the following command
>
> echo "file cpuset.c +p" > /sys/kernel/debug/dynamic_debug/control
>
> and setting loglevel to 8 will allow the kernel to show what scheduling
> domain changes are being made.
>
> Signed-off-by: Waiman Long <longman@xxxxxxxxxx>
> ---
> kernel/cgroup/cpuset.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index 07a5575..62b7e61 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -836,6 +836,23 @@ static int generate_sched_domains(cpumask_var_t **domains,
> return ndoms;
> }
>
> +#ifdef CONFIG_DEBUG_KERNEL
> +static inline void debug_print_domains(cpumask_var_t *doms, int ndoms)
> +{
> + int i;
> + char buf[200];
> + char *ptr, *end = buf + sizeof(buf) - 1;
> +
> + for (i = 0, ptr = buf, *end = '\0'; i < ndoms; i++)
> + ptr += snprintf(ptr, end - ptr, "dom%d=%*pbl ", i,
> + cpumask_pr_args(doms[i]));
> +
> + pr_debug("Generated %d domains: %s\n", ndoms, buf);
> +}
> +#else
> +static inline void debug_print_domains(cpumask_var_t *doms, int ndoms) { }
> +#endif

I still hate this patch.. it prints information already available in
sched_debug and has that rediculous on-stack buffer.