On Tue, 2008-11-04 at 13:12 -0800, Luck, Tony wrote: > > 1) try to get the info regarding offline CPUs earlier either by calling > > acpi_boot_init() earlier (probably not possible prior to calling find_memory()) > > or walk a subset of the ACPI tables to get the number of offline CPUs sooner > > (which sounds ugly). > > > > > > 2) after we call acpi_boot_init() go back and setup the per-cpu datastructures > > for the offline CPUs then. Seems like this might be cleaner but I have not > > investigated the specifics. > > What about: > > 3) Perform the needed allocations when we try to bring the new cpu online? Seems logical, we would need to fix the code that is trying to use the datastructures for offline CPUs however. The panic we current hit is in migration_thread and that might be the only case. > > It is possible that this will fail ... but if you are so low on memory > that you can't allocate a couple of pages for the new cpu, you are in > a world of hurt already and adding a new cpu is liklely to make things > worse. The patch that caused this doesn't just prevent allocating structures for the offline CPUs but prevents allocating NR_CPUS (4096 in the case of SLES11) per-cpu structures on a small system that has perhaps only 4 CPUs. - Doug -- To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |