Re: [PATCH 28/79] libperf: Add perf_cpu_map struct

From: Guenter Roeck
Date: Sun Aug 18 2019 - 10:04:50 EST


On Sun, Jul 21, 2019 at 01:24:15PM +0200, Jiri Olsa wrote:
> Adding perf_cpu_map struct into libperf.
>
> It's added as a declaration into into:
> include/perf/cpumap.h
> which will be included by users.
>
> The perf_cpu_map struct definition is added into:
> include/internal/cpumap.h
>
> which is not to be included by users, but shared
> within perf and libperf.
>
> We tried the total separation of the perf_cpu_map struct
> in libperf, but it lead to complications and much bigger
> changes in perf code, so we decided to share the declaration.
>
> Link: http://lkml.kernel.org/n/tip-vhtr6a8apr7vkh2tou0r8896@xxxxxxxxxxxxxx
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>

Hi,

this patch causes out-of-tree builds (make O=<destdir>) to fail.

In file included from tools/include/asm/atomic.h:6:0,
from include/linux/atomic.h:5,
from tools/include/linux/refcount.h:41,
from cpumap.c:4: tools/include/asm/../../arch/x86/include/asm/atomic.h:11:10:
fatal error: asm/cmpxchg.h: No such file or directory

Bisect log attached.

Guenter

---
# bad: [0c3d3d648b3ed72b920a89bc4fd125e9b7aa5f23] Add linux-next specific files for 20190816
# good: [d45331b00ddb179e291766617259261c112db872] Linux 5.3-rc4
git bisect start 'HEAD' 'v5.3-rc4'
# good: [4e6eaeb715ab76095f7ea03fa5926c7aa541361e] Merge remote-tracking branch 'crypto/master'
git bisect good 4e6eaeb715ab76095f7ea03fa5926c7aa541361e
# good: [ef1c67aa73f33a29e3df672998056f18cb51468d] Merge remote-tracking branch 'sound-asoc/for-next'
git bisect good ef1c67aa73f33a29e3df672998056f18cb51468d
# bad: [f414a0d92534d55591e3c295f37f8db40d08659a] Merge remote-tracking branch 'char-misc/char-misc-next'
git bisect bad f414a0d92534d55591e3c295f37f8db40d08659a
# bad: [07f45358f90398b3bc44914a863317285a5dac55] Merge remote-tracking branch 'tip/auto-latest'
git bisect bad 07f45358f90398b3bc44914a863317285a5dac55
# good: [b8c9806513153eb258f565b2f359958a94c93816] Merge remote-tracking branch 'watchdog/master'
git bisect good b8c9806513153eb258f565b2f359958a94c93816
# bad: [7b9063c0c1c0b54db5eca8e4c36a926ee6234280] Merge branch 'sched/core'
git bisect bad 7b9063c0c1c0b54db5eca8e4c36a926ee6234280
# bad: [03617c22e31f32cbf0e4797e216db898fb898d90] libperf: Add threads to struct perf_evlist
git bisect bad 03617c22e31f32cbf0e4797e216db898fb898d90
# good: [5972d1e07bd95c7458e2d7f484391d69008affc7] perf evsel: Rename perf_evsel__open() to evsel__open()
git bisect good 5972d1e07bd95c7458e2d7f484391d69008affc7
# bad: [285a30c36d1e18e7e2afa24dae50ba5596be45e7] libperf: Add perf_evlist and perf_evsel structs
git bisect bad 285a30c36d1e18e7e2afa24dae50ba5596be45e7
# good: [47f9bccc79cb067103ad5e9790e0d01c94839429] libperf: Add build version support
git bisect good 47f9bccc79cb067103ad5e9790e0d01c94839429
# bad: [397721e06e52d017cfdd403f63284ed0995d4caf] libperf: Add perf_cpu_map__dummy_new() function
git bisect bad 397721e06e52d017cfdd403f63284ed0995d4caf
# good: [5b7f445d684fc287a2101e29d42d1fee19ae14ff] libperf: Add perf/core.h header
git bisect good 5b7f445d684fc287a2101e29d42d1fee19ae14ff
# bad: [959b83c769389b24d64759f60e64c4c62620ff02] libperf: Add perf_cpu_map struct
git bisect bad 959b83c769389b24d64759f60e64c4c62620ff02
# good: [a1556f8479ed58b8d5a33aef54578bad0165c7e7] libperf: Add debug output support
git bisect good a1556f8479ed58b8d5a33aef54578bad0165c7e7
# first bad commit: [959b83c769389b24d64759f60e64c4c62620ff02] libperf: Add perf_cpu_map struct