[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <6128C99E-3FAA-4925-B68C-16B36178E00B@gmail.com>
Date: Thu, 16 Jun 2016 09:43:01 -0700
From: Nadav Amit <nadav.amit@...il.com>
To: Lukasz Anaczkowski <lukasz.anaczkowski@...el.com>
Cc: "H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Dave Hansen <dave.hansen@...ux.intel.com>, ak@...ux.intel.com,
kirill.shutemov@...ux.intel.com, mhocko@...e.com,
akpm@...ux-foundation.org, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, harish.srinivasappa@...el.com,
lukasz.odzioba@...el.com, grzegorz.andrejczuk@...el.com,
lukasz.daniluk@...el.com
Subject: Re: [PATCH v3] Linux VM workaround for Knights Landing A/D leak
Lukasz Anaczkowski <lukasz.anaczkowski@...el.com> wrote:
> From: Andi Kleen <ak@...ux.intel.com>
>
> +void fix_pte_leak(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
> +{
> + if (cpumask_any_but(mm_cpumask(mm), smp_processor_id()) < nr_cpu_ids) {
> + trace_tlb_flush(TLB_LOCAL_SHOOTDOWN, TLB_FLUSH_ALL);
This tracing seems incorrect since you don’t perform a local flush.
I don’t think you need any tracing - native_flush_tlb_others will do it for you.
> + flush_tlb_others(mm_cpumask(mm), mm, addr,
> + addr + PAGE_SIZE);
> + mb();
Why do you need the memory barrier?
Regards,
Nadav
Powered by blists - more mailing lists