[1/4] [RFC] ppc64 discontig pull out numa_memory_lookup init
Joel Schopp
jschopp at austin.ibm.com
Fri May 20 02:55:13 EST 2005
> It seems we have two complete copies of the code which initialises
> the numa_memory_lookup_table. Pull this out to a common initialisation
> routine in preparation to limiting its use to the DISCONTIGMEM memory
> model only.
This one looks pretty independent and ready to merge.
Acked-by: Joel Schopp <jschopp at austin.ibm.com>
>
> Signed-off-by: Andy Whitcroft <apw at shadowen.org>
>
> diffstat ppc64-discontig-pull-out-numa_memory_lookup-init
> ---
>
> diff -upN reference/arch/ppc64/mm/numa.c current/arch/ppc64/mm/numa.c
> --- reference/arch/ppc64/mm/numa.c
> +++ current/arch/ppc64/mm/numa.c
> @@ -58,6 +58,20 @@ EXPORT_SYMBOL(numa_memory_lookup_table);
> EXPORT_SYMBOL(numa_cpumask_lookup_table);
> EXPORT_SYMBOL(nr_cpus_in_node);
>
> +static inline void discontig_init(unsigned long top)
> +{
> + unsigned long entries = top >> MEMORY_INCREMENT_SHIFT;
> + unsigned long i;
> +
> + if (!numa_memory_lookup_table) {
> + numa_memory_lookup_table =
> + (char *)abs_to_virt(lmb_alloc(entries * sizeof(char), 1));
> + memset(numa_memory_lookup_table, 0, entries * sizeof(char));
> + for (i = 0; i < entries ; i++)
> + numa_memory_lookup_table[i] = ARRAY_INITIALISER;
> + }
> +}
> +
> static inline void map_cpu_to_node(int cpu, int node)
> {
> numa_cpu_lookup_table[cpu] = node;
> @@ -320,7 +334,6 @@ static int __init parse_numa_properties(
> struct device_node *memory = NULL;
> int addr_cells, size_cells;
> int max_domain = 0;
> - long entries = lmb_end_of_DRAM() >> MEMORY_INCREMENT_SHIFT;
> unsigned long i;
>
> if (numa_enabled == 0) {
> @@ -328,12 +341,7 @@ static int __init parse_numa_properties(
> return -1;
> }
>
> - numa_memory_lookup_table =
> - (char *)abs_to_virt(lmb_alloc(entries * sizeof(char), 1));
> - memset(numa_memory_lookup_table, 0, entries * sizeof(char));
> -
> - for (i = 0; i < entries ; i++)
> - numa_memory_lookup_table[i] = ARRAY_INITIALISER;
> + discontig_init(lmb_end_of_DRAM());
>
> min_common_depth = find_min_common_depth();
>
> @@ -457,21 +465,13 @@ static void __init setup_nonnuma(void)
> {
> unsigned long top_of_ram = lmb_end_of_DRAM();
> unsigned long total_ram = lmb_phys_mem_size();
> - unsigned long i;
>
> printk(KERN_INFO "Top of RAM: 0x%lx, Total RAM: 0x%lx\n",
> top_of_ram, total_ram);
> printk(KERN_INFO "Memory hole size: %ldMB\n",
> (top_of_ram - total_ram) >> 20);
>
> - if (!numa_memory_lookup_table) {
> - long entries = top_of_ram >> MEMORY_INCREMENT_SHIFT;
> - numa_memory_lookup_table =
> - (char *)abs_to_virt(lmb_alloc(entries * sizeof(char), 1));
> - memset(numa_memory_lookup_table, 0, entries * sizeof(char));
> - for (i = 0; i < entries ; i++)
> - numa_memory_lookup_table[i] = ARRAY_INITIALISER;
> - }
> + discontig_init(top_of_ram);
>
> map_cpu_to_node(boot_cpuid, 0);
>
> _______________________________________________
> Linuxppc64-dev mailing list
> Linuxppc64-dev at ozlabs.org
> https://ozlabs.org/cgi-bin/mailman/listinfo/linuxppc64-dev
>
More information about the Linuxppc64-dev
mailing list