Message ID | 20231114040110.54590-5-yangyicong@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support SMT control on arm64 | expand |
Hi Yicong,
kernel test robot noticed the following build errors:
[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on driver-core/driver-core-testing driver-core/driver-core-next driver-core/driver-core-linus arm/for-next kvmarm/next soc/for-next linus/master arm/fixes v6.7-rc1 next-20231115]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Yicong-Yang/arch_topology-Support-basic-SMT-control-for-the-driver/20231114-120544
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link: https://lore.kernel.org/r/20231114040110.54590-5-yangyicong%40huawei.com
patch subject: [PATCH v3 4/4] arm64: Kconfig: Enable HOTPLUG_SMT
config: arm64-randconfig-002-20231115 (https://download.01.org/0day-ci/archive/20231115/202311151900.K9xc6Xqz-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231115/202311151900.K9xc6Xqz-lkp@intel.com/reproduce)
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 <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/r/202311151900.K9xc6Xqz-lkp@intel.com/
All errors (new ones prefixed by >>):
kernel/cpu.c: In function 'cpuhp_smt_disable':
>> kernel/cpu.c:2687:23: error: implicit declaration of function 'cpu_down_maps_locked' [-Werror=implicit-function-declaration]
2687 | ret = cpu_down_maps_locked(cpu, CPUHP_OFFLINE);
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/cpu_down_maps_locked +2687 kernel/cpu.c
dc8d37ed304eee Arnd Bergmann 2019-12-10 2672
dc8d37ed304eee Arnd Bergmann 2019-12-10 2673 int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval)
dc8d37ed304eee Arnd Bergmann 2019-12-10 2674 {
dc8d37ed304eee Arnd Bergmann 2019-12-10 2675 int cpu, ret = 0;
dc8d37ed304eee Arnd Bergmann 2019-12-10 2676
dc8d37ed304eee Arnd Bergmann 2019-12-10 2677 cpu_maps_update_begin();
dc8d37ed304eee Arnd Bergmann 2019-12-10 2678 for_each_online_cpu(cpu) {
dc8d37ed304eee Arnd Bergmann 2019-12-10 2679 if (topology_is_primary_thread(cpu))
dc8d37ed304eee Arnd Bergmann 2019-12-10 2680 continue;
38253464bc821d Michael Ellerman 2023-07-05 2681 /*
38253464bc821d Michael Ellerman 2023-07-05 2682 * Disable can be called with CPU_SMT_ENABLED when changing
38253464bc821d Michael Ellerman 2023-07-05 2683 * from a higher to lower number of SMT threads per core.
38253464bc821d Michael Ellerman 2023-07-05 2684 */
38253464bc821d Michael Ellerman 2023-07-05 2685 if (ctrlval == CPU_SMT_ENABLED && cpu_smt_thread_allowed(cpu))
38253464bc821d Michael Ellerman 2023-07-05 2686 continue;
dc8d37ed304eee Arnd Bergmann 2019-12-10 @2687 ret = cpu_down_maps_locked(cpu, CPUHP_OFFLINE);
dc8d37ed304eee Arnd Bergmann 2019-12-10 2688 if (ret)
dc8d37ed304eee Arnd Bergmann 2019-12-10 2689 break;
dc8d37ed304eee Arnd Bergmann 2019-12-10 2690 /*
dc8d37ed304eee Arnd Bergmann 2019-12-10 2691 * As this needs to hold the cpu maps lock it's impossible
dc8d37ed304eee Arnd Bergmann 2019-12-10 2692 * to call device_offline() because that ends up calling
dc8d37ed304eee Arnd Bergmann 2019-12-10 2693 * cpu_down() which takes cpu maps lock. cpu maps lock
dc8d37ed304eee Arnd Bergmann 2019-12-10 2694 * needs to be held as this might race against in kernel
dc8d37ed304eee Arnd Bergmann 2019-12-10 2695 * abusers of the hotplug machinery (thermal management).
dc8d37ed304eee Arnd Bergmann 2019-12-10 2696 *
dc8d37ed304eee Arnd Bergmann 2019-12-10 2697 * So nothing would update device:offline state. That would
dc8d37ed304eee Arnd Bergmann 2019-12-10 2698 * leave the sysfs entry stale and prevent onlining after
dc8d37ed304eee Arnd Bergmann 2019-12-10 2699 * smt control has been changed to 'off' again. This is
dc8d37ed304eee Arnd Bergmann 2019-12-10 2700 * called under the sysfs hotplug lock, so it is properly
dc8d37ed304eee Arnd Bergmann 2019-12-10 2701 * serialized against the regular offline usage.
dc8d37ed304eee Arnd Bergmann 2019-12-10 2702 */
dc8d37ed304eee Arnd Bergmann 2019-12-10 2703 cpuhp_offline_cpu_device(cpu);
dc8d37ed304eee Arnd Bergmann 2019-12-10 2704 }
dc8d37ed304eee Arnd Bergmann 2019-12-10 2705 if (!ret)
dc8d37ed304eee Arnd Bergmann 2019-12-10 2706 cpu_smt_control = ctrlval;
dc8d37ed304eee Arnd Bergmann 2019-12-10 2707 cpu_maps_update_done();
dc8d37ed304eee Arnd Bergmann 2019-12-10 2708 return ret;
dc8d37ed304eee Arnd Bergmann 2019-12-10 2709 }
dc8d37ed304eee Arnd Bergmann 2019-12-10 2710
On 2023/11/16 12:59, kernel test robot wrote: > Hi Yicong, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on arm64/for-next/core] > [also build test ERROR on driver-core/driver-core-testing driver-core/driver-core-next driver-core/driver-core-linus arm/for-next kvmarm/next soc/for-next linus/master arm/fixes v6.7-rc1 next-20231115] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Yicong-Yang/arch_topology-Support-basic-SMT-control-for-the-driver/20231114-120544 > base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core > patch link: https://lore.kernel.org/r/20231114040110.54590-5-yangyicong%40huawei.com > patch subject: [PATCH v3 4/4] arm64: Kconfig: Enable HOTPLUG_SMT > config: arm64-randconfig-002-20231115 (https://download.01.org/0day-ci/archive/20231115/202311151900.K9xc6Xqz-lkp@intel.com/config) > compiler: aarch64-linux-gcc (GCC) 13.2.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231115/202311151900.K9xc6Xqz-lkp@intel.com/reproduce) > > 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 <yujie.liu@intel.com> > | Closes: https://lore.kernel.org/r/202311151900.K9xc6Xqz-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > kernel/cpu.c: In function 'cpuhp_smt_disable': >>> kernel/cpu.c:2687:23: error: implicit declaration of function 'cpu_down_maps_locked' [-Werror=implicit-function-declaration] > 2687 | ret = cpu_down_maps_locked(cpu, CPUHP_OFFLINE); > | ^~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > cpu_down_maps_locked() is introduced by CONFIG_HOTPLUG_CPU, so CONFIG_HOTPLUG_SMT will need to depend on CONFIG_HOTPLUG_CPU. Will add it. > > vim +/cpu_down_maps_locked +2687 kernel/cpu.c > > dc8d37ed304eee Arnd Bergmann 2019-12-10 2672 > dc8d37ed304eee Arnd Bergmann 2019-12-10 2673 int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) > dc8d37ed304eee Arnd Bergmann 2019-12-10 2674 { > dc8d37ed304eee Arnd Bergmann 2019-12-10 2675 int cpu, ret = 0; > dc8d37ed304eee Arnd Bergmann 2019-12-10 2676 > dc8d37ed304eee Arnd Bergmann 2019-12-10 2677 cpu_maps_update_begin(); > dc8d37ed304eee Arnd Bergmann 2019-12-10 2678 for_each_online_cpu(cpu) { > dc8d37ed304eee Arnd Bergmann 2019-12-10 2679 if (topology_is_primary_thread(cpu)) > dc8d37ed304eee Arnd Bergmann 2019-12-10 2680 continue; > 38253464bc821d Michael Ellerman 2023-07-05 2681 /* > 38253464bc821d Michael Ellerman 2023-07-05 2682 * Disable can be called with CPU_SMT_ENABLED when changing > 38253464bc821d Michael Ellerman 2023-07-05 2683 * from a higher to lower number of SMT threads per core. > 38253464bc821d Michael Ellerman 2023-07-05 2684 */ > 38253464bc821d Michael Ellerman 2023-07-05 2685 if (ctrlval == CPU_SMT_ENABLED && cpu_smt_thread_allowed(cpu)) > 38253464bc821d Michael Ellerman 2023-07-05 2686 continue; > dc8d37ed304eee Arnd Bergmann 2019-12-10 @2687 ret = cpu_down_maps_locked(cpu, CPUHP_OFFLINE); > dc8d37ed304eee Arnd Bergmann 2019-12-10 2688 if (ret) > dc8d37ed304eee Arnd Bergmann 2019-12-10 2689 break; > dc8d37ed304eee Arnd Bergmann 2019-12-10 2690 /* > dc8d37ed304eee Arnd Bergmann 2019-12-10 2691 * As this needs to hold the cpu maps lock it's impossible > dc8d37ed304eee Arnd Bergmann 2019-12-10 2692 * to call device_offline() because that ends up calling > dc8d37ed304eee Arnd Bergmann 2019-12-10 2693 * cpu_down() which takes cpu maps lock. cpu maps lock > dc8d37ed304eee Arnd Bergmann 2019-12-10 2694 * needs to be held as this might race against in kernel > dc8d37ed304eee Arnd Bergmann 2019-12-10 2695 * abusers of the hotplug machinery (thermal management). > dc8d37ed304eee Arnd Bergmann 2019-12-10 2696 * > dc8d37ed304eee Arnd Bergmann 2019-12-10 2697 * So nothing would update device:offline state. That would > dc8d37ed304eee Arnd Bergmann 2019-12-10 2698 * leave the sysfs entry stale and prevent onlining after > dc8d37ed304eee Arnd Bergmann 2019-12-10 2699 * smt control has been changed to 'off' again. This is > dc8d37ed304eee Arnd Bergmann 2019-12-10 2700 * called under the sysfs hotplug lock, so it is properly > dc8d37ed304eee Arnd Bergmann 2019-12-10 2701 * serialized against the regular offline usage. > dc8d37ed304eee Arnd Bergmann 2019-12-10 2702 */ > dc8d37ed304eee Arnd Bergmann 2019-12-10 2703 cpuhp_offline_cpu_device(cpu); > dc8d37ed304eee Arnd Bergmann 2019-12-10 2704 } > dc8d37ed304eee Arnd Bergmann 2019-12-10 2705 if (!ret) > dc8d37ed304eee Arnd Bergmann 2019-12-10 2706 cpu_smt_control = ctrlval; > dc8d37ed304eee Arnd Bergmann 2019-12-10 2707 cpu_maps_update_done(); > dc8d37ed304eee Arnd Bergmann 2019-12-10 2708 return ret; > dc8d37ed304eee Arnd Bergmann 2019-12-10 2709 } > dc8d37ed304eee Arnd Bergmann 2019-12-10 2710 >
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 7b071a00425d..002bcde32575 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -233,6 +233,7 @@ config ARM64 select HAVE_KRETPROBES select HAVE_GENERIC_VDSO select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU + select HOTPLUG_SMT if SMP select IRQ_DOMAIN select IRQ_FORCED_THREADING select KASAN_VMALLOC if KASAN