Loading arch/sparc64/kernel/smp.c +35 −0 Original line number Diff line number Diff line Loading @@ -1287,6 +1287,40 @@ int setup_profiling_timer(unsigned int multiplier) return 0; } static void __init smp_tune_scheduling(void) { int instance, node; unsigned int def, smallest = ~0U; def = ((tlb_type == hypervisor) ? (3 * 1024 * 1024) : (4 * 1024 * 1024)); instance = 0; while (!cpu_find_by_instance(instance, &node, NULL)) { unsigned int val; val = prom_getintdefault(node, "ecache-size", def); if (val < smallest) smallest = val; instance++; } /* Any value less than 256K is nonsense. */ if (smallest < (256U * 1024U)) smallest = 256 * 1024; max_cache_size = smallest; if (smallest < 1U * 1024U * 1024U) printk(KERN_INFO "Using max_cache_size of %uKB\n", smallest / 1024U); else printk(KERN_INFO "Using max_cache_size of %uMB\n", smallest / 1024U / 1024U); } /* Constrain the number of cpus to max_cpus. */ void __init smp_prepare_cpus(unsigned int max_cpus) { Loading Loading @@ -1322,6 +1356,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) } smp_store_cpu_info(boot_cpu_id); smp_tune_scheduling(); } /* Set this up early so that things like the scheduler can init Loading Loading
arch/sparc64/kernel/smp.c +35 −0 Original line number Diff line number Diff line Loading @@ -1287,6 +1287,40 @@ int setup_profiling_timer(unsigned int multiplier) return 0; } static void __init smp_tune_scheduling(void) { int instance, node; unsigned int def, smallest = ~0U; def = ((tlb_type == hypervisor) ? (3 * 1024 * 1024) : (4 * 1024 * 1024)); instance = 0; while (!cpu_find_by_instance(instance, &node, NULL)) { unsigned int val; val = prom_getintdefault(node, "ecache-size", def); if (val < smallest) smallest = val; instance++; } /* Any value less than 256K is nonsense. */ if (smallest < (256U * 1024U)) smallest = 256 * 1024; max_cache_size = smallest; if (smallest < 1U * 1024U * 1024U) printk(KERN_INFO "Using max_cache_size of %uKB\n", smallest / 1024U); else printk(KERN_INFO "Using max_cache_size of %uMB\n", smallest / 1024U / 1024U); } /* Constrain the number of cpus to max_cpus. */ void __init smp_prepare_cpus(unsigned int max_cpus) { Loading Loading @@ -1322,6 +1356,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) } smp_store_cpu_info(boot_cpu_id); smp_tune_scheduling(); } /* Set this up early so that things like the scheduler can init Loading