On Mon, Jun 14, 2021 at 2:01 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > 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? > It does when you're dealing with one toolchain without access to another. > I understand that the compilers actually generates radically different > instrumentation for the various cases, but essentially they're all > collecting (function/branch) arcs. > That's true, but there's no one format for profiling data that's usable between all compilers. I'm not even sure there's a good way to translate between, say, gcov and llvm's format. To make matters more complicated, each compiler's format is tightly coupled to a specific version of that compiler. And depending on *how* the data is collected (e.g. sampling or instrumentation), it may not give us the full benefit of FDO/PGO. > 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. > That may be nice, but it's a rather large request. > 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.