NetBSD Problem Report #57020

From www@netbsd.org  Sat Sep 24 06:48:04 2022
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 497831A923A
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 24 Sep 2022 06:48:04 +0000 (UTC)
Message-Id: <20220924064800.A87D81A923B@mollari.NetBSD.org>
Date: Sat, 24 Sep 2022 06:48:00 +0000 (UTC)
From: campbell+netbsd@mumble.net
Reply-To: campbell+netbsd@mumble.net
To: gnats-bugs@NetBSD.org
Subject: kernel diagnostic assertion "!RB_SENTINEL_P(tree->rbt_root)" failed: file "/home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c", line 2261
X-Send-Pr-Version: www-1.0

>Number:         57020
>Category:       kern
>Synopsis:       kernel diagnostic assertion "!RB_SENTINEL_P(tree->rbt_root)" failed: file "/home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c", line 2261
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Sep 24 06:50:00 +0000 2022
>Closed-Date:    Wed Apr 17 19:06:16 +0000 2024
>Last-Modified:  Wed Apr 17 19:06:16 +0000 2024
>Originator:     Taylor R Campbell
>Release:        current
>Organization:
The pmapBSD Foundation
>Environment:
NetBSD singbulli 9.99.100 NetBSD 9.99.100 (GENERIC) #38: Fri Sep 23 17:56:58 UTC 2022  root@singbulli:/home/riastradh/netbsd/current/obj.amd64/sys/arch/amd64/compile/GENERIC amd64
>Description:
System panicked: kernel diagnostic assertion "!RB_SENTINEL_P(tree->rbt_root)" failed: file "/home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c", line 2261 

kern_reboot() at sys_reboot
vpanic() at vpanic+0x18d
kern_assert() at __x86_indirect_thunk_rax
pmap_lookup_pv() at pmap_lookup_pv+0xc1
pmap_remove_pte() at pmap_remove_pte+0x12a
pmap_remove() at pmap_remove+0x189
uvm_unmap_remove() at uvm_unmap_remove+0x292
sys_munmap() at sys_munmap+0x9e
syscall() at syscall+0x196
--- syscall (number 73) ---

Process was X.  rbtree for ptp is empty:

(gdb) print ptp->mdpage.mp_pp.pp_u.rb
$8 = {rbt_root = 0x0, rbt_ops = 0xffffffff8123d2c0 <pmap_rbtree_ops>,
  rbt_minmax = {0x0, 0x0}}

Crash dump available.
>How-To-Repeat:
unsure -- possibly related to new x86 efi runtime logic, which touches pmap, but that seems unlikely because it doesn't have anything to do with pv tracking or ptp data structures
>Fix:
Yes, please!

>Release-Note:

