Messages in this thread | | | Date | Wed, 27 Sep 2006 17:23:55 -0700 | From | "Siddha, Suresh B" <> | Subject | Re: [patch] mm: fix a race condition under SMC + COW |
| |
On Wed, Sep 27, 2006 at 03:54:42PM -0700, David Miller wrote: > You can't really do a set_pte_at() in this code path because > there isn't a subsequent flush_tlb_*(). > > This is needed because some architectures queue up all set_pte_at() > calls until the next flush_tlb_*() in order to batch TLB flushes. > PowerPC and Sparc64 both do this. > > The pte_establish() in the existing code works fine because it takes > care of the set_pte_at() and flush_tlb_*() work internally when > necessary on a given platform.
I am flushing the pte entry in ptep_clear_flush() and it is Ok not to do another TLB flush after doing set_pte_at().
On Sparc64, this new set_pte_at() (after ptep_clear_flush) will not batch any TLB flush as the previous pte contents were zero.
We are Ok with this patch, isn't it?
thanks, suresh - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |