tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

MP race conditions in autoconf

Working in the matt-nb5-mips64 branch (based on 5.0_STABLE), I ran into 
a couple MP problems in subr_autoconf.c:

since configure2() starts secondary processors before kicking off 
interrupt config threads, config_interrupts_thread() (and everything it calls) 
need to me made MP safe.  

first, the deferred_config_queue and interrupt_config_queue need locking
to prevent the tail queues from getting munged.

second, some (all?) of the dc_func calls go to (driver) functions that
are not MP safe.

I witnessed these failures on a RMI XLS-616 based MIPS MP system.
I committed fixes to subr_autoconf.c that seem to fix those problems:

Has anyone else run into this type of problem on other MP platforms?

Does the fix look reasonable?



Home | Main Index | Thread Index | Old Index