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...
Details
Details
- Reviewers
nwhitehorn jhibbits mw
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Comment Actions
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.
Comment Actions
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.