Message ID | 20230914184840.649412-1-quic_poza@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | [v6] cpuidle, ACPI: Evaluate LPI arch_flags for broadcast timer | expand |
Hi Oza, kernel test robot noticed the following build warnings: [auto build test WARNING on linus/master] [also build test WARNING on v6.6-rc1 next-20230915] [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/Oza-Pawandeep/cpuidle-ACPI-Evaluate-LPI-arch_flags-for-broadcast-timer/20230915-025307 base: linus/master patch link: https://lore.kernel.org/r/20230914184840.649412-1-quic_poza%40quicinc.com patch subject: [PATCH v6] cpuidle, ACPI: Evaluate LPI arch_flags for broadcast timer config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20230915/202309151138.69mFCPtW-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/20230915/202309151138.69mFCPtW-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 <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202309151138.69mFCPtW-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from arch/arm64/kernel/setup.c:36: >> arch/arm64/include/asm/acpi.h:60: warning: "arch_update_idle_state_flags" redefined 60 | #define arch_update_idle_state_flags _arch_update_idle_state_flags | In file included from arch/arm64/kernel/setup.c:9: include/linux/acpi.h:1484: note: this is the location of the previous definition 1484 | #define arch_update_idle_state_flags(af, sf) do {} while (0) | vim +/arch_update_idle_state_flags +60 arch/arm64/include/asm/acpi.h 53 54 static __always_inline void _arch_update_idle_state_flags(u32 arch_flags, 55 unsigned int *sflags) 56 { 57 if (arch_flags & CPUIDLE_CORE_CTXT) 58 *sflags |= CPUIDLE_FLAG_TIMER_STOP; 59 } > 60 #define arch_update_idle_state_flags _arch_update_idle_state_flags 61
diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h index 4d537d56eb84..269d21209723 100644 --- a/arch/arm64/include/asm/acpi.h +++ b/arch/arm64/include/asm/acpi.h @@ -9,6 +9,7 @@ #ifndef _ASM_ACPI_H #define _ASM_ACPI_H +#include <linux/cpuidle.h> #include <linux/efi.h> #include <linux/memblock.h> #include <linux/psci.h> @@ -44,6 +45,23 @@ #define ACPI_MADT_GICC_TRBE (offsetof(struct acpi_madt_generic_interrupt, \ trbe_interrupt) + sizeof(u16)) +/* + * ArmĀ® Functional Fixed Hardware Specification Version 1.2. + * Table 2: Arm Architecture context loss flags + */ +#define CPUIDLE_CORE_CTXT BIT(0) /* Core context Lost */ + +static __always_inline void _arch_update_idle_state_flags(u32 arch_flags, + unsigned int *sflags) +{ + if (arch_flags & CPUIDLE_CORE_CTXT) + *sflags |= CPUIDLE_FLAG_TIMER_STOP; +} +#define arch_update_idle_state_flags _arch_update_idle_state_flags + +#define CPUIDLE_TRACE_CTXT BIT(1) /* Trace context loss */ +#define CPUIDLE_GICR_CTXT BIT(2) /* GICR */ +#define CPUIDLE_GICD_CTXT BIT(3) /* GICD */ /* Basic configuration for ACPI */ #ifdef CONFIG_ACPI diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index dc615ef6550a..5c1d13eecdd1 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -1217,8 +1217,7 @@ static int acpi_processor_setup_lpi_states(struct acpi_processor *pr) strscpy(state->desc, lpi->desc, CPUIDLE_DESC_LEN); state->exit_latency = lpi->wake_latency; state->target_residency = lpi->min_residency; - if (lpi->arch_flags) - state->flags |= CPUIDLE_FLAG_TIMER_STOP; + arch_update_idle_state_flags(lpi->arch_flags, &state->flags); if (i != 0 && lpi->entry_method == ACPI_CSTATE_FFH) state->flags |= CPUIDLE_FLAG_RCU_IDLE; state->enter = acpi_idle_lpi_enter; diff --git a/include/linux/acpi.h b/include/linux/acpi.h index a73246c3c35e..f8c561a4215e 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1480,6 +1480,10 @@ static inline int lpit_read_residency_count_address(u64 *address) } #endif +#ifndef arch_update_idle_state_flags +#define arch_update_idle_state_flags(af, sf) do {} while (0) +#endif + #ifdef CONFIG_ACPI_PPTT int acpi_pptt_cpu_is_thread(unsigned int cpu); int find_acpi_cpu_topology(unsigned int cpu, int level);