/* Called by boot processor to activate the rest. */ static void __init smp_init(void) { unsigned int i; /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(i) { if (num_online_cpus() >= max_cpus) break; if (!cpu_online(i)) cpu_up(i); } /* Any cleanup work */ printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus()); smp_cpus_done(max_cpus); #if 0 /* Get other processors into their bootup holding patterns. */ smp_commence(); #endif printk(KERN_DEBUG "sizeof(vma)=%u bytes\n", (unsigned int) sizeof(struct vm_area_struct)); printk(KERN_DEBUG "sizeof(page)=%u bytes\n", (unsigned int) sizeof(struct page)); printk(KERN_DEBUG "sizeof(inode)=%u bytes\n", (unsigned int) sizeof(struct inode)); printk(KERN_DEBUG "sizeof(dentry)=%u bytes\n", (unsigned int) sizeof(struct dentry)); printk(KERN_DEBUG "sizeof(ext3inode)=%u bytes\n", (unsigned int) sizeof(struct ext3_inode_info)); printk(KERN_DEBUG "sizeof(buffer_head)=%u bytes\n", (unsigned int) sizeof(struct buffer_head)); printk(KERN_DEBUG "sizeof(skbuff)=%u bytes\n", (unsigned int) sizeof(struct sk_buff)); }
static void __init smp_init(void) { unsigned int i; unsigned j = 1; /* FIXME: This should be done in userspace --RR */ for (i = 0; i < NR_CPUS; i++) { if (num_online_cpus() >= max_cpus) break; if (cpu_possible(i) && !cpu_online(i)) { cpu_up(i); j++; } } /* Any cleanup work */ printk("Brought up %u CPUs\n", j); smp_cpus_done(max_cpus); #if 0 /* Get other processors into their bootup holding patterns. */ smp_threads_ready=1; smp_commence(); #endif }
/* Called by boot processor to activate the rest. */ static void __init smp_init(void) { unsigned int cpu; /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(cpu) { if (num_online_cpus() >= setup_max_cpus) break; if (!cpu_online(cpu)) cpu_up(cpu); } /* Any cleanup work */ printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus()); smp_cpus_done(setup_max_cpus); }
/* Called by boot processor to activate the rest. */ static void __init smp_init(void) { unsigned int i; /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(i) { if (num_online_cpus() >= max_cpus) break; if (!cpu_online(i)) cpu_up(i); } /* Any cleanup work */ printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus()); smp_cpus_done(max_cpus); #if 0 /* Get other processors into their bootup holding patterns. */ smp_commence(); #endif }
/* Called by boot processor to activate the rest. */ static void __init smp_init(void) { unsigned int cpu; unsigned highest = 0; for_each_cpu_mask(cpu, cpu_possible_map) highest = cpu; nr_cpu_ids = highest + 1; /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(cpu) { if (num_online_cpus() >= max_cpus) break; if (!cpu_online(cpu)) cpu_up(cpu); } /* Any cleanup work */ printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus()); smp_cpus_done(max_cpus); }
/* Called by boot processor to activate the rest. */ static void __init smp_init(void) { unsigned int cpu; /* * Set up the current CPU as possible to migrate to. * The other ones will be done by cpu_up/cpu_down() */ set_cpu_active(smp_processor_id(), true); /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(cpu) { if (num_online_cpus() >= setup_max_cpus) break; if (!cpu_online(cpu)) cpu_up(cpu); } /* Any cleanup work */ printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus()); smp_cpus_done(setup_max_cpus); }