Messages in this thread | | | From | David Mosberger <> | Date | Mon, 3 Sep 2001 13:27:02 -0700 | Subject | Re: [PATCH] avoid unnecessary cache flushes |
| |
>>>>> On Mon, 3 Sep 2001 13:14:36 -0700, Richard Henderson <rth@twiddle.net> said:
Richard> On Fri, Aug 31, 2001 at 09:18:50PM +1000, Paul Mackerras wrote: >> + if (!test_bit(PG_arch_1, &page->flags)) { >> + __flush_dcache_icache((unsigned long)kmap(page)); >> + kunmap(page); >> + set_bit(PG_arch_1, &page->flags);
Richard> Race. Use test_and_set_bit.
Nope, the old code is correct: you must turn on PG_arch_1 *after* flushing the cache. Yes, you might sometimes double flush, but that's both safe and rare.
--david - 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/
| |