Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Jan 2014 20:22:39 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   profiling hangs - quiesce_cpus()
Message-ID:  <CAJ-Vmokkr5aPa_8p1UjwHNRfx87RvBJVDjm4RQV1_XdjJ0iqOg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Here's another fun one.

If the idle thread on a CPU doesn't run, then quiesce_cpus() (and thus
quiesce_all_cpus()) doesn't finish. The td_generation on the
idlethread doesn't get bumped as the idlethread doesn't get run.

Because of this, things like lock profiling just hangs when trying to
get stats or enable it as it does a CPU synchronisation by the above
function calls and they don't ever return.

Any ideas? It makes it a bit annoying to do fine grained lock
contention profiling when I'm doing this. :-)

Thanks!




-a



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