# git rev-parse -q --verify dda32e37d397f5937cc24a6e98b71d3645f51afa^{commit} dda32e37d397f5937cc24a6e98b71d3645f51afa already have revision, skipping fetch # git checkout -q -f -B kisskb dda32e37d397f5937cc24a6e98b71d3645f51afa # git clean -qxdf # < git log -1 # commit dda32e37d397f5937cc24a6e98b71d3645f51afa # Author: Michael Ellerman # Date: Mon Apr 22 23:34:53 2024 +1000 # # selftests/powerpc: Install tests in sub-directories # # The sources for the powerpc selftests are arranged into sub-directories. # However when the tests are built and installed, the sub-directories are # squashed, losing the structure. # # For example, with the current code the result of installing the selftests is: # # $ tree tools/testing/selftests/kselftest_install # tools/testing/selftests/kselftest_install # ├── kselftest # │   ├── ktap_helpers.sh # │   ├── module.sh # │   ├── prefix.pl # │   └── runner.sh # ├── kselftest-list.txt # ├── powerpc # │   ├── alignment_handler # │   ├── attr_test # │   ├── back_to_back_ebbs_test # │   ├── bad_accesses # │   ├── bhrb_filter_map_test # │   ├── bhrb_no_crash_wo_pmu_test # │   ├── blacklisted_events_test # │   ├── cache_shape # │   ├── close_clears_pmcc_test # │   ├── context_switch # │   ├── copy_first_unaligned # ... # │   ├── settings # ... # │   └── wild_bctr # └── run_kselftest.sh # # All the powerpc tests are squashed into the single powerpc directory. In # particular, note that there is a single `settings` file, even though # there are multiple settings files in the powerpc selftest sources. One # of the settings files ends up installed, depending on install order, # even if they have different contents. # # Similarly if there were two tests with the same name in different # sub-directories they would clobber each other. # # Fix it by replicating the directory structure of the source tree into # the install directory. The result being for example: # # $ tree tools/testing/selftests/kselftest_install # tools/testing/selftests/kselftest_install # ├── kselftest # │   ├── ktap_helpers.sh # │   ├── module.sh # │   ├── prefix.pl # │   └── runner.sh # ├── kselftest-list.txt # ├── powerpc # │   ├── alignment # │   │   ├── alignment_handler # │   │   └── copy_first_unaligned # │   ├── benchmarks # │   │   ├── context_switch # │   │   ├── exec_target # │   │   ├── fork # │   │   ├── futex_bench # │   │   ├── gettimeofday # │   │   ├── mmap_bench # │   │   ├── null_syscall # │   │   └── settings # ... # │   ├── eeh # │   │   ├── eeh-basic.sh # │   │   ├── eeh-functions.sh # │   │   └── settings # ... # │   └── vphn # │   └── test-vphn # └── run_kselftest.sh # # Note multiple settings files in different sub-directories. # # This change also has the effect of changing the names of the tests from # the point of view of the kselftest runner. Before the tests are named # eg: # # powerpc:copy_first_unaligned # powerpc:cache_shape # powerpc:reg_access_test # # After, the test collection names include the sub-directory: # # powerpc/alignment:copy_first_unaligned # powerpc/cache_shape:cache_shape # powerpc/pmu/ebb:reg_access_test # # That means whereas previously all powerpc tests could be run with: # # $ ./run_kselftest.sh -c powerpc # # After the change it's necessary to pass a regex that matches all powerpc # entries, eg: # # $ ./run_kselftest.sh -c "powerpc.*" # # The latter form also works before and after the change. # # Signed-off-by: Michael Ellerman # Link: https://msgid.link/20240422133453.1793988-2-mpe@ellerman.id.au # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 dda32e37d397f5937cc24a6e98b71d3645f51afa # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_85xx_ge_imp3a_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- 85xx/ge_imp3a_defconfig # < make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_85xx_ge_imp3a_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_85xx_ge_imp3a_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_85xx_ge_imp3a_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/kernel/locking/spinlock.c:68:17: warning: no previous prototype for '__raw_spin_lock' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(spin, raw_spinlock); ^ /kisskb/src/kernel/locking/spinlock.c:80:26: warning: no previous prototype for '__raw_spin_lock_irqsave' [-Wmissing-prototypes] unsigned long __lockfunc __raw_##op##_lock_irqsave(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(spin, raw_spinlock); ^ /kisskb/src/kernel/locking/spinlock.c:98:17: warning: no previous prototype for '__raw_spin_lock_irq' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock_irq(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(spin, raw_spinlock); ^ /kisskb/src/kernel/locking/spinlock.c:103:17: warning: no previous prototype for '__raw_spin_lock_bh' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:126:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(spin, raw_spinlock); ^ /kisskb/src/kernel/locking/spinlock.c:68:17: warning: no previous prototype for '__raw_read_lock' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(read, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:80:26: warning: no previous prototype for '__raw_read_lock_irqsave' [-Wmissing-prototypes] unsigned long __lockfunc __raw_##op##_lock_irqsave(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(read, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:98:17: warning: no previous prototype for '__raw_read_lock_irq' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock_irq(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(read, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:103:17: warning: no previous prototype for '__raw_read_lock_bh' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:129:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(read, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:68:17: warning: no previous prototype for '__raw_write_lock' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(write, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:80:26: warning: no previous prototype for '__raw_write_lock_irqsave' [-Wmissing-prototypes] unsigned long __lockfunc __raw_##op##_lock_irqsave(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(write, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:98:17: warning: no previous prototype for '__raw_write_lock_irq' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock_irq(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(write, rwlock); ^ /kisskb/src/kernel/locking/spinlock.c:103:17: warning: no previous prototype for '__raw_write_lock_bh' [-Wmissing-prototypes] void __lockfunc __raw_##op##_lock_bh(locktype##_t *lock) \ ^ /kisskb/src/kernel/locking/spinlock.c:130:1: note: in expansion of macro 'BUILD_LOCK_OPS' BUILD_LOCK_OPS(write, rwlock); ^ cc1: warning: unrecognized command line option '-Wno-shift-negative-value' cc1: warning: unrecognized command line option '-Wno-stringop-overflow' Completed OK # rm -rf /kisskb/build/powerpc-next_85xx_ge_imp3a_defconfig_powerpc-gcc5 # Build took: 0:00:43.674779