lkml.org 
[lkml]   [2003]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] 2/6 Make CONFIG_NUMA work on non-numa machines.
    From Andy Whitcroft

    A few very simple changes in order to make CONFIG_NUMA work everywhere, so
    the distros can build one common binary kernel for distributions.

    diff -urpN -X /home/fletch/.diff.exclude 012-pfn_valid/arch/i386/Kconfig 013-numa_x86_pc/arch/i386/Kconfig
    --- 012-pfn_valid/arch/i386/Kconfig Wed Mar 5 07:36:57 2003
    +++ 013-numa_x86_pc/arch/i386/Kconfig Wed Mar 5 07:41:54 2003
    @@ -488,7 +488,7 @@ config NR_CPUS
    # Common NUMA Features
    config NUMA
    bool "Numa Memory Allocation Support"
    - depends on (HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY)))
    + depends on (HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY))) || X86_PC

    config DISCONTIGMEM
    bool
    diff -urpN -X /home/fletch/.diff.exclude 012-pfn_valid/arch/i386/kernel/smpboot.c 013-numa_x86_pc/arch/i386/kernel/smpboot.c
    --- 012-pfn_valid/arch/i386/kernel/smpboot.c Wed Mar 5 07:36:57 2003
    +++ 013-numa_x86_pc/arch/i386/kernel/smpboot.c Wed Mar 5 07:41:54 2003
    @@ -966,6 +966,7 @@ static void __init smp_boot_cpus(unsigne
    if (APIC_init_uniprocessor())
    printk(KERN_NOTICE "Local APIC not detected."
    " Using dummy APIC emulation.\n");
    + map_cpu_to_logical_apicid();
    return;
    }

    diff -urpN -X /home/fletch/.diff.exclude 012-pfn_valid/arch/i386/mm/discontig.c 013-numa_x86_pc/arch/i386/mm/discontig.c
    --- 012-pfn_valid/arch/i386/mm/discontig.c Wed Mar 5 07:41:52 2003
    +++ 013-numa_x86_pc/arch/i386/mm/discontig.c Wed Mar 5 07:41:54 2003
    @@ -82,6 +82,36 @@ void *node_remap_start_vaddr[MAX_NUMNODE
    void set_pmd_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);

    /*
    + * FLAT - support for basic PC memory model with discontig enabled, essentially
    + * a single node with all available processors in it with a flat
    + * memory map.
    + */
    +void __init get_memcfg_numa_flat(void)
    +{
    + int pfn;
    +
    + printk("NUMA - single node, flat memory mode\n");
    +
    + /* Run the memory configuration and find the top of memory. */
    + find_max_pfn();
    + node_start_pfn[0] = 0;
    + node_end_pfn[0] = max_pfn;
    +
    + /* Fill in the physnode_map with our simplistic memory model,
    + * all memory is in node 0.
    + */
    + for (pfn = node_start_pfn[0]; pfn <= node_end_pfn[0];
    + pfn += PAGES_PER_ELEMENT)
    + {
    + physnode_map[pfn / PAGES_PER_ELEMENT] = 0;
    + }
    +
    + /* Indicate there is one node available. */
    + node_set_online(0);
    + numnodes = 1;
    +}
    +
    +/*
    * Find the highest page frame number we have available for the node
    */
    static void __init find_max_pfn_node(int nid)
    diff -urpN -X /home/fletch/.diff.exclude 012-pfn_valid/include/asm-i386/mmzone.h 013-numa_x86_pc/include/asm-i386/mmzone.h
    --- 012-pfn_valid/include/asm-i386/mmzone.h Wed Mar 5 07:41:53 2003
    +++ 013-numa_x86_pc/include/asm-i386/mmzone.h Wed Mar 5 07:41:54 2003
    @@ -123,6 +123,9 @@ static inline struct pglist_data *pfn_to
    #include <asm/numaq.h>
    #elif CONFIG_X86_SUMMIT
    #include <asm/srat.h>
    +#elif CONFIG_X86_PC
    +#define get_memcfg_numa get_memcfg_numa_flat
    +#define get_zholes_size(n) (0)
    #else
    #define pfn_to_nid(pfn) (0)
    #endif /* CONFIG_X86_NUMAQ */
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:33    [W:0.023 / U:0.604 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site