On Wed, Mar 5, 2008 at 3:37 AM, Matthew Dillon <[EMAIL PROTECTED]> wrote: > :Hi, > > > : > :Following patch parallelizes ifnet.if_addrhead accessing > :Change ifnet.if_addrhead is serialized by netisr0 > : > :Please review it: > :http://leaf.dragonflybsd.org/~sephe/ifaddr.diff5 > : > :I have run this patch on all of my boxes for ~one month, so it should > :be safe to test, if your box is not two miles away from you :) > : > :Best Regards, > :sephe > > It looks reasonable. I'm not sure if you are going to need a > critical section inside ifa_iflink() and ifa_ifunlink(). > > I'm a tad worried about ifa_iflink/unlink calls being made from > interrupt threads. It should work even with a migration race. > > The overhead will be nasty but those calls aren't in the critical > path so as long as it works I think it is fine.
OK, it is done, please review it: http://leaf.dragonflybsd.org/~sephe/ifaddr.diff8 Some additional changes: - Add SI_SUB_PRE_DRIVERS so all ifaddr threads are ready before NIC driver is attaching - Move netisr_init to SI_SUB_PRE_DRIVERS, so ifaddr threads could register themselves for port syncing Best Regards, sephe -- Live Free or Die
