On 10.8.2022. 0:49, Vitaliy Makkoveev wrote:
> That's strange, because after we the only timeout handlers can reschedule
> pflow_output_process to run, but they have no sleep points. However the
> task handler still running after taskq_del_barrier(9).
> 
> Does this help?

Hi,

this diff doesn't help. Here's output


r620-1# ifconfig pflow0 destroy
kernel: protection fault trap, code=0
Stopped at      sblock+0x35:    movq    0x8(%rax),%rax

ddb{4}> show panic
the kernel did not panic

ddb{4}> trace
sblock(fffffd83b34818e8,fffffd83b3481a10,1) at sblock+0x35
sosend(fffffd83b34818e8,fffffd80cd292d00,0,fffffd80a3b4e200,0,0) at
sosend+0x163
pflow_output_process(ffff8000008ca000) at pflow_output_process+0x67
taskq_thread(ffff800000030100) at taskq_thread+0x100
end trace frame: 0x0, count: -4
ddb{4}>

ddb{4}> show reg
rdi               0xfffffd83b34818e8
rsi               0xfffffd83b3481a10
rbp               0xffff800022d66160
rbx                            0x501
rdx                              0x1
rcx               0xffff8000ffffe004
rax               0x12197a31cb9f19c7
r8                               0x1
r9                0xffffffff821f4240    rw_ops+0x10
r10               0xffffffffffffffff
r11               0xd76a5b19999e376e
r12                                0
r13                              0x1
r14               0xfffffd83b3481a60
r15               0xfffffd83b34818e8
rip               0xffffffff8188cbf5    sblock+0x35
cs                               0x8
rflags                       0x10246    __ALIGN_SIZE+0xf246
rsp               0xffff800022d66110
ss                              0x10
sblock+0x35:    movq    0x8(%rax),%rax
ddb{4}>

ddb{4}> ps
   PID     TID   PPID    UID  S       FLAGS  WAIT          COMMAND
 57222   30708  52109      0  7         0x3                ifconfig
 52109  165317      1      0  3    0x10008b  sigsusp       ksh
 49245  507782      1      0  3    0x100098  kqread        cron
  6217   82510  20690     95  3   0x1100092  kqread        smtpd
 82506  376421  20690    103  3   0x1100092  kqread        smtpd
 82613  290075  20690     95  3   0x1100092  kqread        smtpd
  4815  308602  20690     95  3    0x100092  kqread        smtpd
 12941  472567  20690     95  3   0x1100092  kqread        smtpd
 23744  467673  20690     95  3   0x1100092  kqread        smtpd
 20690   84561      1      0  3    0x100080  kqread        smtpd
 76380   94838      1      0  3        0x88  kqread        sshd
 86280  347923      1      0  3    0x100080  kqread        ntpd
 14359  243801  59957     83  3    0x100092  kqread        ntpd
 59957  263943      1     83  3   0x1100092  kqread        ntpd
 52207  492049  48201     73  3   0x1100090  kqread        syslogd
 48201  424791      1      0  3    0x100082  netio         syslogd
 25023  493390      0      0  3     0x14200  bored         smr
 49475  241893      0      0  3     0x14200  pgzero        zerothread
 35733  465768      0      0  3     0x14200  aiodoned      aiodoned
 44819  211641      0      0  3     0x14200  syncer        update
 12802  139258      0      0  3     0x14200  cleaner       cleaner
 77815   78998      0      0  3     0x14200  reaper        reaper
 97772  253526      0      0  3     0x14200  pgdaemon      pagedaemon
 20567  420970      0      0  3     0x14200  usbtsk        usbtask
 81765  348189      0      0  3     0x14200  usbatsk       usbatsk
 58744  470980      0      0  3  0x40014200  acpi0         acpi0
 42832   77958      0      0  7  0x40014200                idle5
 40468  474721      0      0  3  0x40014200                idle4
 98228  394491      0      0  7  0x40014200                idle3
 13842   58745      0      0  3  0x40014200                idle2
 87447   45776      0      0  7  0x40014200                idle1
 14520  516279      0      0  3     0x14200  bored         sensors
 20057  421224      0      0  3     0x14200  netlock       softnet
 68120    4487      0      0  3     0x14200  netlock       softnet
*15557  167519      0      0  7     0x14200                softnet
 57471  116257      0      0  3     0x14200  netlock       softnet
 21894  328074      0      0  3     0x14200  bored         systqmp
 36959   61819      0      0  3     0x14200  bored         systq
 29261  452739      0      0  3  0x40014200  bored         softclock
 26163  383919      0      0  7  0x40014200                idle0
     1   14140      0      0  3        0x82  wait          init
     0       0     -1      0  3     0x10200  scheduler     swapper
ddb{4}>

ddb{4}> ps /o
    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
  30708  57222      0         0x3          0    2  ifconfig
*167519  15557      0     0x14000      0x200    4K softnet

ddb{4}> trace /t 0t30708
sleep_finish(ffff800022e25200,1) at sleep_finish+0xfe
rw_enter(ffffffff822c58d8,1) at rw_enter+0x1cb
if_detach(ffff8000008ca000) at if_detach+0xda
pflow_clone_destroy(ffff8000008ca000) at pflow_clone_destroy+0x1a0
if_clone_destroy(ffff800022e253c0) at if_clone_destroy+0xd9
soo_ioctl(fffffd83afc09e90,80206979,ffff800022e253c0,ffff800022de8d20)
at soo_ioctl+0x161
sys_ioctl(ffff800022de8d20,ffff800022e254d0,ffff800022e25530) at
sys_ioctl+0x2c4
syscall(ffff800022e255a0) at syscall+0x384
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7f7ffffc8a80, count: -9

ddb{4}> trace /t 0t167519
alltraps_kern_meltdown() at alltraps_kern_meltdown+0x7b
sblock(fffffd83b34818e8,fffffd83b3481a10,1) at sblock+0x35
sosend(fffffd83b34818e8,fffffd80cd292d00,0,fffffd80a3b4e200,0,0) at
sosend+0x163
pflow_output_process(ffff8000008ca000) at pflow_output_process+0x67
taskq_thread(ffff800000030100) at taskq_thread+0x100
end trace frame: 0x0, count: -5
ddb{4}>

Reply via email to