[lkml]   [2004]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] ppc64: Fix possible race with set_pte on a present PTE
    On Wed, May 26, 2004 at 02:18:45AM +0400, Ivan Kokshaysky wrote:
    > On Tue, May 25, 2004 at 03:01:55PM -0700, Linus Torvalds wrote:
    > > A "not-present" fault is a totally different fault from a "protection
    > > fault". Only the not-present fault ends up walking the page tables, if I
    > > remember correctly.
    > Precisely. The architecture reference manual says:
    > "Additionally, when the software changes any part (except the software
    > field) of a *valid* PTE, it must also execute a tbi instruction."

    thanks for checking.

    after various searching on the x86 docs I found:

    Whenever a page-directory or page-table entry is changed (including when
    the present flag is set to zero), the operating-system must immediately
    invalidate the corresponding entry in the TLB so that it can be updated
    the next time the entry is referenced.

    according to the above we'd need to flush the tlb even in
    do_anonymous_page on x86, or am I reading it wrong? We're not really
    doing that, is that a bug? I'd be very surprised if we overlooked x86
    wasting some time in some page fault loop, I guess it works like the
    alpha in practice even if the specs tells us we've to flush.

    anyways to make things work right with my approch I'd need to flush the
    tlb after the handle_*_page_fault operations (they could return 1
    if a flush is required before returning from the page fault) and I
    should resurrect pte_establish in do_wp_page. but then I certainly agree
    leaving ptep_establish in handle_mm_fault is fine if we've to flush the
    tlb anyways, so I'm not going to update my patch unless anybody prefers
    it for any other reason I don't see.
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:03    [W:0.020 / U:8.716 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site