Re: [kpreempt-tech] Re: Oops in kernel 2.4.19-pre10-ac2-preempt
From: Robert Love <hidden>
Date: 2002-06-20 17:58:21
On Thu, 2002-06-20 at 10:22, William Lee Irwin III wrote:
That'd be great, the two places are pte_chain_lock() and pte_chain_unlock(). They're basically a spin_lock_bit() and spin_unlock_bit(), so they need the same kind of disable preempt before the spinloop and re-enable it after dropping the lock treatment as spinlocks.
Here is the patch... I will put out an updated -ac patch shortly with this and some other bits. Correct? Robert Love diff -urN linux-2.4.19-pre10-ac2/include/linux/mm.h linux/include/linux/mm.h
--- linux-2.4.19-pre10-ac2/include/linux/mm.h Thu Jun 6 11:16:03 2002
+++ linux/include/linux/mm.h Thu Jun 20 10:57:01 2002@@ -340,6 +340,7 @@ * busywait with less bus contention for a good time to * attempt to acquire the lock bit. */ + preempt_disable(); while (test_and_set_bit(PG_chainlock, &page->flags)) { while (test_bit(PG_chainlock, &page->flags)) cpu_relax();
@@ -349,6 +350,7 @@ static inline void pte_chain_unlock(struct page *page) { clear_bit(PG_chainlock, &page->flags); + preempt_enable(); } /* --
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/