[racket-dev] continuation-mark-set->context : Empty Stack Traces?

From: Vincent St-Amour (stamourv at ccs.neu.edu)
Date: Wed Aug 7 17:49:57 EDT 2013

I'm profiling one of the contract benchmarks[1], and I noticed that
sometimes (about 10 out of 300 samples), `continuation-mark-set->context'
would return an empty stack trace. This number is cut down by about half
if I disable the JIT. These samples seem to be spread out throughout
execution (i.e. not all at the beginning or at the end).

I think this may be a regression. At least I've never observed that
before (and since this causes the contract profiler to error (a bug
which I'll fix), I probably would have noticed).

This may be a problem because it would reduce the precision of the
profiler by undercounting what actually was on the stack while these
empty samples are taken.


To observe this, clone the contract benchmarks repository[1], then run
the attached version of render-guide.rkt inside that directory. To count
the number of empty stack traces, apply the attached patch to the
profiler.


Vincent


[1] https://github.com/stamourv/contract-benchmarks


-------------- next part --------------
A non-text attachment was scrubbed...
Name: render-guide.rkt
Type: application/octet-stream
Size: 209 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20130807/93acb9dc/attachment.obj>

Posted on the dev mailing list.