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?