Hello Andy,
Is there a reason for __flush_tlb_one_kernel() to flush the PTE not only in
the kernel address space, but also in the user one (as part of
__flush_tlb_one_user)? [ I obviously regard the case when PTI is on ].
Thanks,
Nadav
On Tue, Aug 28, 2018 at 6:46 PM, Nadav Amit <[email protected]> wrote:
> Hello Andy,
>
> Is there a reason for __flush_tlb_one_kernel() to flush the PTE not only in
> the kernel address space, but also in the user one (as part of
> __flush_tlb_one_user)? [ I obviously regard the case when PTI is on ].
In most cases, probably not, but it's fairly cheap, I think. And it
makes it so that we're okay if the TLB entry we're flushing is used by
the entry code.
at 8:45 PM, Andy Lutomirski <[email protected]> wrote:
> On Tue, Aug 28, 2018 at 6:46 PM, Nadav Amit <[email protected]> wrote:
>> Hello Andy,
>>
>> Is there a reason for __flush_tlb_one_kernel() to flush the PTE not only in
>> the kernel address space, but also in the user one (as part of
>> __flush_tlb_one_user)? [ I obviously regard the case when PTI is on ].
>
> In most cases, probably not, but it's fairly cheap, I think. And it
> makes it so that we're okay if the TLB entry we're flushing is used by
> the entry code.
Thanks. I assumed that’s the case. I don’t know how cheap they are
(especially if INVPCID is not supported) but I guess they are not that
frequent.