Re: [panic] Unknown caching mode 8198 in sys/amd64/amd64/pmap.c

From: Glen Barber <gjb_at_FreeBSD.org>
Date: Sun, 13 Jan 2013 13:33:38 -0500
On Sun, Jan 13, 2013 at 07:56:56PM +0200, Konstantin Belousov wrote:
> On Fri, Jan 11, 2013 at 03:09:52PM -0500, Glen Barber wrote:
> > Hi,
> > 
> > I'm running a relatively recent -CURRENT:
> > 
> > root_at_nucleus:/usr/obj/usr/src/sys/NUCLEUS # uname -a
> > FreeBSD nucleus 10.0-CURRENT FreeBSD 10.0-CURRENT #50 r244773: Mon Dec
> > 31 16:07:53 EST 2012     root_at_nucleus:/usr/obj/usr/src/sys/NUCLEUS amd64
> > 
> > I ran into this panic twice over the past 24 hours.  Both times,
> > Chromium was the program I was actively using, with a few ssh sessions
> > in the background.
> > 
> > Below follows kgdb session and hopefully useful information.  Any advice
> > on how to further debug this would be appreciated.
> > 
> > Glen
> > 
> > 
> > Script started on Fri Jan 11 14:58:16 2013
> > root_at_nucleus:/usr/obj/usr/src/sys/NUCLEUS # kgdb kernel.debug /var/crash/vmcore.6
> > GNU gdb 6.1.1 [FreeBSD]
> > Copyright 2004 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you are
> > welcome to change it and/or distribute copies of it under certain conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB.  Type "show warranty" for details.
> > This GDB was configured as "amd64-marcel-freebsd"...
> > 
> > Unread portion of the kernel message buffer:
> > panic: Unknown caching mode 8198
> > 
> > cpuid = 3
> > KDB: stack backtrace:
> > #0 0xffffffff80605a76 at kdb_backtrace+0x66
> > #1 0xffffffff805cbbbb at panic+0x13b
> > #2 0xffffffff80879748 at pmap_cache_bits+0x58
> > #3 0xffffffff80880fb4 at pmap_enter+0xa4
> > #4 0xffffffff8084ed25 at vm_fault_hold+0x1a15
> > #5 0xffffffff8084f8d3 at vm_fault+0x73
> > #6 0xffffffff8088593a at trap_pfault+0x13a
> > #7 0xffffffff80886184 at trap+0x4f4
> > #8 0xffffffff8086f853 at calltrap+0x8
> > Uptime: 1d14h30m4s
> > Dumping 4646 out of 7951 MB:..1%..11%..21%..31%..41%..51%..61%..71%..81%..91%
> > 
> > Reading symbols from /boot/kernel/zfs.ko...Reading symbols from /bootdir/boot/kernel/zfs.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/zfs.ko
> > Reading symbols from /boot/kernel/opensolaris.ko...Reading symbols from /bootdir/boot/kernel/opensolaris.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/opensolaris.ko
> > Reading symbols from /boot/kernel/geom_eli.ko...Reading symbols from /bootdir/boot/kernel/geom_eli.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/geom_eli.ko
> > Reading symbols from /boot/kernel/linux.ko...Reading symbols from /bootdir/boot/kernel/linux.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/linux.ko
> > Reading symbols from /boot/kernel/coretemp.ko...Reading symbols from /bootdir/boot/kernel/coretemp.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/coretemp.ko
> > Reading symbols from /boot/kernel/acpi_video.ko...Reading symbols from /bootdir/boot/kernel/acpi_video.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/acpi_video.ko
> > Reading symbols from /boot/kernel/sem.ko...Reading symbols from /bootdir/boot/kernel/sem.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/sem.ko
> > Reading symbols from /boot/kernel/acpi_asus.ko...Reading symbols from /bootdir/boot/kernel/acpi_asus.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/acpi_asus.ko
> > Reading symbols from /boot/kernel/aesni.ko...Reading symbols from /bootdir/boot/kernel/aesni.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/aesni.ko
> > Reading symbols from /boot/kernel/pf.ko...Reading symbols from /bootdir/boot/kernel/pf.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/pf.ko
> > Reading symbols from /boot/kernel/i915kms.ko...Reading symbols from /bootdir/boot/kernel/i915kms.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/i915kms.ko
> > Reading symbols from /boot/kernel/iicbb.ko...Reading symbols from /bootdir/boot/kernel/iicbb.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/iicbb.ko
> > Reading symbols from /boot/kernel/iicbus.ko...Reading symbols from /bootdir/boot/kernel/iicbus.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/iicbus.ko
> > Reading symbols from /boot/kernel/iic.ko...Reading symbols from /bootdir/boot/kernel/iic.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/iic.ko
> > Reading symbols from /boot/kernel/agp.ko...Reading symbols from /bootdir/boot/kernel/agp.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/agp.ko
> > Reading symbols from /boot/kernel/drm2.ko...Reading symbols from /bootdir/boot/kernel/drm2.ko.symbols...done.
> > done.
> > Loaded symbols for /boot/kernel/drm2.ko
> > Reading symbols from /usr/local/libexec/linux_adobe/linux_adobe.ko...done.
> > Loaded symbols for /usr/local/libexec/linux_adobe/linux_adobe.ko
> > #0  doadump (textdump=<value optimized out>) at pcpu.h:229
> > 229             __asm("movq %%gs:%1,%0" : "=r" (td)
> > (kgdb) bt
> > #0  doadump (textdump=<value optimized out>) at pcpu.h:229
> > #1  0xffffffff805cb724 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:446
> > #2  0xffffffff805cbba5 in panic (fmt=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:753
> > #3  0xffffffff80879748 in pmap_cache_bits (mode=<value optimized out>, is_pde=<value optimized out>)
> >     at /usr/src/sys/amd64/amd64/pmap.c:863
> > #4  0xffffffff80880fb4 in pmap_enter (pmap=0xfffffe01bfa66440, va=34636066816, access=<value optimized out>, 
> >     m=0xfffffe023dfc1b70, prot=<value optimized out>, wired=<value optimized out>)
> >     at /usr/src/sys/amd64/amd64/pmap.c:3456
> > #5  0xffffffff8084ed25 in vm_fault_hold (map=0xfffffe01bfa66310, vaddr=34636066816, fault_type=1 '\001', 
> >     fault_flags=<value optimized out>, m_hold=0x0) at /usr/src/sys/vm/vm_fault.c:914
> > #6  0xffffffff8084f8d3 in vm_fault (map=0xfffffe01bfa66310, vaddr=34636066816, 
> >     fault_type=<value optimized out>, fault_flags=0) at /usr/src/sys/vm/vm_fault.c:224
> > #7  0xffffffff8088593a in trap_pfault (frame=0xffffff8239b37ac0, usermode=1)
> >     at /usr/src/sys/amd64/amd64/trap.c:756
> > #8  0xffffffff80886184 in trap (frame=0xffffff8239b37ac0) at /usr/src/sys/amd64/amd64/trap.c:363
> > #9  0xffffffff8086f853 in calltrap () at /usr/src/sys/amd64/amd64/exception.S:228
> > #10 0x000000080b0f2200 in ?? ()
> > Previous frame inner to this frame (corrupt stack?)
> > (kgdb) frame 3
> > #3  0xffffffff80879748 in pmap_cache_bits (mode=<value optimized out>, is_pde=<value optimized out>)
> >     at /usr/src/sys/amd64/amd64/pmap.c:863
> > 863                     panic("Unknown caching mode %d\n", mode);
> > (kgdb) list *0xffffffff80879748
> > 0xffffffff80879748 is at /usr/src/sys/amd64/amd64/pmap.c:863.
> > 858     pmap_cache_bits(int mode, boolean_t is_pde)
> > 859     {
> > 860             int cache_bits, pat_flag, pat_idx;
> > 861     
> > 862             if (mode < 0 || mode >= PAT_INDEX_SIZE || pat_index[mode] < 0)
> > 863                     panic("Unknown caching mode %d\n", mode);
> > 864     
> > 865             /* The PAT bit is different for PTE's and PDE's. */
> > 866             pat_flag = is_pde ? PG_PDE_PAT : PG_PTE_PAT;
> > 867     
> > (kgdb) frame 4
> > #4  0xffffffff80880fb4 in pmap_enter (pmap=0xfffffe01bfa66440, va=34636066816, access=<value optimized out>, 
> >     m=0xfffffe023dfc1b70, prot=<value optimized out>, wired=<value optimized out>)
> >     at /usr/src/sys/amd64/amd64/pmap.c:3456
> > 3456            newpte |= pmap_cache_bits(m->md.pat_mode, 0);
> > (kgdb) p *m
> > $1 = {pageq = {tqe_next = 0x0, tqe_prev = 0xffffffff80d2f1b8}, listq = {tqe_next = 0x0, 
> >     tqe_prev = 0xfffffe023dfc1b08}, left = 0xfffffe023dfc1af8, right = 0x0, object = 0xfffffe00219a93a0, 
> >   pindex = 2905, phys_addr = 8809881600, md = {pv_list = {tqh_first = 0x0, tqh_last = 0xfffffe023dfc1bb8}, 
> >     pat_mode = 8198}, queue = 255 '?', segind = 10 '\n', hold_count = 0, order = 13 '\r', pool = 0 '\0', 
> >   cow = 0, wire_count = 0, aflags = 0 '\0', oflags = 1 '\001', flags = 0, act_count = 0 '\0', busy = 0 '\0', 
> >   valid = 255 '?', dirty = 0 '\0'}
> > (kgdb) list *0xffffffff80880fb4
> > 0xffffffff80880fb4 is in pmap_enter (/usr/src/sys/amd64/amd64/pmap.c:3461).
> > 3456            newpte |= pmap_cache_bits(m->md.pat_mode, 0);
> > 3457    
> > 3458            mpte = NULL;
> > 3459    
> > 3460            lock = NULL;
> > 3461            rw_rlock(&pvh_global_lock);
> > 3462            PMAP_LOCK(pmap);
> > 3463    
> > 3464            /*
> > 3465             * In the case that a page table page is not
> > (kgdb) root_at_nucleus:/usr/obj/usr/src/sys/NUCLEUS # ^D
> > 
> > Script done on Fri Jan 11 14:58:54 2013
> 
> Show the output of p *(struct vm_object *)0xfffffe00219a93a0.
> Do you use zfs or drm2/i915 driver ?
> 

Yes, I use both drm2/i915 and zfs.  Requested kgdb output follows.

Thanks,

Glen

Script started on Sun Jan 13 13:31:20 2013
root_at_nucleus:/usr/obj/usr/src/sys/NUCLEUS # kgdb kernel.debug /var/crash/vmcore.6
[...]
229             __asm("movq %%gs:%1,%0" : "=r" (td)
(kgdb) p *(struct vm_object *)0xfffffe00219a93a0
$1 = {mtx = {lock_object = {lo_name = 0xffffffff8099b7a2 "vm object", lo_flags = 21168128, lo_data = 0, 
      lo_witness = 0x0}, mtx_lock = 4}, object_list = {tqe_next = 0xfffffe011479c570, 
    tqe_prev = 0xfffffe0139f833c0}, shadow_head = {lh_first = 0x0}, shadow_list = {
    le_next = 0xfffffe00914d9740, le_prev = 0xfffffe001569ca28}, memq = {tqh_first = 0xfffffe023cec1758, 
    tqh_last = 0xfffffe023dfc1b80}, root = 0xfffffe023dfc1b70, size = 3026, generation = 1, ref_count = 2, 
  shadow_count = 0, memattr = 6 '\006', type = 0 '\0', flags = 12288, pg_color = 64558, 
  paging_in_progress = 1, resident_page_count = 1928, backing_object = 0x0, backing_object_offset = 0, 
  pager_object_list = {tqe_next = 0x0, tqe_prev = 0x0}, rvq = {lh_first = 0x0}, cache = 0x0, handle = 0x0, 
  un_pager = {vnp = {vnp_size = 5, writemappings = 0}, devp = {devp_pglist = {tqh_first = 0x5, 
        tqh_last = 0x0}, ops = 0x0}, sgp = {sgp_pglist = {tqh_first = 0x5, tqh_last = 0x0}}, swp = {
      swp_bcount = 5}}, cred = 0xfffffe00155d0c00, charge = 12394496}
(kgdb) root_at_nucleus:/usr/obj/usr/src/sys/NUCLEUS # ^D

Script done on Sun Jan 13 13:31:46 2013


Received on Sun Jan 13 2013 - 17:33:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:33 UTC