Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 06 Apr 2013 20:14:44 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-hackers@FreeBSD.org, freebsd-acpi@FreeBSD.org, FreeBSD Current <freebsd-current@FreeBSD.org>
Subject:   Re: call suspend_cpus() under smp_ipi_mtx
Message-ID:  <51605804.8080906@FreeBSD.org>
In-Reply-To: <515DB988.1080100@FreeBSD.org>
References:  <5114AB2E.2050909@FreeBSD.org> <514D7A82.9000105@FreeBSD.org> <201304011052.18370.jhb@freebsd.org> <515DB988.1080100@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51605804.8080906>