call suspend_cpus() under smp_ipi_mtx

Andriy Gapon avg at FreeBSD.org
Sat Apr 6 17:14:48 UTC 2013


on 04/04/2013 20:34 Andriy Gapon said the following:
> This seems to work without problems or any warnings with WITNESS &&
> !WITNESS_SKIPSPIN, but it is very possible that I am not exercising all the
> relevant code paths.
> 
> P.S. Looking through history it seems that in r169391 intr_table_lock
> was changed from a spinlock to a sx lock (later it was changed to the current
> mutex).  The commit message explains why spinlock was not needed, but it doesn't
> seem to say why it was unacceptable:

Hmm, looks like I missed the elephant.
apic_free_vector is called with intr_table_lock held and it calls sched_bind().

I need to re-think all of think from the scratch...

-- 
Andriy Gapon


More information about the freebsd-hackers mailing list