From: Mike Travis <travis@sgi.com>
To: David Rientjes <rientjes@google.com>
Cc: Ingo Molnar <mingo@elte.hu>, Andi Kleen <andi@firstfloor.org>,
Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@linux-foundation.org>,
Jack Steiner <steiner@sgi.com>, "H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, Yinghai Lu <yinghai@kernel.org>,
Mel Gorman <mel@csn.ul.ie>,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [patch] x86: reduce srat verbosity in the kernel log
Date: Tue, 27 Oct 2009 13:42:32 -0700 [thread overview]
Message-ID: <4AE75B38.8070301@sgi.com> (raw)
In-Reply-To: <alpine.DEB.2.00.0910271323410.32543@chino.kir.corp.google.com>
I applied your previous patch with the change to use static and
here's the console output from a live system:
[ 0.000000] SRAT: PXM 0 -> APIC {0-7,16-23} -> Node 0
[ 0.000000] SRAT: PXM 1 -> APIC {32-39,48-55} -> Node 1
[ 0.000000] SRAT: PXM 2 -> APIC {64-71,80-87} -> Node 2
[ 0.000000] SRAT: PXM 3 -> APIC {96-103,112-119} -> Node 3
[ 0.000000] SRAT: PXM 4 -> APIC {128-135,144-151} -> Node 4
[ 0.000000] SRAT: PXM 5 -> APIC {160-167,176-183} -> Node 5
[ 0.000000] SRAT: PXM 6 -> APIC {192-199,208-215} -> Node 6
[ 0.000000] SRAT: PXM 7 -> APIC {224-231,240-247} -> Node 7
[ 0.000000] SRAT: PXM 8 -> APIC {256-263,272-279} -> Node 8
[ 0.000000] SRAT: PXM 9 -> APIC {288-295,304-311} -> Node 9
[ 0.000000] SRAT: PXM 10 -> APIC {320-327,336-343} -> Node 10
[ 0.000000] SRAT: PXM 11 -> APIC {352-359,368-375} -> Node 11
[ 0.000000] SRAT: PXM 12 -> APIC {384-391,400-407} -> Node 12
[ 0.000000] SRAT: PXM 13 -> APIC {416-423,432-439} -> Node 13
[ 0.000000] SRAT: PXM 14 -> APIC {448-455,464-471} -> Node 14
[ 0.000000] SRAT: PXM 15 -> APIC {480-487,496-503} -> Node 15
[ 0.000000] SRAT: PXM 16 -> APIC {512-519,528-535} -> Node 16
[ 0.000000] SRAT: PXM 17 -> APIC {544-551,560-567} -> Node 17
[ 0.000000] SRAT: PXM 18 -> APIC {576-583,592-599} -> Node 18
[ 0.000000] SRAT: PXM 19 -> APIC {608-615,624-631} -> Node 19
[ 0.000000] SRAT: PXM 20 -> APIC {640-647,656-663} -> Node 20
[ 0.000000] SRAT: PXM 21 -> APIC {672-679,688-695} -> Node 21
[ 0.000000] SRAT: PXM 22 -> APIC {704-711,720-727} -> Node 22
[ 0.000000] SRAT: PXM 23 -> APIC {736-743,752-759} -> Node 23
David Rientjes wrote:
> On Tue, 27 Oct 2009, Mike Travis wrote:
>
>> Hi David,
>>
>> Very Cool, I'll try it out and let you know how it goes.
>>
>> Note that it would be better to declare the BITMAP in the
>> static initdata section so it doesn't grow the stack by 4k
>> bytes. (And it's thrown away after the kernel starts.)
>>
>
> Right, here's an updated version. I was thinking of MAX_PXM_DOMAINS being
> 256 instead of MAX_LOCAL_APIC :)
>
> Here's an updated version. apicid_map and apicid_list don't need to be
> synchronized because there're no concurrency issues here on init.
>
>
>
> x86: reduce srat verbosity in the kernel log
>
> It's possible to reduce the number of SRAT messages emitted to the kernel
> log by printing each valid pxm once and then creating bitmaps to represent
> the apicids that map to the same node.
>
> This reduces lines such as
>
> SRAT: PXM 0 -> APIC 0 -> Node 0
> SRAT: PXM 0 -> APIC 1 -> Node 0
> SRAT: PXM 1 -> APIC 2 -> Node 1
> SRAT: PXM 1 -> APIC 3 -> Node 1
>
> to
>
> SRAT: PXM 0 -> APIC {0-1} -> Node 0
> SRAT: PXM 1 -> APIC {2-3} -> Node 1
>
> Signed-off-by: David Rientjes <rientjes@google.com>
> ---
> arch/x86/mm/srat_64.c | 32 ++++++++++++++++++++++++++++----
> drivers/acpi/numa.c | 5 +++++
> include/linux/acpi.h | 3 ++-
> 3 files changed, 35 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
> --- a/arch/x86/mm/srat_64.c
> +++ b/arch/x86/mm/srat_64.c
> @@ -36,6 +36,9 @@ static int num_node_memblks __initdata;
> static struct bootnode node_memblk_range[NR_NODE_MEMBLKS] __initdata;
> static int memblk_nodeid[NR_NODE_MEMBLKS] __initdata;
>
> +static DECLARE_BITMAP(apicid_map, MAX_LOCAL_APIC) __initdata;
> +static char apicid_list[MAX_LOCAL_APIC] __initdata;
> +
> static __init int setup_node(int pxm)
> {
> return acpi_map_pxm_to_node(pxm);
> @@ -136,8 +139,6 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
> apicid_to_node[apic_id] = node;
> node_set(node, cpu_nodes_parsed);
> acpi_numa = 1;
> - printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n",
> - pxm, apic_id, node);
> }
>
> /* Callback for Proximity Domain -> LAPIC mapping */
> @@ -170,8 +171,31 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
> apicid_to_node[apic_id] = node;
> node_set(node, cpu_nodes_parsed);
> acpi_numa = 1;
> - printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n",
> - pxm, apic_id, node);
> +}
> +
> +void __init acpi_numa_print_srat_mapping(void)
> +{
> + int i, j;
> +
> + for (i = 0; i < MAX_PXM_DOMAINS; i++) {
> + int nid;
> +
> + nid = pxm_to_node(i);
> + if (nid == NUMA_NO_NODE)
> + continue;
> +
> + bitmap_zero(apicid_map, MAX_LOCAL_APIC);
> + for (j = 0; j < MAX_LOCAL_APIC; j++)
> + if (apicid_to_node[j] == nid)
> + set_bit(j, apicid_map);
> +
> + if (bitmap_empty(apicid_map, MAX_LOCAL_APIC))
> + continue;
> + bitmap_scnlistprintf(apicid_list, MAX_LOCAL_APIC,
> + apicid_map, MAX_LOCAL_APIC);
> + pr_info("SRAT: PXM %u -> APIC {%s} -> Node %u\n",
> + i, apicid_list, nid);
> + }
> }
>
> #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
> diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
> --- a/drivers/acpi/numa.c
> +++ b/drivers/acpi/numa.c
> @@ -281,6 +281,10 @@ acpi_table_parse_srat(enum acpi_srat_type id,
> handler, max_entries);
> }
>
> +void __init __attribute__((weak)) acpi_numa_print_srat_mapping(void)
> +{
> +}
> +
> int __init acpi_numa_init(void)
> {
> /* SRAT: Static Resource Affinity Table */
> @@ -292,6 +296,7 @@ int __init acpi_numa_init(void)
> acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY,
> acpi_parse_memory_affinity,
> NR_NODE_MEMBLKS);
> + acpi_numa_print_srat_mapping();
> }
>
> /* SLIT: System Locality Information Table */
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -92,12 +92,13 @@ int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler hand
> int acpi_parse_mcfg (struct acpi_table_header *header);
> void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
>
> -/* the following four functions are architecture-dependent */
> +/* the following six functions are architecture-dependent */
> void acpi_numa_slit_init (struct acpi_table_slit *slit);
> void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
> void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa);
> void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
> void acpi_numa_arch_fixup(void);
> +void acpi_numa_print_srat_mapping(void);
>
> #ifdef CONFIG_ACPI_HOTPLUG_CPU
> /* Arch dependent functions for cpu hotplug support */
next prev parent reply other threads:[~2009-10-27 20:42 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20091023233743.439628000@alcatraz.americas.sgi.com>
2009-10-23 23:37 ` [PATCH 1/8] SGI x86_64 UV: Add limit console output function Mike Travis
2009-10-24 1:09 ` Frederic Weisbecker
2009-10-26 17:55 ` Mike Travis
2009-11-02 14:15 ` Frederic Weisbecker
2009-10-26 7:02 ` Andi Kleen
2009-10-26 16:10 ` Steven Rostedt
2009-10-26 18:05 ` Mike Travis
2009-10-26 18:51 ` Steven Rostedt
2009-10-26 18:03 ` Mike Travis
2009-10-26 21:55 ` Andi Kleen
2009-10-26 22:07 ` Mike Travis
2009-10-30 19:25 ` [PATCH] x86_64: Limit the number of processor bootup messages Mike Travis
2009-10-30 19:54 ` David Rientjes
2009-10-30 20:39 ` Mike Travis
2009-10-30 23:30 ` David Rientjes
2009-10-31 0:27 ` Mike Travis
2009-11-02 11:11 ` Andi Kleen
2009-11-02 19:21 ` Mike Travis
2009-11-02 19:34 ` Ingo Molnar
2009-11-02 20:32 ` Mike Travis
2009-11-04 0:22 ` Mike Travis
2009-11-04 10:24 ` Ingo Molnar
2009-11-04 10:31 ` Ingo Molnar
2009-11-12 22:22 ` Dave Jones
2009-11-12 22:57 ` H. Peter Anvin
2009-11-12 23:15 ` Dave Jones
2009-11-13 8:03 ` Ingo Molnar
2009-11-13 8:11 ` H. Peter Anvin
2009-11-13 8:18 ` [tip:x86/debug] x86: Remove the CPU cache size printk's tip-bot for Dave Jones
2009-11-13 22:38 ` [PATCH] x86: Remove CPU cache size output for non-Intel too Roland Dreier
2009-11-13 22:52 ` Dave Jones
2009-11-14 0:54 ` [tip:x86/debug] " tip-bot for Roland Dreier
2009-11-13 16:10 ` [PATCH] x86_64: Limit the number of processor bootup messages Mike Travis
2009-11-14 0:53 ` Ingo Molnar
2009-10-23 23:37 ` [PATCH 2/8] SGI x86_64 UV: " Mike Travis
2009-10-26 7:26 ` Andi Kleen
2009-10-23 23:37 ` [PATCH 3/8] SGI x86_64 UV: Limit the number of number of SRAT messages Mike Travis
2009-10-26 7:04 ` Andi Kleen
2009-10-26 18:08 ` Mike Travis
2009-10-27 15:24 ` Mike Travis
2009-10-27 19:45 ` David Rientjes
2009-10-27 20:00 ` Mike Travis
2009-10-27 20:25 ` [patch] x86: reduce srat verbosity in the kernel log David Rientjes
2009-10-27 20:42 ` Mike Travis [this message]
2009-10-27 20:48 ` David Rientjes
2009-10-27 23:02 ` Mike Travis
2009-10-28 3:29 ` Andi Kleen
2009-10-28 4:08 ` David Rientjes
2009-10-28 3:53 ` Yinghai Lu
2009-10-28 4:08 ` David Rientjes
2009-10-27 20:55 ` Cyrill Gorcunov
2009-10-27 21:06 ` David Rientjes
2009-10-27 21:10 ` Cyrill Gorcunov
2009-10-28 3:32 ` Andi Kleen
2009-10-28 4:08 ` David Rientjes
2009-10-28 4:11 ` Andi Kleen
2009-10-28 4:53 ` [patch v2] " David Rientjes
2009-10-28 5:19 ` Andi Kleen
2009-10-28 5:24 ` David Rientjes
2009-11-10 21:08 ` David Rientjes
2009-11-10 21:33 ` Ingo Molnar
2009-11-10 21:42 ` Yinghai Lu
2009-11-10 21:57 ` Ingo Molnar
2009-11-10 23:09 ` Mike Travis
2009-11-12 20:56 ` David Rientjes
2009-11-12 21:14 ` Mike Travis
2009-11-12 21:20 ` David Rientjes
2009-10-28 17:02 ` [patch] " Mike Travis
2009-10-28 20:52 ` David Rientjes
2009-10-28 21:03 ` Mike Travis
2009-10-28 21:06 ` David Rientjes
2009-10-28 21:35 ` Mike Travis
2009-10-28 21:46 ` David Rientjes
2009-10-28 22:36 ` Mike Travis
2009-10-29 8:21 ` David Rientjes
2009-10-29 16:34 ` Mike Travis
2009-10-29 19:06 ` David Rientjes
2009-10-27 20:16 ` [PATCH 3/8] SGI x86_64 UV: Limit the number of number of SRAT messages Cyrill Gorcunov
2009-10-27 20:23 ` Mike Travis
2009-10-27 20:33 ` Cyrill Gorcunov
2009-10-23 23:37 ` [PATCH 4/8] SGI x86_64 UV: Limit the number of ACPI messages Mike Travis
2009-10-24 3:29 ` Bjorn Helgaas
2009-10-26 18:15 ` Mike Travis
2009-10-26 22:47 ` Thomas Renninger
2009-10-26 21:25 ` Mike Travis
2009-10-27 15:27 ` Mike Travis
2009-10-27 15:51 ` Bjorn Helgaas
2009-10-23 23:37 ` [PATCH 5/8] SGI x86_64 UV: Limit the number of firmware messages Mike Travis
2009-10-23 23:37 ` [PATCH 6/8] SGI x86_64 UV: Limit the number of microcode messages Mike Travis
2009-10-24 20:09 ` Dmitry Adamushko
2009-10-24 21:09 ` Tigran Aivazian
2009-10-24 22:45 ` Dmitry Adamushko
2009-10-25 16:37 ` Ingo Molnar
2009-10-25 17:11 ` Arjan van de Ven
2009-10-25 17:27 ` Ingo Molnar
2009-10-26 18:33 ` Mike Travis
2009-10-26 18:29 ` Mike Travis
2009-10-26 18:29 ` Mike Travis
2009-10-26 20:11 ` Dmitry Adamushko
2009-10-27 15:21 ` Mike Travis
2009-10-26 18:25 ` Mike Travis
2009-10-26 19:27 ` Borislav Petkov
2009-10-30 19:40 ` [PATCH] x86_64: " Mike Travis
2009-10-26 18:24 ` [PATCH 6/8] SGI x86_64 UV: " Mike Travis
2009-10-26 18:18 ` Mike Travis
2009-10-26 7:05 ` Andi Kleen
2009-10-26 18:34 ` Mike Travis
2009-10-23 23:37 ` [PATCH 7/8] SGI x86_64 UV: Limit the number of scheduler debug messages Mike Travis
2009-10-23 23:37 ` [PATCH 8/8] SGI x86_64 UV: Limit the number of cpu is down messages Mike Travis
2009-11-12 17:19 [PATCH 0/7] Limit console output by suppressing repetitious messages Mike Travis
2009-11-12 20:48 ` [patch] x86: reduce srat verbosity in the kernel log David Rientjes
2009-11-13 9:53 ` Ingo Molnar
2009-11-13 10:02 ` David Rientjes
2009-11-13 10:13 ` Ingo Molnar
2009-11-13 10:29 ` David Rientjes
2009-11-13 10:57 ` Ingo Molnar
2009-11-20 18:37 ` Pavel Machek
2009-11-20 18:58 ` Mike Travis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AE75B38.8070301@sgi.com \
--to=travis@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hpa@zytor.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mel@csn.ul.ie \
--cc=mingo@elte.hu \
--cc=rientjes@google.com \
--cc=steiner@sgi.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome