[Patch v5 2/2] ACPI: processor: reduce CPUFREQ thermal reduction pctg for Tegra241

Hanjun Guo guohanjun at huawei.com
Wed Nov 8 23:50:31 PST 2023


On 2023/10/20 16:30, Sumit Gupta wrote:
> 
>>> Current implementation of processor_thermal performs software throttling
>>> in fixed steps of "20%" which can be too coarse for some platforms.
>>> We observed some performance gain after reducing the throttle 
>>> percentage.
>>> Change the CPUFREQ thermal reduction percentage and maximum thermal 
>>> steps
>>> to be configurable. Also, update the default values of both for Nvidia
>>> Tegra241 (Grace) SoC. The thermal reduction percentage is reduced to 
>>> "5%"
>>> and accordingly the maximum number of thermal steps are increased as 
>>> they
>>> are derived from the reduction percentage.
>>>
>>> Signed-off-by: Srikar Srimath Tirumala <srikars at nvidia.com>
>>> Co-developed-by: Sumit Gupta <sumitg at nvidia.com>
>>> Signed-off-by: Sumit Gupta <sumitg at nvidia.com>
>>> ---
>>>   drivers/acpi/arm64/Makefile          |  1 +
>>>   drivers/acpi/arm64/thermal_cpufreq.c | 20 ++++++++++++++++
>>>   drivers/acpi/processor_thermal.c     | 35 +++++++++++++++++++++++++---
>>>   include/linux/acpi.h                 |  9 +++++++
>>>   4 files changed, 62 insertions(+), 3 deletions(-)
>>>   create mode 100644 drivers/acpi/arm64/thermal_cpufreq.c
>>>
>>> diff --git a/drivers/acpi/arm64/Makefile b/drivers/acpi/arm64/Makefile
>>> index 143debc1ba4a..3f181d8156cc 100644
>>> --- a/drivers/acpi/arm64/Makefile
>>> +++ b/drivers/acpi/arm64/Makefile
>>> @@ -5,3 +5,4 @@ obj-$(CONFIG_ACPI_GTDT)         += gtdt.o
>>>   obj-$(CONFIG_ACPI_APMT)        += apmt.o
>>>   obj-$(CONFIG_ARM_AMBA)         += amba.o
>>>   obj-y                          += dma.o init.o
>>> +obj-$(CONFIG_ACPI)             += thermal_cpufreq.o
>>> diff --git a/drivers/acpi/arm64/thermal_cpufreq.c 
>>> b/drivers/acpi/arm64/thermal_cpufreq.c
>>> new file mode 100644
>>> index 000000000000..de834fb013e7
>>> --- /dev/null
>>> +++ b/drivers/acpi/arm64/thermal_cpufreq.c
>>> @@ -0,0 +1,20 @@
>>> +// SPDX-License-Identifier: GPL-2.0-only
>>> +#include <linux/acpi.h>
>>> +
>>> +#ifdef CONFIG_HAVE_ARM_SMCCC_DISCOVERY
>>> +#define SMCCC_SOC_ID_T241      0x036b0241
>>> +
>>> +int acpi_thermal_cpufreq_pctg(void)
>>> +{
>>> +       s32 soc_id = arm_smccc_get_soc_id_version();
>>> +
>>> +       /*
>>> +        * Check JEP106 code for NVIDIA Tegra241 chip (036b:0241) and
>>> +        * reduce the CPUFREQ Thermal reduction percentage to 5%.
>>> +        */
>>> +       if (soc_id == SMCCC_SOC_ID_T241)
>>> +               return 5;
>>> +
>>> +       return 0;
>>> +}
>>> +#endif
>>
>> This part needs an ACK from the ARM folks.
>>
> Sorry, missed adding 'ACPI arm64' maintainers. Added Lorenzo, Sudeep and 
> Hanjun.

Sorry for the late reply, would mind giving me the link which the ID
(SMCCC_SOC_ID_T241) is documented?

Thanks
Hanjun



More information about the linux-arm-kernel mailing list