On Tue, Mar 04, 2025 at 12:52:47PM +0000, Brendan Jackman wrote: > https://lore.kernel.org/all/CA+i-1C31TrceZiizC_tng_cc-zcvKsfXLAZD_XDftXnp9B2Tdw@xxxxxxxxxxxxxx/ Lemme try to understand what you're suggesting on that subthread: > static inline void arch_start_context_switch(struct task_struct *prev) > { > arch_paravirt_start_context_switch(prev); > tlb_start_context_switch(prev); > } This kinda makes sense to me... > Now I think about it... if we always tlbsync() before a context switch, is the > cant_migrate() above actually required? I think with that, even if we migrated > in the middle of e.g. broadcast_kernel_range_flush(), we'd be fine? (At > least, from the specific perspective of the invplgb code, presumably having > preemption on there would break things horribly in other ways). I think we still need it because you need to TLBSYNC on the same CPU you've issued the INVLPGB and actually, you want all TLBs to have been synched system-wide. Or am I misunderstanding it? Anything else I missed? Btw, I just sent v15 - if you wanna continue commenting there... https://lore.kernel.org/r/20250304135816.12356-1-bp@xxxxxxxxxx Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette