On 29/08/25(Fri) 19:12, Alexander Bluhm wrote:
> Hi,
> 
> One of my i386 test machines crashed during make build.  Kernel is
> GENERIC.MP built from current sources.
> 
> panic: uvm_fault(0xd59b2424, 0xcf800000, 0, 1) -> e
> Stopped at      db_enter+0x4:   popl    %ebp
>     TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
> *435945  40779     21         0x2          0    5  llvm-tblgen
>  212835  13904     21         0x2          0    3  llvm-tblgen
>  150086  44694     21         0x2          0   11  llvm-tblgen
>  332575  10539     21         0x2          0   10  llvm-tblgen
>  385473  77182     21         0x2          0    8  llvm-tblgen
>  104320  19436      0     0x14000      0x200    1  aiodoned
> db_enter() at db_enter+0x4
> panic(d0cbc6b7) at panic+0x7a
> kpageflttrap(f86b5c94,cf800000) at kpageflttrap+0x133
> trap(f86b5c94) at trap+0x255
> calltrap() at calltrap+0xc
> pmap_remove_ptes_pae(d0f6fda0,0,cf800000,0,1000,0,f86b5d1c) at 
> pmap_remove_ptes_pae+0x4f
> pmap_do_remove_pae(d0f6fda0,0,1000,0) at pmap_do_remove_pae+0x120
> pmap_remove(d0f6fda0,0,1000) at pmap_remove+0x18
> uvm_pagermapout(0,1) at uvm_pagermapout+0x1a

