On 22/12/25(Mon) 14:59, Martin Pieuchot wrote:
> "K R" can reproduce a hang on a multiple sockets amd64 that has been
> first reported in a different thread:
>    https://marc.info/?l=openbsd-tech&m=176631121132731&w=2
> 
> The reports seem to always contain a CPU spinning for `tlb_shoot_wait'
> inside pmap_kremove().
> 
> In two these reports, including the one below, instead of a hang, a CPU
> faulted inside Xipi_invlrange_pcid executing the following instruction:
> 
> 00000000000006e0 <Xipi_invlrange_pcid>:
> [...]
>     717:       66 0f 38 82 0c 24       invpcid (%rsp),%rcx

Similar fault:

kernel: protection fault trap, code=0
Stopped at      Xipi_invlrange_pcid+0x37:

ddb{0}> show reg
rdi               0xffffffff82ad6880    kernel_lock
rsi                              0x1
rbp               0xffff800055ee1b70
rbx               0xffff800001d28100
rdx               0xffff800041d7f000
rcx                                0
rax                   0x800000000000
r8                                 0
r9                                 0
r10                                0
r11               0x81df3a8602ca569e
r12               0xffff800055ee1bd0
r13               0xffff800001d28100
r14               0xffffffff82a11ff0    cpu_info_full_primary+0x1ff0
r15                                0
rip               0xffffffff82578717    Xipi_invlrange_pcid+0x37
cs                               0x8
rflags                       0x10007    __ALIGN_SIZE+0xf007
rsp               0xffff800055ee1b10
ss                                 0
Xipi_invlrange_pcid+0x37:

ddb{0}> tr
Xipi_invlrange_pcid() at Xipi_invlrange_pcid+0x37
intr_handler(ffff800055ee1bd0,ffff800001d28100) at intr_handler+0x71
Xintr_ioapic_edge27_untramp() at Xintr_ioapic_edge27_untramp+0x18f
end of kernel
end trace frame: 0x1cfb4b782b0, count: -3

ddb{0}> ps /o
    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
 407487  54688      0         0x3  0x4000000   10  rustc
 397294  54897      0         0x3  0x4000000   14  rustc
 470955  65708      0         0x3  0x4000000   13  rustc
 334248  26786      0         0x3  0x4000000    5  rustc
*310343  26028      0         0x3  0x4000000    0  rustc
 212198  96410      0         0x3  0x4000000    8  rustc
  23365  79502      0  0x10000013          0    4K perl
 516669  89480      0         0x3  0x4000000   15  rustc
  20254  15120      0         0x3  0x4000000    6  rustc
 349282  35624      0     0x14000      0x200    2  softnet0

ddb{0}> ps
   PID     TID   PPID    UID  S       FLAGS  WAIT          COMMAND
 54688  135907  55280      0  3        0x83  fsleep        rustc
 54688  320829  55280      0  3   0x4000083  piperd        rustc
 54688  407487  55280      0  7   0x4000003                rustc
 54688   15548  55280      0  3   0x4000083  fsleep        rustc
 55280  452830  51455      0  3        0x83  wait          rustc
 54897  521097  33989      0  3        0x83  fsleep        rustc
 54897  389406  33989      0  3   0x4000083  piperd        rustc
 54897  397294  33989      0  7   0x4000003                rustc
 54897  175368  33989      0  3   0x4000083  fsleep        rustc
 33989  422360  51455      0  3        0x83  wait          rustc
 65708   63354  83064      0  3        0x83  fsleep        rustc
 65708  355299  83064      0  3   0x4000083  piperd        rustc
 65708   79695  83064      0  3   0x4000083  fsleep        rustc
 65708  314644  83064      0  3   0x4000083  fsleep        rustc
 65708  392661  83064      0  3   0x4000083  fsleep        rustc
 65708  495785  83064      0  3   0x4000083  piperd        rustc
 65708  470955  83064      0  7   0x4000003                rustc
 83064  454726  51455      0  3        0x83  wait          rustc
 26786  344467  35071      0  3        0x83  fsleep        rustc
 26786  349403  35071      0  3   0x4000083  piperd        rustc
 26786  147950  35071      0  3   0x4000083  fsleep        rustc
 26786  335363  35071      0  3   0x4000083  fsleep        rustc
 26786  245714  35071      0  3   0x4000083  fsleep        rustc
 26786  393236  35071      0  3   0x4000083  piperd        rustc
 26786  334248  35071      0  7   0x4000003                rustc
 26028  407393   2147      0  3        0x83  fsleep        rustc
 26028  176067   2147      0  3   0x4000083  piperd        rustc
 26028  234391   2147      0  3   0x4000083  fsleep        rustc
 26028   62448   2147      0  3   0x4000083  fsleep        rustc
 26028   49770   2147      0  3   0x4000083  piperd        rustc
 26028  419393   2147      0  3   0x4000083  fsleep        rustc
*26028  310343   2147      0  7   0x4000003                rustc
 96410  478405  29722      0  3        0x83  fsleep        rustc
 96410  359663  29722      0  3   0x4000083  piperd        rustc
 96410  400538  29722      0  3   0x4000083  fsleep        rustc
 96410  240099  29722      0  3   0x4000083  fsleep        rustc
 96410  158893  29722      0  3   0x4000083  piperd        rustc
 96410  522894  29722      0  3   0x4000083  fsleep        rustc
 96410  212198  29722      0  7   0x4000003                rustc
  2147   35635  51455      0  3        0x83  wait          rustc
 35071  401005  51455      0  3        0x83  wait          rustc
 29722  100754  51455      0  3        0x83  wait          rustc
 79502   23365  94881      0  7  0x10000013                perl
 89480  492448  56519      0  3        0x83  fsleep        rustc
 89480   23920  56519      0  3   0x4000083  piperd        rustc
 89480  207907  56519      0  3   0x4000083  fsleep        rustc
 89480  127270  56519      0  3   0x4000083  fsleep        rustc
 89480  483606  56519      0  3   0x4000083  piperd        rustc
 89480  381513  56519      0  3   0x4000083  fsleep        rustc
 89480  409781  56519      0  3   0x4000083  fsleep        rustc
 89480  162126  56519      0  3   0x4000003  vmmaplk       rustc
 89480   19713  56519      0  3   0x4000083  fsleep        rustc
 89480  225086  56519      0  3   0x4000083  fsleep        rustc
 89480  114437  56519      0  3   0x4000083  fsleep        rustc
 89480  516669  56519      0  7   0x4000003                rustc
 89480  183743  56519      0  3   0x4000003  vmmaplk       rustc
 89480  280602  56519      0  3   0x4000003  vmmaplk       rustc
 56519  279409  51455      0  3        0x83  wait          rustc
 15120   23895  70220      0  3        0x83  fsleep        rustc
 15120  310786  70220      0  3   0x4000083  piperd        rustc
 15120  501181  70220      0  3   0x4000083  fsleep        rustc
 15120  420670  70220      0  3   0x4000083  fsleep        rustc
 15120  123668  70220      0  3   0x4000083  piperd        rustc
 15120  209268  70220      0  3   0x4000083  fsleep        rustc
 15120   20254  70220      0  7   0x4000003                rustc
 15120  251409  70220      0  3   0x4000003  vmmaplk       rustc
 70220   60972  51455      0  3        0x83  wait          rustc
 51455  361282  30803      0  3        0x83  fsleep        cargo
 51455  398749  30803      0  3   0x4000083  piperd        cargo
 51455  511984  30803      0  3   0x4000083  kqread        cargo
 51455  501854  30803      0  3   0x4000083  kqread        cargo
 51455  258538  30803      0  3   0x4000083  kqread        cargo
 51455   83542  30803      0  3   0x4000083  kqread        cargo
 51455   11274  30803      0  3   0x4000083  kqread        cargo
 51455   38509  30803      0  3   0x4000083  kqread        cargo
 51455  101605  30803      0  3   0x4000083  kqread        cargo
 51455   99005  30803      0  3   0x4000083  kqread        cargo
 30803  321185  91099      0  3        0x83  piperd        bootstrap
 91099  120989  79003      0  3        0x83  wait          python3.13
 79003   37051  82238      0  3    0x10008b  sigsusp       make
 82238   76371  32780      0  3  0x2010008b  sigsusp       make
 32780  431734  50813      0  3  0x2010008b  sigsusp       sh
 50813   61592  49098      0  3  0x2010008b  sigsusp       make
 49098  462502  94881      0  3  0x2010008b  sigsusp       sh
 95270  431384      1      0  3    0x100083  ttyin         getty
  6959  325305      1      0  3    0x100083  ttyin         getty
 98660  135510      1      0  3    0x100083  ttyin         getty
 35198   21654      1      0  3    0x100083  ttyin         getty
 23795  223443      1      0  3    0x100083  ttyin         getty
 94881  290596      1      0  3    0x10008b  sigsusp       ksh
 88426  215172      1      0  3    0x100098  kqread        cron
 90201    7888      1     99  3   0x1100090  kqread        sndiod
 33122  514734      1    110  3    0x100090  kqread        sndiod
 30125   74478  82589     95  3   0x1100092  kqread        smtpd
 14010  120242  82589    103  3   0x1100092  kqread        smtpd
 80759  181180  82589     95  3   0x1100092  kqread        smtpd
 13142  428326  82589     95  3    0x100092  kqread        smtpd
 59795  208483  82589     95  3   0x1100092  kqread        smtpd
 73766  153899  82589     95  3   0x1100092  kqread        smtpd
 82589  253788      1      0  3    0x100080  kqread        smtpd
 95443  369358      1      0  3        0x88  kqread        sshd
 14365  281457      1      0  3    0x100080  kqread        ntpd
 46821  516801  43313     83  3    0x100092  kqread        ntpd
 43313  330539      1     83  3   0x1100092  kqread        ntpd
 12539  190425  70332     74  3   0x1100092  bpf           pflogd
 70332   87312      1      0  3        0x80  sbwait        pflogd
 60560  244473  71838     73  3   0x1100090  kqread        syslogd
 71838  504035      1      0  3    0x100082  sbwait        syslogd
 88481  215984      1      0  3    0x100080  kqread        resolvd
 75083  316917  86475     77  3    0x100092  kqread        dhcpleased
 44625   12730  86475     77  3    0x100092  kqread        dhcpleased
 86475  180428      1      0  3        0x80  kqread        dhcpleased
 62406  437453  61737    115  3    0x100092  kqread        slaacd
 71934  261570  61737    115  3    0x100092  kqread        slaacd
 61737  265316      1      0  3    0x100080  kqread        slaacd
 39149  134898      0      0  3     0x14200  bored         smr
 37857  124960      0      0  3     0x14200  pgzero        zerothread
 56401  335601      0      0  3     0x14200  aiodoned      aiodoned
 67082  114287      0      0  3     0x14200  syncer        update
 85990  395862      0      0  3     0x14200  cleaner       cleaner
 57401   15651      0      0  3     0x14200  reaper        reaper
 66476  432284      0      0  3     0x14200  pgdaemon      pagedaemon
 19181  224371      0      0  3     0x14200  bored         wsdisplay0
 39227  332364      0      0  3     0x14200  usbtsk        usbtask
 27176  245944      0      0  3     0x14200  usbatsk       usbatsk
 45477  497400      0      0  3  0x40014200  acpi0         acpi0
 54260    8456      0      0  7  0x40014200                idle31
 51214  380596      0      0  7  0x40014200                idle30
 10542  132558      0      0  7  0x40014200                idle29
 64191  128390      0      0  7  0x40014200                idle28
 45416  498903      0      0  7  0x40014200                idle27
 71458  252444      0      0  7  0x40014200                idle26
 26422  294473      0      0  7  0x40014200                idle25
 15180  359787      0      0  7  0x40014200                idle24
 79379  138864      0      0  7  0x40014200                idle23
 67890  129352      0      0  7  0x40014200                idle22
 23299  404214      0      0  7  0x40014200                idle21
 37681  121781      0      0  7  0x40014200                idle20
 11106  263205      0      0  7  0x40014200                idle19
 76553    6351      0      0  7  0x40014200                idle18
 78638  209898      0      0  7  0x40014200                idle17
 82036  257171      0      0  7  0x40014200                idle16
 52407  237175      0      0  3  0x40014200                idle15
  4564  438375      0      0  3  0x40014200                idle14
 21037  112870      0      0  3  0x40014200                idle13
  9185  414996      0      0  7  0x40014200                idle12
 78701  266313      0      0  7  0x40014200                idle11
 92023  183380      0      0  3  0x40014200                idle10
 35504  461859      0      0  7  0x40014200                idle9
 14565  496134      0      0  3  0x40014200                idle8
 51076  428392      0      0  7  0x40014200                idle7
 21252   33158      0      0  3  0x40014200                idle6
 26178  149706      0      0  3  0x40014200                idle5
 88040  420462      0      0  3  0x40014200                idle4
 22669  364050      0      0  7  0x40014200                idle3
 67097   16788      0      0  3  0x40014200                idle2
 37702   47142      0      0  7  0x40014200                idle1
 33160  287027      0      0  3     0x14200  bored         sensors
 29090  110254      0      0  3     0x14200  bored         softnet7
 65734  211196      0      0  3     0x14200  bored         softnet6
 85046  151498      0      0  3     0x14200  bored         softnet5
 15647   20515      0      0  3     0x14200  bored         softnet4
 40272   11238      0      0  3     0x14200  bored         softnet3
 96561  429307      0      0  3     0x14200  bored         softnet2
 68853   44704      0      0  3     0x14200  bored         softnet1
 35624  349282      0      0  7     0x14200                softnet0
 25850   25522      0      0  3     0x14200  bored         systqmp
 41688  149502      0      0  3     0x14200  bored         systq
 23008  245163      0      0  3     0x14200  tmoslp        softclockmp
 88961  404565      0      0  3  0x40014200  tmoslp        softclock
 19378  218615      0      0  3  0x40014200                idle0
     1  471535      0      0  3        0x82  wait          init
     0       0     -1      0  3     0x10200  scheduler     swapper

ddb{0}> mach ddb 0t2
Stopped at      x86_ipi_db+0x16:        leave

ddb{2}> tr
x86_ipi_db(ffff8000552c3ff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
_kernel_lock() at _kernel_lock+0xb2
rt_clone(ffff800055bdad58,ffff800055bdade8,0) at rt_clone+0x64
rtalloc(ffff800055bdade8,1,0) at rtalloc+0x69
in_arpinput(ffff80000192e048,fffffd805907fe00) at in_arpinput+0x171
arpintr() at arpintr+0xb7
if_netisr(0) at if_netisr+0xd5
taskq_thread(ffff800000037000) at taskq_thread+0x129
end trace frame: 0x0, count: -10

ddb{2}> mach ddb 0t4
Stopped at      x86_ipi_db+0x16:        leave

ddb{4}> tr
x86_ipi_db(ffff8000552d5ff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_kremove(ffff80004fa6f000,10000) at pmap_kremove+0xa2
buf_unmap(fffffd93ff708af8) at buf_unmap+0xbf
buf_map(fffffd942cf48c40) at buf_map+0x147
buf_get(fffffd93eac3f9a0,29,4000) at buf_get+0x360
getblk(fffffd93eac3f9a0,29,4000,0,ffffffffffffffff) at getblk+0x7b
ffs2_balloc(fffffd93dc659700,a4000,4000,fffffda07f7d8af8,0,ffff800056469a18)
at ffs2_balloc+0xe93
ffs_write(ffff800056469a98) at ffs_write+0x21d
VOP_WRITE(fffffd93eac3f9a0,ffff800056469bf8,1,fffffda07f7d8af8) at
VOP_WRITE+0x45
vn_write(fffffd941f135630,ffff800056469bf8,0) at vn_write+0xd8
dofilewritev(ffff800055fd4808,6,ffff800056469bf8,0,ffff800056469c90)
at dofilewritev+0x171
sys_write(ffff800055fd4808,ffff800056469d10,ffff800056469c90) at sys_write+0x55
syscall(ffff800056469d10) at syscall+0x5f9
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x75b42c60f490, count: -16

ddb{4}> mach ddb 0t5
Stopped at      x86_ipi_db+0x16:        leave

ddb{5}> tr
x86_ipi_db(ffff8000552deff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_do_remove(fffffd95c385e8a8,d73f04e4000,d73f04e6000,0) at
pmap_do_remove+0x3d2
uvm_unmap_kill_entry_withlock(fffffd9609cb6308,fffffd93972dd4a0,1) at
uvm_unmap_kill_entry_withlock+0x133
uvm_unmap_remove(fffffd9609cb6308,d73f04e4000,d73f04e6000,ffff800056353d10,0,1,48c2f91c03d12620)
at uvm_unmap_remove+0x32f
sys_munmap(ffff800056004298,ffff800056353e10,ffff800056353d90) at
sys_munmap+0x10b
syscall(ffff800056353e10) at syscall+0x5f9
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0xd7388b0e430, count: -9

ddb{5}> mach ddb 0t6
Stopped at      x86_ipi_db+0x16:        leave

ddb{6}> tr
x86_ipi_db(ffff8000552e7ff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_enter(fffffda07ffdf288,11b0d8ee000,13b816a000,3,22) at pmap_enter+0x662
uvm_fault_lower(ffff80005637ba78,ffff80005637bab0,ffff80005637b9f0) at
uvm_fault_lower+0x255
uvm_fault(fffffd95daee95d0,11b0d8ee000,0,2) at uvm_fault+0x1c5
upageflttrap(ffff80005637bbf0,11b0d8ee000) at upageflttrap+0x6c
usertrap(ffff80005637bbf0) at usertrap+0x28b
recall_trap() at recall_trap+0x8
end of kernel
end trace frame: 0x11a4d69d340, count: -9

ddb{6}> mach ddb 0t8
Stopped at      x86_ipi_db+0x16:        leave

ddb{8}> tr
x86_ipi_db(ffff8000552f9ff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_do_remove(fffffd95c385e2c0,1d7441af000,1d7441b0000,0) at
pmap_do_remove+0x592
uvm_unmap_kill_entry_withlock(fffffd9609cb6e88,fffffd95be7e5660,1) at
uvm_unmap_kill_entry_withlock+0x133
uvm_unmap_remove(fffffd9609cb6e88,1d7441af000,1d7441b0000,ffff800055ec9b50,0,1,48c2f91c03d12620)
at uvm_unmap_remove+0x32f
sys_munmap(ffff800055fd42d8,ffff800055ec9c50,ffff800055ec9bd0) at
sys_munmap+0x10b
syscall(ffff800055ec9c50) at syscall+0x5f9
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x1d8086fcac0, count: -9

ddb{8}> mach ddb 0t10
Stopped at      x86_ipi_db+0x16:        leave

ddb{10}> tr
x86_ipi_db(ffff80005530bff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_enter(fffffd95c385eb30,8dc807fc000,13fa7c7000,3,21) at pmap_enter+0x662
uvm_fault_lower(ffff80005639d008,ffff80005639d040,ffff80005639cf80) at
uvm_fault_lower+0x255
uvm_fault(fffffd95daee92f0,8dc807fc000,0,1) at uvm_fault+0x1c5
upageflttrap(ffff80005639d180,8dc807fc07c) at upageflttrap+0x6c
usertrap(ffff80005639d180) at usertrap+0x28b
recall_trap() at recall_trap+0x8
end of kernel
end trace frame: 0x8dc1fe3c1d0, count: -9

ddb{10}> mach ddb 0t13
Stopped at      x86_ipi_db+0x16:        leave

ddb{13}> tr
x86_ipi_db(ffff800055326ff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_enter(fffffd95c385e1e8,f0f4694f000,13671f1000,3,22) at pmap_enter+0x662
uvm_fault_lower(ffff8000564b9648,ffff8000564b9680,ffff8000564b95c0) at
uvm_fault_lower+0x255
uvm_fault(fffffd9ca04c6a18,f0f4694f000,0,2) at uvm_fault+0x1c5
upageflttrap(ffff8000564b97c0,f0f4694f000) at upageflttrap+0x6c
usertrap(ffff8000564b97c0) at usertrap+0x28b
recall_trap() at recall_trap+0x8
end of kernel
end trace frame: 0xf0f0c8ace80, count: -9

ddb{13}> mach ddb 0t14
Stopped at      x86_ipi_db+0x16:        leave

ddb{14}> tr
x86_ipi_db(ffff80005532fff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_enter(fffffd95c385e398,9060188d000,1a479f6000,1,20) at pmap_enter+0x662
uvm_fault_lower_lookup(ffff8000564bf0c8,ffff8000564bf100,ffff8000564bf040)
at uvm_fault_lower_lookup+0x126
uvm_fault_lower(ffff8000564bf0c8,ffff8000564bf100,ffff8000564bf040) at
uvm_fault_lower+0x5c
uvm_fault(fffffd95daee9b90,9060188e000,0,1) at uvm_fault+0x1c5
upageflttrap(ffff8000564bf240,9060188ebda) at upageflttrap+0x6c
usertrap(ffff8000564bf240) at usertrap+0x28b
recall_trap() at recall_trap+0x8
end of kernel
end trace frame: 0x905b460a970, count: -10

ddb{14}> mach ddb 0t15
Stopped at      x86_ipi_db+0x16:        leave

ddb{15}> tr
x86_ipi_db(ffff800055338ff0) at x86_ipi_db+0x16
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
pmap_do_remove(fffffd95c385e7d0,df10f70d000,df10f70e000,0) at
pmap_do_remove+0x592
uvm_unmap_kill_entry_withlock(fffffd9609cb65e8,fffffd938ea657f8,1) at
uvm_unmap_kill_entry_withlock+0x133
uvm_unmap_remove(fffffd9609cb65e8,df10f70d000,df10f70e000,ffff8000563651c0,0,1,48c2f91c03d12620)
at uvm_unmap_remove+0x32f
sys_munmap(ffff800056005c88,ffff8000563652c0,ffff800056365240) at
sys_munmap+0x10b
syscall(ffff8000563652c0) at syscall+0x5f9
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0xdf1b545df40, count: -9

ddb{15}>

[...]


Reply via email to