Re: [RFC PATCH v3 13/15] context_tracking,x86: Add infrastructure to defer kernel TLBI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/21/24 03:12, Peter Zijlstra wrote:
>> I see e.g. ds_clear_cea() clears PTEs that can have the _PAGE_GLOBAL flag,
>> and it correctly uses the non-deferrable flush_tlb_kernel_range().
> 
> I always forget what we use global pages for, dhansen might know, but
> let me try and have a look.
> 
> I *think* we only have GLOBAL on kernel text, and that only sometimes.

I think you're remembering how _PAGE_GLOBAL gets used when KPTI is in play.

Ignoring KPTI for a sec... We use _PAGE_GLOBAL for all kernel mappings.
Before PCIDs, global mappings let the kernel TLB entries live across CR3
writes. When PCIDs are in play, global mappings let two different ASIDs
share TLB entries.

When KPTI is around, the kernel writes CR3 at user/kernel switches to
make sure secrets are unmapped and can't be leaked by Meltdown. But
unmapping those secrets doesn't do squat if they were mapped globally
since they'll still be in the TLB and quite usable. There, we're more
judicious and only mark performance-sensitive things that are not secret
to be global, like kernel text.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux