Panic with latest pmap lock changes.

Andreas Tobler andreast-list at fgznet.ch
Tue Jul 10 20:23:38 UTC 2012


On 10.07.12 22:00, Alan Cox wrote:
> On Sun, Jul 8, 2012 at 3:55 PM, Andreas Tobler <andreast-list at fgznet.ch
> <mailto:andreast-list at fgznet.ch>> wrote:
>
>     On 07.07.12 19:39, Alan Cox wrote:
>
>         On 07/07/2012 09:20, Justin Hibbits wrote:
>
>             Looks like I spoke too soon about the pmap lock changes
>             working on my
>             G4.  After about 24 hours of uptime, it panicked with the
>             following:
>
>             _rw_wlock_hard: recursing but non-recursive rw pmap pv global
>             @ /home/chmeee/freebsd/src/sys/__powerpc/aim/mmu_oea.c:2301
>
>             I think the attached patch should fix it (Untested, except for
>             compiling).
>
>
>         Ugh.  Sorry.
>
>         The attached patch eliminates the lock recursion.  While I was doing
>         that, I noticed that the pmap_ts_referenced() implementations on
>         powerpc
>         have the wrong return type.  Oddly, the comments in mmu_if.h
>         have the
>         return type correct, but the code two or three lines later has
>         it wrong.
>
>
>     Fyi, I'm building world with the patch mentioned in this thread and
>     the kernel updated to 238258. (G5-SMP 32-bit)
>
>     So far it looks promising.
>
>     Before 238258 I got reliable machine locks/freeze w/o any idea what
>     was happening.
>
>     If I reverted mmu_oea.c back to 238158, one before the commit from
>     you Alan, I was able to get a successful full world/kernel build cycle.
>     Yes, I confirmed that it booted, but I was not able to run a full
>     world/kernel cycle since I lost my GEOM_APM config ;).
>
>     Anyway, as said, it looks promising and it will take some hours to
>     complete.
>
>
> Should I commit the patch?

Hmmm, I had three successful world/kernel builds with this patch. All 
with a GENERIC kernel. But I also had one freeze, no info/panic nothing, 
with a kernel where I disabled the WITNESS/INVARIANTS stuff.

I think the patch is an improvement. I need to figure why I do not get 
any info when the machine freezes/locks whatever. But this can be done 
with the committed patch. Maybe we get bigger testing audience when it 
is committed.

Thanks,
Andreas





More information about the freebsd-ppc mailing list