[Bug 224841] Power64 regression: Machine does not boot anymore
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Jan 3 17:36:38 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224841
--- Comment #8 from Breno Leitao <breno.leitao at gmail.com> ---
After some debug, I found that the machine is not stopping, but it is lopping
on CPU detection part for a long period, which is involving the changes in the
chrp_cpuref_for_server(), and this is being called several times.
In fact, chrp_cpuref_for_server() through chrp_smp_next_cpu
(platform_smp_next_cpu,) is called n times, where n is the amount of CPU, just
to count the amount of CPUs available in the machine.
The delay is proportional to the number of CPUs available. On a machine with
100+ CPUs, it takes around 30 minutes to start the boot process, and loop again
after the initial headers. This long loop is being executed twice on a machine
boot.
That explains why I was not able to reproduce it yesterday. I was not able to
reproduce it when I tested on a machine with few CPUs (like 2 CPUs). So, the
delay is indistinguishable when you have few CPUs.
That said, I created a draft of a patch that creates a platform function that
counts the maximum amount of CPUs available on machine via device tree, this
helps to get the mp_ncpus much faster the the current implementation.
PS: This patch was barely tested and not ready for consumption.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-ppc
mailing list