On Sat, Jun 12, 2021 at 01:56:41PM -0700, Bill Wendling wrote: > On Sat, Jun 12, 2021 at 1:25 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Sat, Jun 12, 2021 at 12:10:03PM -0700, Bill Wendling wrote: > > Yes it is, but is that sufficient in this case? It very much isn't for > > KASAN, UBSAN, and a whole host of other instrumentation crud. They all > > needed their own 'bugger-off' attributes. > > > > > > We've got KCOV and GCOV support already. Coverage is also not an > > > > argument mentioned anywhere else. Coverage can go pound sand, we really > > > > don't need a third means of getting that. > > > > > > > Those aren't useful for clang-based implementations. And I like to > > > look forward to potential improvements. > > > > I look forward to less things doing the same over and over. The obvious > > solution if of course to make clang use what we have, not the other way > > around. > > > That is not the obvious "solution". Because having GCOV, KCOV and PGO all do essentially the same thing differently, makes heaps of sense? I understand that the compilers actually generates radically different instrumentation for the various cases, but essentially they're all collecting (function/branch) arcs. I'm thinking it might be about time to build _one_ infrastructure for that and define a kernel arc format and call it a day. Note that if your compiler does arcs with functions (like gcc, unlike clang) we can also trivially augment the arcs with PMU counter data. I once did that for userspace.