# 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-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 dda32e37d397f5937cc24a6e98b71d3645f51afa # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc44x_defconfig_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc44x_defconfig # < make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc44x_defconfig_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc44x_defconfig_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc44x_defconfig_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/arch/powerpc/boot/dts/sam440ep.dts:266.22-287.5: Warning (interrupt_provider): /plb/pci@ec000000: '#interrupt-cells' found, but node is not an interrupt provider arch/powerpc/boot/dts/sam440ep.dtb: Warning (interrupt_map): Failed prerequisite 'interrupt_provider' Completed OK # rm -rf /kisskb/build/powerpc-next_ppc44x_defconfig_powerpc-gcc13 # Build took: 0:02:14.852305