On Sep 10, 2021, at 11:58 AM, Peter Zijlstra [off-list ref] wrote:
On Fri, Sep 10, 2021 at 11:33:52AM -0700, Song Liu wrote:
quoted
+ /* Given we stop LBR in software, we will waste a few entries.
+ * But we should try to waste as few as possible entries. We are at
+ * about 7 on x86_64 systems.
+ * Add a check for < 10 so that we get heads-up when something
+ * changes and wastes too many entries.
+ */
+ ASSERT_LT(skel->bss->wasted_entries, 10, "check_wasted_entries");
It might be worth pointing out that you can easily bust this limit by
enabling all the various tracepoints that are still in that code, but
that that isn't a hard error since that's not the expected use case.
For example there's the wrmsr tracepoint that will inject 6 or so
branches on top of that you now have. And I also think there's a
tracepoint in local_irq_save() that can trigger.
Right. I did some test with a lot of debug config enabled. We do see a lot
more wasted entries there.
Thanks,
Song