tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: uvm_pagealloc_strat locking against itself



On Sun, May 31, 2009 at 05:35:49AM +0900, Masao Uebayashi wrote:
> > mips32_KernIntr+84 (80407110,80406fa4,0,4) ra 802bc090 sz 128
> If the pool_get() call is really protected with splvm(), interrupt
> should not be raised now.  I guess that interrupt handling is broken
> on your MIPS port?

Looking at the "ipending" arg (0x800 aka MIPS_INTR__MASK_1) of au_intr it was
an easy guess, and the following patch "fixes" it - have to look at the
interrupt setup in more details tomorrow.

Thanks for the hint,

Martin
Index: au_icu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/mips/alchemy/au_icu.c,v
retrieving revision 1.23
diff -c -u -r1.23 au_icu.c
--- au_icu.c    28 Apr 2008 20:23:27 -0000      1.23
+++ au_icu.c    30 May 2009 22:33:07 -0000
@@ -99,7 +99,8 @@
        MIPS_SOFT_INT_MASK_0,                   /*  2: IPL_SOFTNET */
        MIPS_SOFT_INT_MASK_0|
                MIPS_SOFT_INT_MASK_1|
-               MIPS_INT_MASK_0,                /*  3: IPL_VM */
+               MIPS_INT_MASK_0|
+               MIPS_INT_MASK_1,                /*  3: IPL_VM */
        MIPS_SOFT_INT_MASK_0|
                MIPS_SOFT_INT_MASK_1|
                MIPS_INT_MASK_0|


Home | Main Index | Thread Index | Old Index