lkml.org 
[lkml]   [2011]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [patch] x86, mm: avoid stale tlb entries by clearing prev mm_cpumask after switching mm
    On Wed, Feb 2, 2011 at 5:55 PM, Linus Torvalds
    <torvalds@linux-foundation.org> wrote:
    > On Wed, Feb 2, 2011 at 12:07 PM, Suresh Siddha
    > <suresh.b.siddha@intel.com> wrote:
    >> For the prev mm that is handing over the cpu to another mm, clear the cpu
    >> from the mm_cpumask(prev) after the cr3 is changed.
    >>
    >> Otherwise, clearing the mm_cpumask early will avoid the flush tlb IPI's while
    >> the cr3 and TLB's are still pointing to the prev mm. And this window can lead
    >> to the stale (global) TLB entries.
    >
    > Why?
    >
    > This looks pointless. Explain why this matters. Global entries are
    > never per-mm, so any global entries can never care about the
    > mm_cpumask.
    >
    > And for any normal entries it doesn't matter if the IPI gets lost,
    > since the TLB will be flushed (immediately afterwards) by the cr3
    > write.

    Actually, for normal entries I could well imagine the code that wants
    to do a flush before freeing the page caring.

    So I think the _patch_ may be correct, but the changelog is definitely
    not correct, and needs serious surgery to explain what the bug that
    this fixes actually is.

    Linus


    \
     
     \ /
      Last update: 2011-02-03 05:07    [W:0.035 / U:30.856 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site