2015-04-28 08:45:37

by Preeti U Murthy

[permalink] [raw]
Subject: [PATCH] tick-broadcast: Fix the printing of broadcast masks

Today the number of bits of the broadcast masks that is output into
/proc/timer_list is sizeof(unsigned long). This means that on machines
with larger number of CPUs, the bitmasks of CPUs beyond this range do
not appear.

Fix this by using bitmap printing through "%*pb" instead, so as to
output the broadcast masks for the range of nr_cpu_ids into
/proc/timer_list.

Signed-off-by: Preeti U Murthy <[email protected]>
---

kernel/time/timer_list.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index c82b03c..1afc726 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -269,11 +269,11 @@ static void timer_list_show_tickdevices_header(struct seq_file *m)
{
#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
print_tickdevice(m, tick_get_broadcast_device(), -1);
- SEQ_printf(m, "tick_broadcast_mask: %08lx\n",
- cpumask_bits(tick_get_broadcast_mask())[0]);
+ SEQ_printf(m, "tick_broadcast_mask: %*pb\n",
+ cpumask_pr_args(tick_get_broadcast_mask()));
#ifdef CONFIG_TICK_ONESHOT
- SEQ_printf(m, "tick_broadcast_oneshot_mask: %08lx\n",
- cpumask_bits(tick_get_broadcast_oneshot_mask())[0]);
+ SEQ_printf(m, "tick_broadcast_oneshot_mask: %*pb\n",
+ cpumask_pr_args(tick_get_broadcast_oneshot_mask()));
#endif
SEQ_printf(m, "\n");
#endif


2015-05-04 05:51:44

by Preeti U Murthy

[permalink] [raw]
Subject: Re: [PATCH] tick-broadcast: Fix the printing of broadcast masks

Ping.

Any comments on this patch ?

Regards
Preeti U Murthy
On 04/28/2015 02:15 PM, Preeti U Murthy wrote:
> Today the number of bits of the broadcast masks that is output into
> /proc/timer_list is sizeof(unsigned long). This means that on machines
> with larger number of CPUs, the bitmasks of CPUs beyond this range do
> not appear.
>
> Fix this by using bitmap printing through "%*pb" instead, so as to
> output the broadcast masks for the range of nr_cpu_ids into
> /proc/timer_list.
>
> Signed-off-by: Preeti U Murthy <[email protected]>
> ---
>
> kernel/time/timer_list.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
> index c82b03c..1afc726 100644
> --- a/kernel/time/timer_list.c
> +++ b/kernel/time/timer_list.c
> @@ -269,11 +269,11 @@ static void timer_list_show_tickdevices_header(struct seq_file *m)
> {
> #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
> print_tickdevice(m, tick_get_broadcast_device(), -1);
> - SEQ_printf(m, "tick_broadcast_mask: %08lx\n",
> - cpumask_bits(tick_get_broadcast_mask())[0]);
> + SEQ_printf(m, "tick_broadcast_mask: %*pb\n",
> + cpumask_pr_args(tick_get_broadcast_mask()));
> #ifdef CONFIG_TICK_ONESHOT
> - SEQ_printf(m, "tick_broadcast_oneshot_mask: %08lx\n",
> - cpumask_bits(tick_get_broadcast_oneshot_mask())[0]);
> + SEQ_printf(m, "tick_broadcast_oneshot_mask: %*pb\n",
> + cpumask_pr_args(tick_get_broadcast_oneshot_mask()));
> #endif
> SEQ_printf(m, "\n");
> #endif
>
> _______________________________________________
> Linuxppc-dev mailing list
> [email protected]
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>

Subject: [tip:timers/core] tick-broadcast: Fix the printing of broadcast masks

Commit-ID: 1ef09cd713c90781b683a0b4e0a874803c172b1d
Gitweb: http://git.kernel.org/tip/1ef09cd713c90781b683a0b4e0a874803c172b1d
Author: Preeti U Murthy <[email protected]>
AuthorDate: Tue, 28 Apr 2015 14:15:20 +0530
Committer: Thomas Gleixner <[email protected]>
CommitDate: Tue, 5 May 2015 10:35:58 +0200

tick-broadcast: Fix the printing of broadcast masks

Today the number of bits of the broadcast masks that is output into
/proc/timer_list is sizeof(unsigned long). This means that on machines
with a larger number of CPUs, the bitmasks of CPUs beyond this range do
not appear.

Fix this by using bitmap printing through "%*pb" instead, so as to
output the broadcast masks for the range of nr_cpu_ids into
/proc/timer_list.

Signed-off-by: Preeti U Murthy <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
---
kernel/time/timer_list.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index 66f39bb..18b074b 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -276,11 +276,11 @@ static void timer_list_show_tickdevices_header(struct seq_file *m)
{
#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
print_tickdevice(m, tick_get_broadcast_device(), -1);
- SEQ_printf(m, "tick_broadcast_mask: %08lx\n",
- cpumask_bits(tick_get_broadcast_mask())[0]);
+ SEQ_printf(m, "tick_broadcast_mask: %*pb\n",
+ cpumask_pr_args(tick_get_broadcast_mask()));
#ifdef CONFIG_TICK_ONESHOT
- SEQ_printf(m, "tick_broadcast_oneshot_mask: %08lx\n",
- cpumask_bits(tick_get_broadcast_oneshot_mask())[0]);
+ SEQ_printf(m, "tick_broadcast_oneshot_mask: %*pb\n",
+ cpumask_pr_args(tick_get_broadcast_oneshot_mask()));
#endif
SEQ_printf(m, "\n");
#endif

2015-05-13 23:40:38

by John Stultz

[permalink] [raw]
Subject: Re: [PATCH] tick-broadcast: Fix the printing of broadcast masks

On Sun, May 3, 2015 at 10:51 PM, Preeti U Murthy
<[email protected]> wrote:
> Ping.
>
> Any comments on this patch ?
>

Got this queued for testing, and hopefully 4.2

thanks
-john