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