This is very wrong.  That means `kva' is 0.  The only way this can
happen is if pmap_enter(9) failed in uvm_pagermapin().

Using pmap_kenter_pa(9) would not only prevent this issue, it would also
speed up memory recovery.  Sadly we had to revert such change because on
Landisk it doesn't handle conflicting cache aliases like pmap_enter(9).
Could that be fixed?

> uvn_io(d655b5b4,f86b5de8,1,202,0) at uvn_io+0x289
> uvn_get(d655b5b4,4e000,0,f86b5e40,f86b5e3c,0,1,0) at uvn_get+0x16d
> uvm_fault_lower_io(f86b5ee0,f86b5eb4,f86b5e84,f86b5e80) at 
> uvm_fault_lower_io+0x221
> uvm_fault_lower(f86b5ee0,f86b5eb4,f86b5efc) at uvm_fault_lower+0x283
> uvm_fault(d59b2424,44e000,0,1) at uvm_fault+0x1a1
> https://www.openbsd.org/ddb.html describes the minimum info required in bug
> reports.  Insufficient info makes it difficult to find and fix bugs.
> 
> ddb{5}> x/s version
> version:        OpenBSD 7.7-current (GENERIC.MP) #0: Thu Aug 28 23:09:35 CEST 
> 2025\012    
> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC.MP\012
> 
> ddb{5}> show panic
> *cpu5: uvm_fault(0xd59b2424, 0xcf800000, 0, 1) -> e
> 
> ddb{5}> trace
> db_enter() at db_enter+0x4
> panic(d0cbc6b7) at panic+0x7a
> kpageflttrap(f86b5c94,cf800000) at kpageflttrap+0x133
> trap(f86b5c94) at trap+0x255
> calltrap() at calltrap+0xc
> pmap_remove_ptes_pae(d0f6fda0,0,cf800000,0,1000,0,f86b5d1c) at 
> pmap_remove_ptes_pae+0x4f
> pmap_do_remove_pae(d0f6fda0,0,1000,0) at pmap_do_remove_pae+0x120
> pmap_remove(d0f6fda0,0,1000) at pmap_remove+0x18
> uvm_pagermapout(0,1) at uvm_pagermapout+0x1a
> uvn_io(d655b5b4,f86b5de8,1,202,0) at uvn_io+0x289
> uvn_get(d655b5b4,4e000,0,f86b5e40,f86b5e3c,0,1,0) at uvn_get+0x16d
> uvm_fault_lower_io(f86b5ee0,f86b5eb4,f86b5e84,f86b5e80) at 
> uvm_fault_lower_io+0x221
> uvm_fault_lower(f86b5ee0,f86b5eb4,f86b5efc) at uvm_fault_lower+0x283
> uvm_fault(d59b2424,44e000,0,1) at uvm_fault+0x1a1
> upageflttrap(f86b5ff0,44ea0d) at upageflttrap+0x55
> trap(f86b5ff0) at trap+0x1e9
> calltrap() at calltrap+0xc
> end of kernel
> 
> ddb{5}> show register
> ds                  0x10
> es                  0x10
> fs                  0x20
> gs                     0
> edi           0xd0cbc6b7        gen12_xcs_offsets+0xf1e8
> esi                    0
> ebp           0xf86b5c0c
> ebx           0xf654f618
> edx                 0x10
> ecx           0xa83af42b
> eax                 0x34
> eip           0xd041c974        db_enter+0x4
> cs                   0x8
> eflags             0x202
> esp           0xf86b5c0c
> ss                  0x10
> db_enter+0x4:   popl    %ebp
> 
> ddb{5}> ps
>    PID     TID   PPID    UID  S       FLAGS  WAIT          COMMAND
> *40779  435945  23897     21  7         0x2                llvm-tblgen
>  23897  138229  57914     21  3    0x10008a  sigsusp       sh
>  49931  369222  57914     21  3         0x2  biowait       llvm-tblgen
>  38357    6862  57914     21  3         0x2  flt_pmfail1   llvm-tblgen
>  32101  460407   9912     21  3         0x2  flt_pmfail1   llvm-tblgen
>    756  422844  57914     21  3         0x2  flt_noram3    llvm-tblgen
>  13904  212835  57914     21  7         0x2                llvm-tblgen
>  69850   77517  57914     21  3         0x2  flt_noram1    llvm-tblgen
>  27460  162562  57914     21  3         0x2  biowait       llvm-tblgen
>  44694  150086  57914     21  7         0x2                llvm-tblgen
>  24447  263270  57914     21  3         0x2  flt_pmfail1   llvm-tblgen
>   9912  283403  57914     21  3    0x10008a  sigsusp       sh
>  10539  332575  57914     21  7         0x2                llvm-tblgen
>  77182  385473  57914     21  7         0x2                llvm-tblgen
>  99319  384756  57914     21  3         0x2  biowait       llvm-tblgen
>  57914   20160  25644     21  3    0x10008a  sigsusp       make
>  25644  438306  89227     21  3    0x10008a  sigsusp       sh
>  89227  126930  20598     21  3    0x10008a  sigsusp       make
>  20598   83226  45856     21  3    0x10008a  sigsusp       sh
>  45856   95319    508     21  3    0x10008a  sigsusp       make
>    508  515009   8199     21  3    0x10008a  sigsusp       sh
>   8199  521600  50234     21  3    0x10008a  sigsusp       make
>  50234  308362  79552     21  3    0x10008a  sigsusp       sh
>  79552  277314  18529     21  3    0x10008a  sigsusp       make
>  18529  406475  52080      0  3    0x10008a  sigsusp       sh
>  52080  388122  97675      0  3    0x10008a  sigsusp       make
>  97675  389755  63098      0  3    0x10008a  sigsusp       make
>  63098  420707  83275      0  3    0x10008a  sigsusp       ksh
>  83275  318844  44263      0  3        0x98  kqread        sshd-session
>  44263  187234  11977      0  3        0x92  kqread        sshd-session
>  42159  283177      1      0  3    0x100080  sbwait        nonxt-reflect
>  98501  362680      1      0  3    0x100080  sbwait        nonxt-reflect
>  87574   17810      1      0  3    0x100080  sbwait        nonxt-reflect
>  53851  466456      1      0  3    0x100080  sbwait        nonxt-reflect
>  34512  263570      1      0  3    0x100080  sbwait        nonxt-reflect
>   3236   23468      1      0  3    0x100080  sbwait        nonxt-reflect
>   4691  182606      1      0  3    0x100080  sbwait        nonxt-reflect
>  60428  462552      1      0  3    0x100080  sbwait        nonxt-reflect
>  31133  127314      1      0  3    0x100080  sbwait        nonxt-reflect
>  58086  438079      1      0  3    0x100080  sbwait        nonxt-reflect
>  59196  207657      1      0  3    0x100080  sbwait        nonxt-reflect
>  31569  221372      1      0  3    0x100080  sbwait        nonxt-reflect
>  60078  510051      1      0  3    0x100080  sbwait        nonxt-reflect
>  18126  216430      1      0  3    0x100080  sbwait        nonxt-reflect
>  56562  400324      1      0  3    0x100080  sbwait        nonxt-reflect
>  12636  119878      1      0  3    0x100080  sbwait        nonxt-reflect
>  45572  441128      1      0  3    0x100080  sbwait        nonxt-reflect
>  98692  251547      1      0  3    0x100080  sbwait        nonxt-reflect
>  39639   82843      1      0  3    0x100080  sbwait        nonxt-reflect
>  45143  240736      1      0  3    0x100080  sbwait        nonxt-reflect
>  29376  326811      1      0  3    0x100083  ttyin         getty
>  12496  268639      1      0  3    0x100083  ttyin         getty
>  56108  205644      1      0  3    0x100083  ttyin         getty
>  76205  314878      1      0  3    0x100083  ttyin         getty
>  64883   66456      1      0  3    0x100083  ttyin         getty
>  13267  414032      1      0  3    0x100083  ttyin         getty
>  66082   58473      1      0  3    0x100098  kqread        cron
>    979  469547      1     99  3   0x1100090  kqread        sndiod
>  37224   45166      1    110  3    0x100090  kqread        sndiod
>   1699  508507      1      0  3    0x100090  kqread        inetd
>  32334  119708  49761     95  3   0x1100092  kqread        smtpd
>  30066  319295  49761    103  3   0x1100092  kqread        smtpd
>  67930  412470  49761     95  3   0x1100092  kqread        smtpd
>  38316   51104  49761     95  3    0x100092  kqread        smtpd
>  15445  172316  49761     95  3   0x1100092  kqread        smtpd
>  29803   57293  49761     95  3   0x1100092  kqread        smtpd
>  49761  170728      1      0  3    0x100080  kqread        smtpd
>  65427  125797   7088     91  3        0x92  kqread        snmpd_metrics
>  33807  237916   7088     91  3   0x1100092  kqread        snmpd
>   7088  314858      1      0  3    0x100080  kqread        snmpd
>  11977  391166      1      0  3        0x88  kqread        sshd
>  81560  144544      0      0  3     0x14280  nfsidl        nfsio
>  21235  235053      0      0  3     0x14280  nfsidl        nfsio
>  41069  502268      0      0  3     0x14280  nfsidl        nfsio
>   9696   32546      0      0  3     0x14280  nfsidl        nfsio
>  37310  340373      1      0  3    0x100080  kqread        ntpd
>  15526  180301  17877     83  3    0x100092  kqread        ntpd
>  17877   16264      1     83  3   0x1100092  kqread        ntpd
>  38842  364068  40769     73  3   0x1100090  kqread        syslogd
>  40769    7485      1      0  3    0x100082  sbwait        syslogd
>  20703  192686  94038     77  3    0x100092  kqread        dhcpleased
>  52744   11081  94038     77  3    0x100092  kqread        dhcpleased
>  94038  201224      1      0  3        0x80  kqread        dhcpleased
>  18957   15911  55690    115  3    0x100092  kqread        slaacd
>  34057  360563  55690    115  3    0x100092  kqread        slaacd
>  55690  212231      1      0  3    0x100080  kqread        slaacd
>   3259  201082      0      0  3     0x14200  bored         smr
>  78185  495270      0      0  3     0x14200  pgzero        zerothread
>  19436  104320      0      0  7     0x14200                aiodoned
>   3799  200317      0      0  3     0x14200  syncer        update
>  82810  143382      0      0  3     0x14200  cleaner       cleaner
>  71366  112767      0      0  3     0x14200  reaper        reaper
>  81657  266197      0      0  3     0x14200  oom           pagedaemon
>  58838  404398      0      0  3     0x14200  bored         wsdisplay0
>  96573  343657      0      0  3     0x14200  usbtsk        usbtask
>  78921  150982      0      0  3     0x14200  usbatsk       usbatsk
>  35559  168356      0      0  3     0x14200  bored         sensors
>  10278  273080      0      0  3  0x40014200  acpi0         acpi0
>  76715  268449      0      0  3  0x40014200                idle11
>  53940  130888      0      0  3  0x40014200                idle10
>  83736  220735      0      0  7  0x40014200                idle9
>  92316  378080      0      0  3  0x40014200                idle8
>  81561  469392      0      0  7  0x40014200                idle7
>  61983  171632      0      0  7  0x40014200                idle6
>  89495  231645      0      0  3  0x40014200                idle5
>  82249  218984      0      0  7  0x40014200                idle4
>  16639  172584      0      0  3  0x40014200                idle3
>  83238  353066      0      0  7  0x40014200                idle2
>  48908  439575      0      0  3  0x40014200                idle1
>  93383   34611      0      0  3     0x14200  bored         softnet7
>  57507  510162      0      0  3     0x14200  bored         softnet6
>  97429  515255      0      0  3     0x14200  bored         softnet5
>    425  242474      0      0  3     0x14200  bored         softnet4
>    271  189633      0      0  3     0x14200  bored         softnet3
>  61916  381610      0      0  3     0x14200  bored         softnet2
>  55504   51393      0      0  3     0x14200  bored         softnet1
>  68091   47725      0      0  3     0x14200  bored         softnet0
>    761  297576      0      0  3     0x14200  bored         systqmp
>  39354  185730      0      0  3     0x14200  bored         systq
>  99394  433067      0      0  3     0x14200  tmoslp        softclockmp
>  47009  235670      0      0  3  0x40014200  tmoslp        softclock
>  44996  301820      0      0  7  0x40014200                idle0
>  31097  447468      0      0  3     0x14200  kmalloc       kmthread
>      1  362302      0      0  3        0x82  wait          init
>      0       0     -1      0  3     0x10200  scheduler     swapper
> 
> ddb{5}> show uvm
> Current UVM status:
>   pagesize=4096 (0x1000), pagemask=0xfff, pageshift=12
>   765702 VM pages: 457558 active, 219745 inactive, 1 wired, 5 free (4 zero)
>   freemin=25523, free-target=34030, inactive-target=225690, wired-max=255234
>   faults=158583215, traps=160380218, intrs=3521274, ctxswitch=45698214 
> fpuswitch=378748
>   softint=6919460, syscalls=184223423, kmapent=13
>   fault counts:
>     noram=193025, noanon=0, noamap=0, pgwait=0, pgrele=0
>     relocks=437348(5254), upgrades=0(0) anget(retries)=84112012(55721), 
> amapcopy=8611362
>     neighbor anon/obj pg=6070098/112857440, gets(lock/unlock)=39637959/389216
>     cases: anon=82202014, anoncow=1909994, obj=38738890, prcopy=891480, 
> przero=34840850
>   daemon and swap counts:
>     woke=24835, revs=24829, scans=6541847, obscans=129078, anscans=5170920
>     busy=0, freed=982448, reactivate=1241740, deactivate=2743741
>     pageouts=178607, pending=55260, nswget=42090
>     nswapdev=1
>     swpages=849685, swpginuse=829724, swpgonly=811492 paging=11
>   kernel pointers:
>     objs(kern)=0xd0fb8804
> 
> ddb{5}> x/i pmap_remove_ptes_pae+4f
> pmap_remove_ptes_pae+0x4f:      movl    0(%edi),%eax
> 
> /usr/src/sys/arch/i386/i386/pmapae.c:1158
>     2cd9:       39 d6                   cmp    %edx,%esi
>     2cdb:       0f 83 c7 00 00 00       jae    2da8 
> <pmap_remove_ptes_pae+0x108>
>     2ce1:       85 c9                   test   %ecx,%ecx
>     2ce3:       74 0a                   je     2cef 
> <pmap_remove_ptes_pae+0x4f>
>     2ce5:       83 79 30 02             cmpl   $0x2,0x30(%ecx)
>     2ce9:       0f 82 b9 00 00 00       jb     2da8 
> <pmap_remove_ptes_pae+0x108>
> /usr/src/sys/arch/i386/i386/pmapae.c:1160
> *   2cef:       8b 07                   mov    (%edi),%eax
>     2cf1:       a8 01                   test   $0x1,%al
>     2cf3:       74 db                   je     2cd0 
> <pmap_remove_ptes_pae+0x30>
>     2cf5:       c1 e8 09                shr    $0x9,%eax
>     2cf8:       23 45 1c                and    0x1c(%ebp),%eax
> /usr/src/sys/arch/i386/i386/pmapae.c:1163
> 
>   1158          for (/*null*/; startva < endva && (ptp == NULL || 
> ptp->wire_count > 1)
>   1159                               ; pte++, startva += NBPG) {
> * 1160                  if (!pmap_valid_entry(*pte))
>   1161                          continue;                       /* VA not 
> mapped */
>   1162
>   1163                  if ((flags & PMAP_REMOVE_SKIPWIRED) && (*pte & PG_W))
>   1164                          continue;
> 
> ddb{5}> show struct pmap 0xd0f6fda0
> struct pmap at 0xd0f6fda0 (164 bytes) {pm_pdidx = 
> [19279873,19283969,19288065,19292161], pm_pdidx_intel = 
> [77713409,77717505,77721601,77725697], pm_mtx = {mtx_owner = (void *)0x0, 
> mtx_wantipl = 128, mtx_oldipl = 0}, pm_apte_mtx = {mtx_owner = (void *)0x0, 
> mtx_wantipl = 144, mtx_oldipl = 144}, pm_pdirpa = 16186784, pm_pdirpa_intel = 
> 16186816, pm_pdir = 3508940800, pm_pdir_intel = 4132618240, pm_pdirsize = 
> 16384, pm_obj = {vmobjlock = (struct rwlock *)0x0, pgops = (const 
> uvm_pagerops *)0xd0d787ac, memt = {rbh_root = {rbt_root = (struct rb_entry 
> *)0xd4c58f84}}, uo_npages = 523, uo_refs = 5}, pm_list = {le_next = (struct 
> pmap *)0x0, le_prev = 0x0}, pm_ptphint = (struct vm_page *)0xd4c585fc, 
> pm_stats = {resident_count = 5646, wired_count = 5140}, pm_hiexec = 0, 
> pm_flags = 0, pm_codeseg = {sd_lolimit = 0, sd_lobase = 0, sd_type = 0, 
> sd_dpl = 0, sd_p = 0, sd_hilimit = 0, sd_xx = 0, sd_def32 = 0, sd_gran = 0, 
> sd_hibase = 0}}
> 
> bluhm
> 


Reply via email to