mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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 */

  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