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

Sumit Gupta sumitg at nvidia.com
Thu Nov 9 03:36:43 PST 2023



On 09/11/23 13:20, Hanjun Guo wrote:
> External email: Use caution opening links or attachments
> 
> 
> 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

The ID is already used in file 'irq-gic-v3.c'. Please refer change [1].

[1] 
https://lore.kernel.org/linux-arm-kernel/20230319024314.3540573-2-sdonthineni@nvidia.com/

Best Regards,
Sumit Gupta



More information about the linux-arm-kernel mailing list