看板 DFBSD_kernel 關於我們 聯絡資訊
: : Why does this problem not appear under FreeBSD? : :It does happen in FreeBSD, but you have to catch it at the right :time. Since FreeBSD is effectively single-threaded with their :mutual exclusion locks, this happens much less in FreeBSD. However :it also means when we both release the big kernel lock, we'll be :able to scale to much higher number of processors because we're :multi-threaded instead of single-threaded in the kernel. : : Is it because of the multi-threaded kernel? : :Yes. It could also be partially hidden by FreeBSD's priority mechanism, but I suspect the primary reason is simply the fact that their network is 'interrupt driven', i.e. not multi-threaded but more multi-interrupt-driven, so it is very likely that any pending packets will have been processed by the time mainline kernel code tries to free() the interface structure. I suspect the issue will come out of the woodwork for them too at some point. -Matt Matthew Dillon <dillon@backplane.com>