* [peterz-queue:core/guards 37/58] kernel/events/core.c:4815:4: error: cannot jump from this asm goto statement to one of its possible targets
@ 2023-06-10 3:13 kernel test robot
2023-06-10 8:20 ` Peter Zijlstra
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2023-06-10 3:13 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: llvm, oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git core/guards
head: dd132e83d180b932488bcf612576529e6163a1ea
commit: bbca204d731b08997a60a4ca0530fdee8b6f429c [37/58] perf: Simplify find_get_pmu_context()
config: powerpc-gamecube_defconfig (https://download.01.org/0day-ci/archive/20230610/202306101109.PqwXuQIY-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build):
mkdir -p ~/bin
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=bbca204d731b08997a60a4ca0530fdee8b6f429c
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue core/guards
git checkout bbca204d731b08997a60a4ca0530fdee8b6f429c
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306101109.PqwXuQIY-lkp@intel.com/
All errors (new ones prefixed by >>):
215 | __do_insb
| ^
arch/powerpc/include/asm/io.h:614:56: note: expanded from macro '__do_insb'
614 | #define __do_insb(p, b, n) readsb((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
| ~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/events/core.c:20:
In file included from include/linux/tick.h:8:
In file included from include/linux/clockchips.h:14:
In file included from include/linux/clocksource.h:22:
In file included from arch/powerpc/include/asm/io.h:677:
arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
45 | DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 | (p, b, c), pio, p)
| ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
674 | __do_##name al; \
| ^~~~~~~~~~~~~~
<scratch space>:217:1: note: expanded from here
217 | __do_insw
| ^
arch/powerpc/include/asm/io.h:615:56: note: expanded from macro '__do_insw'
615 | #define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
| ~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/events/core.c:20:
In file included from include/linux/tick.h:8:
In file included from include/linux/clockchips.h:14:
In file included from include/linux/clocksource.h:22:
In file included from arch/powerpc/include/asm/io.h:677:
arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
47 | DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 | (p, b, c), pio, p)
| ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
674 | __do_##name al; \
| ^~~~~~~~~~~~~~
<scratch space>:219:1: note: expanded from here
219 | __do_insl
| ^
arch/powerpc/include/asm/io.h:616:56: note: expanded from macro '__do_insl'
616 | #define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
| ~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/events/core.c:20:
In file included from include/linux/tick.h:8:
In file included from include/linux/clockchips.h:14:
In file included from include/linux/clocksource.h:22:
In file included from arch/powerpc/include/asm/io.h:677:
arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
49 | DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 | (p, b, c), pio, p)
| ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
674 | __do_##name al; \
| ^~~~~~~~~~~~~~
<scratch space>:221:1: note: expanded from here
221 | __do_outsb
| ^
arch/powerpc/include/asm/io.h:617:58: note: expanded from macro '__do_outsb'
617 | #define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
| ~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/events/core.c:20:
In file included from include/linux/tick.h:8:
In file included from include/linux/clockchips.h:14:
In file included from include/linux/clocksource.h:22:
In file included from arch/powerpc/include/asm/io.h:677:
arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
51 | DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 | (p, b, c), pio, p)
| ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
674 | __do_##name al; \
| ^~~~~~~~~~~~~~
<scratch space>:223:1: note: expanded from here
223 | __do_outsw
| ^
arch/powerpc/include/asm/io.h:618:58: note: expanded from macro '__do_outsw'
618 | #define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
| ~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/events/core.c:20:
In file included from include/linux/tick.h:8:
In file included from include/linux/clockchips.h:14:
In file included from include/linux/clocksource.h:22:
In file included from arch/powerpc/include/asm/io.h:677:
arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
53 | DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 | (p, b, c), pio, p)
| ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
674 | __do_##name al; \
| ^~~~~~~~~~~~~~
<scratch space>:225:1: note: expanded from here
225 | __do_outsl
| ^
arch/powerpc/include/asm/io.h:619:58: note: expanded from macro '__do_outsl'
619 | #define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
| ~~~~~~~~~~~~~~~~~~~~~^
>> kernel/events/core.c:4815:4: error: cannot jump from this asm goto statement to one of its possible targets
4815 | WARN_ON_ONCE(epc->ctx != ctx);
| ^
include/asm-generic/bug.h:112:3: note: expanded from macro 'WARN_ON_ONCE'
112 | __WARN_FLAGS(BUGFLAG_ONCE | \
| ^
arch/powerpc/include/asm/bug.h:101:2: note: expanded from macro '__WARN_FLAGS'
101 | WARN_ENTRY("twi 31, 0, 0", BUGFLAG_WARNING | (flags), __label_warn_on); \
| ^
arch/powerpc/include/asm/bug.h:77:2: note: expanded from macro 'WARN_ENTRY'
77 | asm_volatile_goto( \
| ^
include/linux/compiler_types.h:328:33: note: expanded from macro 'asm_volatile_goto'
328 | #define asm_volatile_goto(x...) asm goto(x)
| ^
kernel/events/core.c:4784:4: note: possible target of asm goto statement
4784 | WARN_ON_ONCE(epc->ctx != ctx);
| ^
include/asm-generic/bug.h:112:3: note: expanded from macro 'WARN_ON_ONCE'
112 | __WARN_FLAGS(BUGFLAG_ONCE | \
| ^
arch/powerpc/include/asm/bug.h:104:9: note: expanded from macro '__WARN_FLAGS'
104 | \
| ^
kernel/events/core.c:4791:8: note: jump exits scope of variable with __attribute__((cleanup))
4791 | void *new __free(kfree) = kzalloc(sizeof(*epc), GFP_KERNEL);
| ^
kernel/events/core.c:4784:4: error: cannot jump from this asm goto statement to one of its possible targets
4784 | WARN_ON_ONCE(epc->ctx != ctx);
| ^
include/asm-generic/bug.h:112:3: note: expanded from macro 'WARN_ON_ONCE'
112 | __WARN_FLAGS(BUGFLAG_ONCE | \
| ^
arch/powerpc/include/asm/bug.h:101:2: note: expanded from macro '__WARN_FLAGS'
101 | WARN_ENTRY("twi 31, 0, 0", BUGFLAG_WARNING | (flags), __label_warn_on); \
| ^
arch/powerpc/include/asm/bug.h:77:2: note: expanded from macro 'WARN_ENTRY'
77 | asm_volatile_goto( \
| ^
include/linux/compiler_types.h:328:33: note: expanded from macro 'asm_volatile_goto'
328 | #define asm_volatile_goto(x...) asm goto(x)
| ^
kernel/events/core.c:4815:4: note: possible target of asm goto statement
4815 | WARN_ON_ONCE(epc->ctx != ctx);
| ^
include/asm-generic/bug.h:112:3: note: expanded from macro 'WARN_ON_ONCE'
112 | __WARN_FLAGS(BUGFLAG_ONCE | \
| ^
arch/powerpc/include/asm/bug.h:104:9: note: expanded from macro '__WARN_FLAGS'
104 | \
| ^
kernel/events/core.c:4791:8: note: jump bypasses initialization of variable with __attribute__((cleanup))
4791 | void *new __free(kfree) = kzalloc(sizeof(*epc), GFP_KERNEL);
| ^
kernel/events/core.c:11401:6: warning: no previous prototype for function '__perf_pmu_unregister' [-Wmissing-prototypes]
11401 | void __perf_pmu_unregister(struct pmu *pmu)
| ^
kernel/events/core.c:11401:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
11401 | void __perf_pmu_unregister(struct pmu *pmu)
| ^
| static
7 warnings and 2 errors generated.
vim +4815 kernel/events/core.c
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner 2008-12-04 4756
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4757 /*
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4758 * Returns a matching perf_event_pmu_context with elevated refcount or NULL.
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4759 */
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4760 static struct perf_event_pmu_context *
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4761 find_get_pmu_context(struct pmu *pmu, struct perf_event_context *ctx,
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4762 struct perf_event *event)
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4763 {
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4764 struct perf_event_pmu_context *epc;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4765 void *task_ctx_data = NULL;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4766
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4767 if (!ctx->task) {
b255c4a091a85e kernel/events/core.c Peter Zijlstra 2023-06-09 4768 /*
b255c4a091a85e kernel/events/core.c Peter Zijlstra 2023-06-09 4769 * perf_pmu_migrate_context() / __perf_pmu_install_event()
b255c4a091a85e kernel/events/core.c Peter Zijlstra 2023-06-09 4770 * relies on the fact that find_get_pmu_context() cannot fail
b255c4a091a85e kernel/events/core.c Peter Zijlstra 2023-06-09 4771 * for CPU contexts.
b255c4a091a85e kernel/events/core.c Peter Zijlstra 2023-06-09 4772 */
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4773 struct perf_cpu_pmu_context *cpc;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4774
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4775 cpc = per_cpu_ptr(pmu->cpu_pmu_context, event->cpu);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4776 epc = &cpc->epc;
4f64a6c9f6f11e kernel/events/core.c James Clark 2023-01-27 4777 raw_spin_lock_irq(&ctx->lock);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4778 if (!epc->ctx) {
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4779 atomic_set(&epc->refcount, 1);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4780 epc->embedded = 1;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4781 list_add(&epc->pmu_ctx_entry, &ctx->pmu_ctx_list);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4782 epc->ctx = ctx;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4783 } else {
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4784 WARN_ON_ONCE(epc->ctx != ctx);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4785 atomic_inc(&epc->refcount);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4786 }
4f64a6c9f6f11e kernel/events/core.c James Clark 2023-01-27 4787 raw_spin_unlock_irq(&ctx->lock);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4788 return epc;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4789 }
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4790
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4791 void *new __free(kfree) = kzalloc(sizeof(*epc), GFP_KERNEL);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4792 if (!new)
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4793 return NULL;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4794
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4795 if (event->attach_state & PERF_ATTACH_TASK_DATA) {
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4796 task_ctx_data = alloc_task_ctx_data(pmu);
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4797 if (!task_ctx_data)
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4798 return NULL;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4799 }
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4800
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4801 __perf_init_event_pmu_context(new, pmu);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4802
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4803 /*
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4804 * XXX
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4805 *
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4806 * lockdep_assert_held(&ctx->mutex);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4807 *
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4808 * can't because perf_event_init_task() doesn't actually hold the
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4809 * child_ctx->mutex.
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4810 */
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4811
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4812 raw_spin_lock_irq(&ctx->lock);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4813 list_for_each_entry(epc, &ctx->pmu_ctx_list, pmu_ctx_entry) {
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4814 if (epc->pmu == pmu) {
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 @4815 WARN_ON_ONCE(epc->ctx != ctx);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4816 atomic_inc(&epc->refcount);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4817 goto found_epc;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4818 }
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4819 }
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4820
bbca204d731b08 kernel/events/core.c Peter Zijlstra 2023-06-09 4821 epc = no_free_ptr(new);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4822
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4823 list_add(&epc->pmu_ctx_entry, &ctx->pmu_ctx_list);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4824 epc->ctx = ctx;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4825
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4826 found_epc:
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4827 if (task_ctx_data && !epc->task_ctx_data) {
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4828 epc->task_ctx_data = task_ctx_data;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4829 task_ctx_data = NULL;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4830 ctx->nr_task_data++;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4831 }
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4832 raw_spin_unlock_irq(&ctx->lock);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4833
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4834 free_task_ctx_data(pmu, task_ctx_data);
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4835
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4836 return epc;
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4837 }
bd27568117664b kernel/events/core.c Peter Zijlstra 2022-10-08 4838
:::::: The code at line 4815 was first introduced by commit
:::::: bd27568117664b8b3e259721393df420ed51f57b perf: Rewrite core context handling
:::::: TO: Peter Zijlstra <peterz@infradead.org>
:::::: CC: Peter Zijlstra <peterz@infradead.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [peterz-queue:core/guards 37/58] kernel/events/core.c:4815:4: error: cannot jump from this asm goto statement to one of its possible targets
2023-06-10 3:13 [peterz-queue:core/guards 37/58] kernel/events/core.c:4815:4: error: cannot jump from this asm goto statement to one of its possible targets kernel test robot
@ 2023-06-10 8:20 ` Peter Zijlstra
0 siblings, 0 replies; 2+ messages in thread
From: Peter Zijlstra @ 2023-06-10 8:20 UTC (permalink / raw)
To: kernel test robot; +Cc: llvm, oe-kbuild-all, Nick Desaulniers
On Sat, Jun 10, 2023 at 11:13:14AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git core/guards
> head: dd132e83d180b932488bcf612576529e6163a1ea
> commit: bbca204d731b08997a60a4ca0530fdee8b6f429c [37/58] perf: Simplify find_get_pmu_context()
> config: powerpc-gamecube_defconfig (https://download.01.org/0day-ci/archive/20230610/202306101109.PqwXuQIY-lkp@intel.com/config)
> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> reproduce (this is a W=1 build):
> mkdir -p ~/bin
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install powerpc cross compiling tool for clang build
> # apt-get install binutils-powerpc-linux-gnu
> # https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=bbca204d731b08997a60a4ca0530fdee8b6f429c
> git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
> git fetch --no-tags peterz-queue core/guards
> git checkout bbca204d731b08997a60a4ca0530fdee8b6f429c
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202306101109.PqwXuQIY-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> >> kernel/events/core.c:4815:4: error: cannot jump from this asm goto statement to one of its possible targets
> 4815 | WARN_ON_ONCE(epc->ctx != ctx);
> | ^
> include/asm-generic/bug.h:112:3: note: expanded from macro 'WARN_ON_ONCE'
> 112 | __WARN_FLAGS(BUGFLAG_ONCE | \
> | ^
> arch/powerpc/include/asm/bug.h:101:2: note: expanded from macro '__WARN_FLAGS'
> 101 | WARN_ENTRY("twi 31, 0, 0", BUGFLAG_WARNING | (flags), __label_warn_on); \
> | ^
> arch/powerpc/include/asm/bug.h:77:2: note: expanded from macro 'WARN_ENTRY'
> 77 | asm_volatile_goto( \
> | ^
> include/linux/compiler_types.h:328:33: note: expanded from macro 'asm_volatile_goto'
> 328 | #define asm_volatile_goto(x...) asm goto(x)
> | ^
> kernel/events/core.c:4784:4: note: possible target of asm goto statement
> 4784 | WARN_ON_ONCE(epc->ctx != ctx);
> | ^
> include/asm-generic/bug.h:112:3: note: expanded from macro 'WARN_ON_ONCE'
> 112 | __WARN_FLAGS(BUGFLAG_ONCE | \
> | ^
> arch/powerpc/include/asm/bug.h:104:9: note: expanded from macro '__WARN_FLAGS'
> 104 | \
> | ^
> kernel/events/core.c:4791:8: note: jump exits scope of variable with __attribute__((cleanup))
> 4791 | void *new __free(kfree) = kzalloc(sizeof(*epc), GFP_KERNEL);
> | ^
> kernel/events/core.c:4784:4: error: cannot jump from this asm goto statement to one of its possible targets
> 4784 | WARN_ON_ONCE(epc->ctx != ctx);
> | ^
So I can't reproduce this using GCC for ARCH=powerpc gamecube_defconfig,
and I can't figure out WTF the compiler is trying to do. The code in
question reads:
static struct perf_event_pmu_context *
find_get_pmu_context(struct pmu *pmu, struct perf_event_context *ctx,
struct perf_event *event)
{
struct perf_event_pmu_context *epc;
void *task_ctx_data = NULL;
if (!ctx->task) {
/*
* perf_pmu_migrate_context() / __perf_pmu_install_event()
* relies on the fact that find_get_pmu_context() cannot fail
* for CPU contexts.
*/
struct perf_cpu_pmu_context *cpc;
cpc = per_cpu_ptr(pmu->cpu_pmu_context, event->cpu);
epc = &cpc->epc;
raw_spin_lock_irq(&ctx->lock);
if (!epc->ctx) {
atomic_set(&epc->refcount, 1);
epc->embedded = 1;
list_add(&epc->pmu_ctx_entry, &ctx->pmu_ctx_list);
epc->ctx = ctx;
} else {
WARN_ON_ONCE(epc->ctx != ctx);
And for some mysterious raisin this ^^ WARN wants to continue..
atomic_inc(&epc->refcount);
}
raw_spin_unlock_irq(&ctx->lock);
return epc;
}
void *new __free(kfree) = kzalloc(sizeof(*epc), GFP_KERNEL);
if (!new)
return NULL;
.. here or so? even though it has a return statement before this decl.
if (event->attach_state & PERF_ATTACH_TASK_DATA) {
task_ctx_data = alloc_task_ctx_data(pmu);
if (!task_ctx_data)
return NULL;
}
__perf_init_event_pmu_context(new, pmu);
Help?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-06-10 8:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-10 3:13 [peterz-queue:core/guards 37/58] kernel/events/core.c:4815:4: error: cannot jump from this asm goto statement to one of its possible targets kernel test robot
2023-06-10 8:20 ` Peter Zijlstra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).