Page MenuHomeFreeBSD

POWERPC: don't wait in loop if AP was not started
AbandonedPublic

Authored by wma on Oct 6 2017, 7:40 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 11 2024, 10:40 PM
Unknown Object (File)
Oct 27 2023, 7:00 AM
Unknown Object (File)
Jul 13 2023, 4:37 PM
Unknown Object (File)
Jun 27 2023, 8:15 AM
Unknown Object (File)
May 19 2023, 4:56 PM
Unknown Object (File)
May 14 2023, 6:13 AM
Unknown Object (File)
Apr 25 2023, 9:21 AM
Subscribers

Details

Summary

There is no reason to wait 2s for AP if the start was
not successfull. It lasts really long if the system has
128 cores...

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Reviewing the powermac and mpc85xx platforms, the platform function returns ENXIO on failure, 0 on success, or EBUSY if it's potentially still waking (or got stuck). On the other hand, if platform_smp_start_cpu() returns 0, the CPU is already awake and waiting for ap_letgo, so really the timeout is unnecessary entirely.

After some testing of all this CPU startup thing, I think it would be best to panic if any of AP fails to start.
The rest of the system is not prepared to handle the scenario when the cpumask has "holes" inside. I then can see hangs in various places: for example the smp_rendezvouz, returning from kdb_enter, but there still might be more such things which I couldn't find.

Closing this one as I'm going to change this function much more.