> III/ Requests > > 1/ Sampling period randomization > > It is our experience (on Itanium, for instance), that for certain > sampling measurements, it is beneficial to randomize the sampling > period a bit. This is in particular the case when sampling on an > event that happens very frequently and which is not related to > timing, e.g., branch_instructions_retired. Randomization helps > mitigate the bias. You do not need something sophisticated. But > when you are using a kernel-level sampling buffer, you need to > have the kernel randomize. Randomization needs to be supported per > event.
This is on the todo list, it should be pretty straight forward to implement. Basically add a u64 randomize:1 flag and a u64 rand_size, and add some noise to hwc->sample_period in perf_counter_overflow(), just like the .freq path does. In fact the auto-freq sampling counters effectively randomize already, as the path of stabilization/convergence is never exactly the same. We could add a little bit of constant noise to the freq counter and it would auto-correct automatically. Since you seem to care abut this sub-feature, would you be interested in sending a patch for that? The essential steps are: - Take a new bit off perf_counter_attr::__reserved_1 and name it attr.randomize. - Inject a few bits of trivial noise into the period calculated in kernel/perf_counter.c:perf_adjust_period(). The best place would be to add it right before this line: hwc->sample_period = sample_period; If you add a small relative fuzz of below 1% to sample_period then the code will auto-correct. - All the tools deal just fine with variable periods already, so there's no tooling updates needed, beyond adding a --randomize flag to tools/perf/builtin-record.c. Let us know if you need any help with any of this! ------------------------------------------------------------------------------ Are you an open source citizen? Join us for the Open Source Bridge conference! Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250. Need another reason to go? 24-hour hacker lounge. Register today! http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel