Skip site navigation (1)Skip section navigation (2)
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>