Re: [PATCH] avoid unnecessary cache flushes

David Mosberger (davidm@hpl.hp.com)
Mon, 3 Sep 2001 13:27:02 -0700


>>>>> 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/