On Tue, Jun 29, 2021 at 10:39:14PM +0200, Hrvoje Popovski wrote:
> with this diff without any traffic through aggr if i destroy aggr
> interface i'm getting log below ... log can't be reproduced after first
> destroy.. you need to reboot box and then destroy aggr ...
> i can't reproduce it with kernel from snapshot ..

Thanks for testing.

- snapshot does not contain witness, so not log there
- this witness log is unrelated to my splnet diff

But it is interresting anyway.  Grabbing the netlock when running
in a timeout proc is done often.  This seems the correct order.
Is calling timeout_del_barrier() not allowed when holding the netlock
then?

bluhm

> r620-1# ifconfig aggr0 destroy
> witness: lock order reversal:
>  1st 0xffffffff821442a8 netlock (netlock)
>  2nd 0xffffffff8211d2e8 timeout (timeout)
> lock order "timeout"(rwlock) -> "netlock"(rwlock) first seen at:
> #0  rw_enter_write+0x43
> #1  mld6_fasttimeo+0x14
> #2  pffasttimo+0x97
> #3  timeout_run+0x93
> #4  softclock_thread+0x11d
> #5  proc_trampoline+0x1c
> lock order "netlock"(rwlock) -> "timeout"(rwlock) first seen at:
> #0  timeout_del_barrier+0x41
> #1  aggr_p_dtor+0x17b
> #2  aggr_clone_destroy+0x91
> #3  if_clone_destroy+0xd8
> #4  ifioctl+0x1d2
> #5  soo_ioctl+0x167
> #6  sys_ioctl+0x2c4
> #7  syscall+0x3b9
> #8  Xsyscall+0x128
> 
> 
> i will play with mac addresses and if if anything comes up, i'll let you
> know

Reply via email to