Re: Flushing user entries for kernel mappings in x86

2018-08-29 Thread Nadav Amit
at 8:45 PM, Andy Lutomirski  wrote:

> On Tue, Aug 28, 2018 at 6:46 PM, Nadav Amit  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.



Re: Flushing user entries for kernel mappings in x86

2018-08-29 Thread Nadav Amit
at 8:45 PM, Andy Lutomirski  wrote:

> On Tue, Aug 28, 2018 at 6:46 PM, Nadav Amit  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.



Re: Flushing user entries for kernel mappings in x86

2018-08-28 Thread Andy Lutomirski
On Tue, Aug 28, 2018 at 6:46 PM, Nadav Amit  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.


Re: Flushing user entries for kernel mappings in x86

2018-08-28 Thread Andy Lutomirski
On Tue, Aug 28, 2018 at 6:46 PM, Nadav Amit  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.