On Mon, Dec 11, 2017 at 11:47 AM, Dave Hansen wrote:
> On 12/11/2017 11:39 AM, Andy Lutomirski wrote:
>>> I thought there would be a "fast path" where we just use the normal
>>> clear_LDT() LDT from the cpu_entry_area and don't have to do any of
>>> this, but I'm missing where that happens. Do we
On 12/11/2017 11:39 AM, Andy Lutomirski wrote:
>> I thought there would be a "fast path" where we just use the normal
>> clear_LDT() LDT from the cpu_entry_area and don't have to do any of
>> this, but I'm missing where that happens. Do we need a check in
>> (un)map_ldt_struct() for !mm->context.l
On Mon, Dec 11, 2017 at 11:32 AM, Dave Hansen wrote:
> On 12/11/2017 10:40 AM, Andy Lutomirski wrote:
>>> Also, from a high level, this does increase the overhead of KPTI in a
>>> non-trivial way, right? It costs us three more page table pages per
>>> process allocated at fork() and freed at exit
On 12/11/2017 10:40 AM, Andy Lutomirski wrote:
>> Also, from a high level, this does increase the overhead of KPTI in a
>> non-trivial way, right? It costs us three more page table pages per
>> process allocated at fork() and freed at exit() and a new TLB flush.
> Yeah, but no one will care. modi
On Mon, Dec 11, 2017 at 9:49 AM, Dave Hansen wrote:
> So, before this,
>
> On 12/10/2017 10:47 PM, Andy Lutomirski wrote:
> ...> + if (unlikely(ldt)) {
>> + if (static_cpu_has_bug(X86_BUG_CPU_SECURE_MODE_PTI)) {
>> + if (WARN_ON_ONCE((unsigned long)ldt->slot > 1))
So, before this,
On 12/10/2017 10:47 PM, Andy Lutomirski wrote:
...> + if (unlikely(ldt)) {
> + if (static_cpu_has_bug(X86_BUG_CPU_SECURE_MODE_PTI)) {
> + if (WARN_ON_ONCE((unsigned long)ldt->slot > 1)) {
> + clear_LDT();
> +
With PTI on, we need the LDT to be in the usermode tables somewhere,
and the LDT is per-mm.
tglx had a hack to have a per-cpu LDT and context switch it, but it
was probably insanely slow due to the required TLB flushes.
Instead, take advantage of the fact that we have an address space
hole that g
7 matches
Mail list logo