Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [patch v3 08/36] x86/smpboot: Split up native_cpu_up() into separate phases and document them | Date | Tue, 09 May 2023 14:09:23 +0200 |
| |
On Tue, May 09 2023 at 12:31, Peter Zijlstra wrote: > On Mon, May 08, 2023 at 09:43:39PM +0200, Thomas Gleixner wrote: >> + /* >> + * Wait for the AP to mark itself online, so the core caller >> + * can drop sparse_irq_lock. >> + */ >> + while (!cpu_online(cpu)) >> + schedule(); >> +} > > These schedule() loops make me itch... this is basically Ye Olde yield() > loop with all it's known 'benefits'. > > Now, I don't think it's horribly broken, we're explicitly waiting on > another CPU and can't have priority inversions, but yuck! > > It could all be somewhat cleaned up with wait_var_event{_timeout}() and > wake_up_var(), but I'm really not sure that's worth it. But at least it > requires a comment to justify.
All of them are gone with the later patches and the control CPU will just go straight to wait for the completion in the core code.
| |