On Thu, May 23, 2013 at 11:07:03AM -0700, Andrew Hunter wrote:
> schedule_events caches event constraints on the stack during
> scheduling.  Given the number of possible events, this is 512 bytes of
> stack; since it can be invoked under schedule() under god-knows-what,
> this is causing stack blowouts.
> 
> Trade some space usage for stack safety: add a place to cache the
> constraint pointer to struct perf_event.  For 8 bytes per event (1% of
> its size) we can save the giant stack frame.
> 
> This shouldn't change any aspect of scheduling whatsoever and while in
> theory the locality's a tiny bit worse, I doubt we'll see any
> performance impact either.
> 
> Tested: `perf stat whatever` does not blow up and produces
> results that aren't hugely obviously wrong.  I'm not sure how to run
> particularly good tests of perf code, but this should not produce any
> functional change whatsoever.
> 
> Signed-off-by: Andrew Hunter <[email protected]>
> Reviewed-by: Stephane Eranian <[email protected]>

OK nothing really strange popped out during a quick read.

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to