On Mon, Mar 11, 2024 at 5:42 AM Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote: > > 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? I am working on it.