[racket-dev] continuation-mark-set->context : Empty Stack Traces?
Thanks!
At this point, that same benchmark has about 1 empty stack trace per 300
samples, which should be good enough.
Vincent
At Mon, 12 Aug 2013 17:25:38 -0600,
Matthew Flatt wrote:
>
> I've pushed a repair for the main problem on x86_64 Linux (and other
> platforms that use DWARF-based stack unwind).
>
> A related symptom I had noticed was that building without gcc
> optimization used disabled stack traces; that's now fixed.
>
> There are still ways to end up with an empty stack trace, but it should
> happen much less often.
>
> At Wed, 07 Aug 2013 17:49:57 -0400, Vincent St-Amour wrote:
> >
> > 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
> >
> >
> >
> > ------------------------------------------------------------------------------
> > [application/octet-stream "render-guide.rkt"] [~/Desktop & open] [~/Temp & open]
> >
> > ------------------------------------------------------------------------------
> > [application/octet-stream
> > "0001-Have-profiler-print-number-of-empty-stack-traces.patch"] [~/Desktop &
> > open] [~/Temp & open]
> > _________________________
> > Racket Developers list:
> > http://lists.racket-lang.org/dev