Date: Wed, 03 Jan 2018 17:36:38 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-ppc@FreeBSD.org Subject: [Bug 224841] Power64 regression: Machine does not boot anymore Message-ID: <bug-224841-21-MpCCoGAja1@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-224841-21@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224841 --- Comment #8 from Breno Leitao <breno.leitao@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.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-224841-21-MpCCoGAja1>
