Just Launched: You can now import projects and releases from Google Code onto SourceForge
We are excited to release new functionality to enable a 1-click import from Google Code onto the Allura platform on SourceForge. You can import tickets, wikis, source, releases, and more with a few simple steps. Read More
From: Will M. Farr <farr@MIT.EDU> - 2005-05-02 19:37:44
I am running SBCL 0.9.0.1 on Mac OS X 10.3.9, and I'm trying to use
sb-sprof to profile parts of an n-body code (heavy floating point
numerics). Occasionally, if a run is *very* short (i.e. a few seconds)
sb-sprof works, but the resulting profiles are totally dominated by
statistical noise. If I run things for a longer time, I see my system
(as opposed to user) CPU usage head toward 100%, and SBCL seems to hang
(i.e. even a C-c C-c from SLIME doesn't do anything). Eventually I'm
forced to kill the SBCL process and start over.
Does anyone have experience using sb-sprof on powerpc-darwin that would
help me? If not, I'm happy to track this problem down in the SBCL
code, but I don't really know how to find the problem when I can't even
get to the lisp debugger. Some suggestions to get started would be
Thanks very much!
On Mon, 2 May 2005, Will M. Farr wrote:
> Does anyone have experience using sb-sprof on powerpc-darwin that would help
> me? If not, I'm happy to track this problem down in the SBCL code, but I
> don't really know how to find the problem when I can't even get to the lisp
> debugger. Some suggestions to get started would be really appreciated.
I've observed the same and have been meaning to cook up a test big enough
to reliably trigger this for adding to SB-SPROF...
As to the cause, I think it comes down to SBCL being less interrupt safe
in FP code on ppc/darwin then other platforms, as I've observed similar
hangups from SIGINTs sent during FP-heavy code.
My best bet is that PSEUDO-ATOMIC really isn't, but I haven't investigated
Second candidate to blame would be the general badness of running lisp
code on a signal handler: Christophe Rhodes outlined a stategy for using
arrange_return_to_lisp_function for safe signal handling, but it isn't
quite there yet, as SB-SPROF needs the sigcontext which the a_r_t_l_f
Sorry for not being able to be more accurate -- good luck in the bughunt.
-- Nikodemus Schemer: "Buddha is small, clean, and serious."
Lispnik: "Buddha is big, has hairy armpits, and laughs."