>Audit-Trail:
From: Taylor R Campbell <riastradh@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/57020: kernel diagnostic assertion "!RB_SENTINEL_P(tree->rbt_root)" failed: file "/home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c", line 2261
Date: Sat, 24 Sep 2022 07:09:31 +0000

 (gdb) fr 0
 #0  0xffffffff80239b25 in cpu_reboot (howto=3Dhowto@entry=3D260,
     bootstr=3Dbootstr@entry=3D0x0)
     at /home/riastradh/netbsd/current/src/sys/arch/amd64/amd64/machdep.c:721
 721                     dumpsys();
 (gdb) fr 1
 #1  0xffffffff80ddcf2f in kern_reboot (howto=3Dhowto@entry=3D260,
     bootstr=3Dbootstr@entry=3D0x0)
     at /home/riastradh/netbsd/current/src/sys/kern/kern_reboot.c:73
 73              cpu_reboot(howto, bootstr);
 (gdb) fr 2
 #2  0xffffffff80e246ed in vpanic (
     fmt=3D0xffffffff81397f38 "kernel %sassertion \"%s\" failed: file \"%s\"=
 , line %d ", ap=3Dap@entry=3D0xffffdb909ee09d68)
     at /home/riastradh/netbsd/current/src/sys/kern/subr_prf.c:293
 293             kern_reboot(bootopt, NULL);
 (gdb) fr 3
 #3  0xffffffff80fe87ef in kern_assert (
     fmt=3Dfmt@entry=3D0xffffffff81397f38 "kernel %sassertion \"%s\" failed:=
  file \"%s\", line %d ")
     at /home/riastradh/netbsd/current/src/sys/lib/libkern/kern_assert.c:51
 51              vpanic(fmt, ap);
 (gdb) fr 4
 #4  0xffffffff8059a027 in pmap_lookup_pv (pmap=3Dpmap@entry=3D0xffffc6905d6=
 ffe00,
     ptp=3Dptp@entry=3D0xffffdb802a7cd800, old_pp=3Dold_pp@entry=3D0xffffdb8=
 02fd94158,
     va=3Dva@entry=3D140187557449728)
     at /home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c:2261
 2261            KASSERT(!RB_SENTINEL_P(tree->rbt_root));
 (gdb) fr 5
 #5  0xffffffff8059b712 in pmap_remove_pte (pmap=3Dpmap@entry=3D0xffffc6905d=
 6ffe00,
     ptp=3Dptp@entry=3D0xffffdb802a7cd800, pte=3Dpte@entry=3D0xfffffe3fbffac=
 828,
     va=3Dva@entry=3D140187557449728)
     at /home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c:4263
 4263            pve =3D pmap_lookup_pv(pmap, ptp, pp, va);
 (gdb) fr 6
 #6  0xffffffff8059f2d3 in pmap_remove_ptes (endva=3D140187558477824,
     startva=3D<optimized out>, ptpva=3D<optimized out>, ptp=3D0xffffdb802a7=
 cd800,
     pmap=3D0xffffc6905d6ffe00)
     at /home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c:4183
 4183                    (void)pmap_remove_pte(pmap, ptp, pte, startva);
 (gdb) fr 7
 #7  pmap_remove_locked (eva=3D140187558883328, sva=3D<optimized out>,
     pmap=3D0xffffc6905d6ffe00)
     at /home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c:4336
 4336                    pmap_remove_ptes(pmap, ptp, (vaddr_t)&ptes[pl1_i(va=
 )], va,
 (gdb) fr 8
 #8  pmap_remove (pmap=3D0xffffc6905d6ffe00, sva=3D<optimized out>,
     eva=3D140187558883328)
     at /home/riastradh/netbsd/current/src/sys/arch/x86/x86/pmap.c:4362
 4362            pmap_remove_locked(pmap, sva, eva);
 (gdb) fr 9
 #9  0xffffffff80d7cf37 in uvm_unmap_remove (map=3Dmap@entry=3D0xffffc6905b6=
 3e480,
     start=3D<optimized out>, start@entry=3D140187557310464,
     end=3Dend@entry=3D140187558883328,
     entry_list=3Dentry_list@entry=3D0xffffdb909ee09f68, flags=3Dflags@entry=
 =3D0)
     at /home/riastradh/netbsd/current/src/sys/uvm/uvm_map.c:2336
 2336                            pmap_remove(map->pmap, entry->start, entry-=
 >end);
 (gdb) fr 10
 #10 0xffffffff80d843b6 in sys_munmap (l=3D<optimized out>, uap=3D<optimized=
  out>,
     retval=3D<optimized out>)
     at /home/riastradh/netbsd/current/src/sys/uvm/uvm_mmap.c:576
 576             uvm_unmap_remove(map, addr, addr + size, &dead_entries, 0);
 (gdb) fr 11
 #11 0xffffffff805a536e in sy_call (rval=3D0xffffdb909ee09fb0,
     uap=3D0xffffdb909ee0a000, l=3D0xffffc69061266700,
     sy=3D0xffffffff818867d8 <sysent+1752>)
     at /home/riastradh/netbsd/current/src/sys/sys/syscallvar.h:65
 65              error =3D (*sy->sy_call)(l, uap, rval);
 (gdb) fr 12
 #12 sy_invoke (code=3D73, rval=3D0xffffdb909ee09fb0, uap=3D0xffffdb909ee0a0=
 00,
     l=3D0xffffc69061266700, sy=3D0xffffffff818867d8 <sysent+1752>)
     at /home/riastradh/netbsd/current/src/sys/sys/syscallvar.h:94
 94                      error =3D sy_call(sy, l, uap, rval);
 (gdb) fr 13
 #13 syscall (frame=3D0xffffdb909ee0a000)
     at /home/riastradh/netbsd/current/src/sys/arch/x86/x86/syscall.c:138
 138             error =3D sy_invoke(callp, l, args, rval, code);
 (gdb) fr 14
 #14 0xffffffff8021025d in handle_syscall ()
 (gdb)=20

State-Changed-From-To: open->closed
State-Changed-By: riastradh@NetBSD.org
State-Changed-When: Wed, 17 Apr 2024 19:06:16 +0000
State-Changed-Why:
chalking this up to bad RAM


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2024 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.