cpuidle: tegra: add ARCH_SUSPEND_POSSIBLE dependency
PATCH 1/1 cpuidle: tegra: add ARCH_SUSPEND_POSSIBLE dependency
From: Arnd Bergmann <[email protected]>
Some StrongARM processors don't support suspend, which leads to a build failure with the tegra cpuidle driver:
WARNING: unmet direct dependencies detected for ARM_CPU_SUSPEND
Depends on [n]: ARCH_SUSPEND_POSSIBLE [=n]
Selected by [y]:
- ARM_TEGRA_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]
arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'
Add an explicit dependency to make randconfig builds avoid this combination.
--- drivers/cpuidle/Kconfig.arm | 1 + 1 file changed, 1 insertion(+)
drivers/cpuidle/Kconfig.arm +1 -0
@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND help
Signature · 1 line
2.29.2
13.10.2021 19:01, Arnd Bergmann пишет:
Quoted 28 lines
From: Arnd Bergmann <[email protected]>
Some StrongARM processors don't support suspend, which leads to a build failure with the tegra cpuidle driver:
WARNING: unmet direct dependencies detected for
ARM_CPU_SUSPEND
Depends on [n]:ARCH_SUSPEND_POSSIBLE[=n]
Selected by [y]:
-ARM_TEGRA_CPUIDLE[=y] &&CPU_IDLE[=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA[=n] ||COMPILE_TEST[=y]) && !ARM64 && MMU [=y]
arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'Add an explicit dependency to make randconfig builds avoid this combination.
Fixes faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/cpuidle/Kconfig.arm | 1 + 1 file changed, 1 insertion(+)drivers/cpuidle/Kconfig.arm +0
-0
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 7 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND help
Arnd, thank you for the patch!
Apparently ARM_QCOM_SPM_CPUIDLE doesn't have that problem visible because it selects QCOM_SPM, which depends on ARCH_QCOM, and thus ARCH_QCOM should be auto-selected(?). I'm curious whether this needs to be corrected, otherwise (ARCH_QCOM || COMPILE_TEST) doesn't make much sense for that driver. And then it will need the same Kconfig fix as well.
I assume this problem wasn't caught by regular kernel build bots because they don't test randconfig, don't they?
Quoted 16 lines · Dmitry Osipenko
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 13 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND helpArnd, thank you for the patch!
Quoted 3 lines
Apparently
ARM_QCOM_SPM_CPUIDLEdoesn't have that problem visible because it selectsQCOM_SPM, which depends onARCH_QCOM, and thusARCH_QCOMshould be auto-selected(?).
No, that's not how it works. In fact ARM_QCOM_SPM_CPUIDLE has the exact same problem. I tried to check if there are other drivers affected by this problem before I sent my patch, but I did something wrong and missed this one.
Quoted 6 lines
I'm curious whether this needs to
be corrected, otherwise (ARCH_QCOM||COMPILE_TEST) doesn't make much sense for that driver. And then it will need the sameKconfigfix as well.I assume this problem wasn't caught by regular kernel build bots because they don't test randconfig, don't they?
They do test randconfig builds, but only a few of them. This one is rather hard to hit, it probably took me 100 builds before I hit the first one and I haven't run into the QCOM one yet, though I did see a different issue for ARM_QCOM_SPM_CPUIDLE:
WARNING: unmet direct dependencies detected for QCOM_SPM
Depends on [n]: ARCH_QCOM [=n]
Selected by [y]:
- ARM_QCOM_SPM_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64)
&& (ARCH_QCOM [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]
Arnd
14.10.2021 00:55, Arnd Bergmann пишет:
Quoted 38 lines · Dmitry Osipenko
Quoted 16 lines
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 13 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND helpArnd, thank you for the patch!
Quoted 3 lines
Apparently
ARM_QCOM_SPM_CPUIDLEdoesn't have that problem visible because it selectsQCOM_SPM, which depends onARCH_QCOM, and thusARCH_QCOMshould be auto-selected(?).No, that's not how it works. In fact
ARM_QCOM_SPM_CPUIDLEhas the exact same problem. I tried to check if there are other drivers affected by this problem before I sent my patch, but I did something wrong and missed this one.Quoted 6 lines
I'm curious whether this needs to
be corrected, otherwise (ARCH_QCOM||COMPILE_TEST) doesn't make much sense for that driver. And then it will need the sameKconfigfix as well.I assume this problem wasn't caught by regular kernel build bots because they don't test randconfig, don't they?
They do test randconfig builds, but only a few of them. This one is rather hard to hit, it probably took me 100 builds before I hit the first one and I haven't run into the QCOM one yet, though I did see a different issue for
ARM_QCOM_SPM_CPUIDLE:
Quoted 5 lines
WARNING: unmet direct dependencies detected for
QCOM_SPM
Depends on [n]:ARCH_QCOM[=n]
Selected by [y]:
-ARM_QCOM_SPM_CPUIDLE[=y] &&CPU_IDLE[=y] && (ARM [=y] || ARM64)
&& (ARCH_QCOM[=n] ||COMPILE_TEST[=y]) && !ARM64 && MMU [=y]
This is exactly what I expected, thank you for fixing all this!
13.10.2021 19:01, Arnd Bergmann пишет:
Quoted 28 lines
From: Arnd Bergmann <[email protected]>
Some StrongARM processors don't support suspend, which leads to a build failure with the tegra cpuidle driver:
WARNING: unmet direct dependencies detected for
ARM_CPU_SUSPEND
Depends on [n]:ARCH_SUSPEND_POSSIBLE[=n]
Selected by [y]:
-ARM_TEGRA_CPUIDLE[=y] &&CPU_IDLE[=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA[=n] ||COMPILE_TEST[=y]) && !ARM64 && MMU [=y]
arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'Add an explicit dependency to make randconfig builds avoid this combination.
Fixes faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/cpuidle/Kconfig.arm | 1 + 1 file changed, 1 insertion(+)drivers/cpuidle/Kconfig.arm +0
-0
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 7 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND help
Quoted 24 lines · Dmitry Osipenko
13.10.2021 19:01, Arnd Bergmann пишет:
Quoted 22 lines
From: Arnd Bergmann <[email protected]>
Some StrongARM processors don't support suspend, which leads to a build failure with the tegra cpuidle driver:
WARNING: unmet direct dependencies detected for
ARM_CPU_SUSPEND
Depends on [n]:ARCH_SUSPEND_POSSIBLE[=n]
Selected by [y]:
-ARM_TEGRA_CPUIDLE[=y] &&CPU_IDLE[=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA[=n] ||COMPILE_TEST[=y]) && !ARM64 && MMU [=y]
arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'Add an explicit dependency to make randconfig builds avoid this combination.
Fixes faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/cpuidle/Kconfig.arm | 1 + 1 file changed, 1 insertion(+)
Quoted 15 lines
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 13 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND helpReviewed-by Dmitry Osipenko <[email protected]>
Thanks!
I realized now that we should drop the '&& MMU' after my fix, for both the tegra and qualcomm drivers, reverting the change from 498ba2a8a275 ("cpuidle: Fix ARM_QCOM_SPM_CPUIDLE configuration") that got failed to fix this problem. I'll resend it as a series of three patches with your R-b on this patch.
On a related note, I now see that the "||COMPILE_TEST" bit for the arm-specific cpuidle drivers is not all that useful because we can curently not hit that on non-ARM machines at all. I'll try changing that as well, but this is probably nontrivial.
Arnd
14.10.2021 17:41, Arnd Bergmann пишет:
Quoted 49 lines · Dmitry Osipenko
Quoted 24 lines
13.10.2021 19:01, Arnd Bergmann пишет:
Quoted 22 lines
From: Arnd Bergmann <[email protected]>
Some StrongARM processors don't support suspend, which leads to a build failure with the tegra cpuidle driver:
WARNING: unmet direct dependencies detected for
ARM_CPU_SUSPEND
Depends on [n]:ARCH_SUSPEND_POSSIBLE[=n]
Selected by [y]:
-ARM_TEGRA_CPUIDLE[=y] &&CPU_IDLE[=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA[=n] ||COMPILE_TEST[=y]) && !ARM64 && MMU [=y]
arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'Add an explicit dependency to make randconfig builds avoid this combination.
Fixes faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/cpuidle/Kconfig.arm | 1 + 1 file changed, 1 insertion(+)Quoted 15 lines
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 13 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND helpReviewed-by Dmitry Osipenko <[email protected]>Thanks!
I realized now that we should drop the '&& MMU' after my fix, for both the tegra and qualcomm drivers, reverting the change from
498ba2a8a275("cpuidle: FixARM_QCOM_SPM_CPUIDLEconfiguration") that got failed to fix this problem. I'll resend it as a series of three patches with your R-b on this patch.
Quoted 4 lines
On a related note, I now see that the "||COMPILE_TEST" bit for the arm-specific cpuidle drivers is not all that useful because we can curently not hit that on non-ARM machines at all. I'll try changing that as well, but this is probably nontrivial.
Ack
Randy Dunlap
Reviewed-byQuoted 23 lines · Dmitry Osipenko
13.10.2021 19:01, Arnd Bergmann пишет:
Quoted 22 lines
From: Arnd Bergmann <[email protected]>
Some StrongARM processors don't support suspend, which leads to a build failure with the tegra cpuidle driver:
WARNING: unmet direct dependencies detected for
ARM_CPU_SUSPEND
Depends on [n]:ARCH_SUSPEND_POSSIBLE[=n]
Selected by [y]:
-ARM_TEGRA_CPUIDLE[=y] &&CPU_IDLE[=y] && (ARM [=y] || ARM64) && (ARCH_TEGRA[=n] ||COMPILE_TEST[=y]) && !ARM64 && MMU [=y]
arch/arm/kernel/sleep.o: in function `__cpu_suspend':
(.text+0x68): undefined reference to `cpu_sa110_suspend_size'Add an explicit dependency to make randconfig builds avoid this combination.
Fixes faae6c9f2e68 ("cpuidle: tegra: Enable compile testing")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/cpuidle/Kconfig.arm | 1 + 1 file changed, 1 insertion(+)
Quoted 15 lines
drivers/cpuidle/Kconfig.arm config ARM_MVEBU_V7_CPUIDLE · line 106
Quoted 13 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE config ARM_TEGRA_CPUIDLE bool "CPU Idle Driver for NVIDIA Tegra SoCs" depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU + depends on ARCH_SUSPEND_POSSIBLE select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_CPU_SUSPEND helpReviewed-by Dmitry Osipenko <[email protected]>
What is the status of this patch, please?
kernel test robot is still reporting this build error, so I just created the same patch...
thanks.
Signature · 1 line
~Randy