On Sat, Mar 09, 2024 at 01:37:06PM -0800, Yosry Ahmed wrote: > On Sat, Mar 9, 2024 at 8:34 AM Kirill A. Shutemov > <kirill.shutemov@xxxxxxxxxxxxxxx> wrote: > > > > On Sat, Mar 09, 2024 at 02:19:19AM +0000, Yosry Ahmed wrote: > > > I don't see how skipping set_tlbstate_lam_mode() for kthreads fixes this > > > problem. Do you mind elaborating? > > > > Define what problem is. > > > > Yes, in this scenario kthread gets more permissive LAM mode than it needs. > > But nothing breaks. > > > The problem here is not how the kthread runs at all. It is the fact > that if that kthread context switches into the user process that has > enabled LAM, it may not update CR3 because the mm doesn't change. > switch_mm_irqs_off() will only update CR3 in this case if there is a > pending TLB flush. Otherwise, we just return, even if the LAM for this > mm has changed. > > This can cause the process that has enabled LAM to run with LAM > disabled and fault on tagged addresses, right? Did I miss something? You are right. I think IPI is the way to go. Will you prepare a patch? -- Kiryl Shutsemau / Kirill A. Shutemov