After upgrading an OpenBSD arm64 (pine64+ board) Go builder to 7.1, the
following has been triggered twice (once every couple of days):

panic: kernel diagnostic assertion "kn->kn_kq == kq" failed: file 
"/usr/src/sys/kern/kern_event.c", line 1811
Stopped at      panic+0x160:    cmp     w21, #0x0
    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
 152330  84924   1001         0x3  0x4000000    3  http.test
*427942  85055   1001         0x3  0x4000000    1  net.test
 460437  53928      0     0x14000      0x200    2  tztq
 197440  95098      0     0x14000      0x200    0  softnet
db_enter() at panic+0x15c
panic() at __assert+0x24
panic() at knote_remove+0x2c4
knote_remove() at knote_fdclose+0x88
knote_fdclose() at fdrelease+0x94
fdrelease() at svc_handler+0x2d4
svc_handler() at do_el0_sync+0xa0

This was stable with 7.0, hence seems to be a regression between 7.0 and 7.1
(presumably unlocking related).

ddb{3}> machine ddbcpu 0                 
Stopped at      ampintc_ipi_ddb+0x1c:   ldr     x15, [sp,#16]
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at ampintc_irq_handler+0x1c4
ampintc_irq_handler() at arm_cpu_irq+0x30
arm_cpu_irq() at handle_el1h_irq+0x6c 
handle_el1h_irq() at msleep+0x10c     
msleep() at msleep+0x10c
msleep() at taskq_next_work+0x64                                                
                                  
ddb{0}> trace                     
db_enter() at ampintc_ipi_ddb+0x18            
ampintc_ipi_ddb() at ampintc_irq_handler+0x1c4
ampintc_irq_handler() at arm_cpu_irq+0x30
arm_cpu_irq() at handle_el1h_irq+0x6c
handle_el1h_irq() at msleep+0x10c
msleep() at msleep+0x10c
msleep() at taskq_next_work+0x64  
taskq_next_work() at taskq_thread+0x5c        
taskq_thread() at proc_trampoline+0x10   

ddb{0}> machine ddbcpu 1            
Stopped at      panic+0x160:    cmp     w21, #0x0
db_enter() at panic+0x15c
panic() at __assert+0x24
panic() at knote_remove+0x2c4
knote_remove() at knote_fdclose+0x88
knote_fdclose() at fdrelease+0x94
fdrelease() at svc_handler+0x2d4
svc_handler() at do_el0_sync+0xa0
ddb{1}> trace
db_enter() at panic+0x15c
panic() at __assert+0x24
panic() at knote_remove+0x2c4
knote_remove() at knote_fdclose+0x88
knote_fdclose() at fdrelease+0x94
fdrelease() at svc_handler+0x2d4
svc_handler() at do_el0_sync+0xa0
do_el0_sync() at handle_el0_sync+0x74
handle_el0_sync() at 0x41ca29af8
--- trap ---

ddb{1}> machine ddbcpu 2
Stopped at      ampintc_ipi_ddb+0x1c:   ldr     x15, [sp,#16]
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at ampintc_irq_handler+0x1c4
ampintc_irq_handler() at arm_cpu_irq+0x30
arm_cpu_irq() at handle_el1h_irq+0x6c
handle_el1h_irq() at msleep+0x12c
msleep() at msleep+0x12c
msleep() at taskq_next_work+0x64
ddb{2}> trace
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at ampintc_irq_handler+0x1c4
ampintc_irq_handler() at arm_cpu_irq+0x30
arm_cpu_irq() at handle_el1h_irq+0x6c
handle_el1h_irq() at msleep+0x12c
msleep() at msleep+0x12c
msleep() at taskq_next_work+0x64
taskq_next_work() at taskq_thread+0x5c
taskq_thread() at proc_trampoline+0x10

ddb{2}> machine ddbcpu 3
Stopped at      ampintc_ipi_ddb+0x1c:   ldr     x15, [sp,#16]
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at ampintc_irq_handler+0x1c4
ampintc_irq_handler() at arm_cpu_irq+0x30
arm_cpu_irq() at handle_el0_irq+0x74
handle_el0_irq() at $d.0+0x160514
--- interrupt ---
ddb{3}> trace
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at ampintc_irq_handler+0x1c4
ampintc_irq_handler() at arm_cpu_irq+0x30
arm_cpu_irq() at handle_el0_irq+0x74
handle_el0_irq() at $d.0+0x160514
--- interrupt ---

Reply via email to