TCC cooling on Meteorlake
Quoted 4 lines
what do you see from /sys/bus/pci/devices/0000:00:04.0/tcc_offset_degree_celsius?
It should return 0 if noone changes the offset.
The offset is set to 14°C on a Meteor Lake CPU.
This behavior applies to our custom kernel(based on vanilla 6.8) as well as the regular Ubuntu kernel builds (tested with 6.8 and 6.14)
Quoted 2 lines
tcc offset is an offset to tjmax, no matter what the tjmax value is, right?
That's true.
We run our Raptor Lake devices with a TCC Offset of 3°C which is what is usually set for those and generations before on a regular Ubuntu for example. This means we actively make sure this value is set to 3 as 0 would mean being too close to tjmax and risking an uncontrolled shutdown(i.e. actually reaching tjmax). Having this value so close to tjmax allows to prevent premature thermal throttling.
So, the much higher default value for Meteor Lake TCC offset basically cancels out their higher temperature range.
Quoted 1 line
yeah. We should add this. Patch will be submitted soon.
Thanks in advance!
Mateusz
Zhang, Rui
reviewerQuoted 6 lines · Mateusz
Quoted 4 lines
what do you see from /sys/bus/pci/devices/0000:00:04.0/tcc_offset_degree_celsius?
It should return 0 if noone changes the offset.
The offset is set to 14°C on a Meteor Lake CPU.
do you know who sets it?
Quoted 11 lines
This behavior applies to our custom kernel(based on vanilla 6.8) as well as the regular Ubuntu kernel builds (tested with 6.8 and 6.14)
Quoted 3 lines
tcc offset is an offset to tjmax, no matter what the tjmax value is,
right?That's true.
We run our Raptor Lake devices with a TCC Offset of 3°C which is what is usually set
and who sets it?
Quoted 11 lines
for those and generations before on a regular Ubuntu for example.
This means we actively make sure this value is set to 3 as 0 would mean being too close to tjmax and risking an uncontrolled shutdown(i.e. actually reaching tjmax).
Having this value so close to tjmax allows to prevent premature thermal throttling.
So, the much higher default value for Meteor Lake TCC offset basically cancels out their higher temperature range.Quoted 1 line
yeah. We should add this. Patch will be submitted soon.
I have applied this patch on a couple of machines that I can access but unfortunately they all have TCC offset bit locked. So please check if it works as expected or not.
And FYI, both intel_tcc_cooling and the proc_thermal "tcc_offset_degree_celsius" attribute are based on the same tcc helpers, so I don't think there is any difference between these two knobs.
From 55b58b8ba7426d8bfde26d78855d4939066918da Mon Sep 17 00:00:00 2001
From: Zhang Rui <[email protected]>
Date: Thu, 13 Mar 2025 13:31:33 +0800
Subject: [PATCH] thermal: intel: intel_tcc_cooling: Add support for recent
client platforms
Add tcc cooling support for recent client platforms including MeteorLake, ArrowLake and LunarLake.
--- drivers/thermal/intel/intel_tcc_cooling.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/thermal/intel/intel_tcc_cooling.c +6 -0
@@ -64,6 +64,12 @@ static const struct x86_cpu_id tcc_ids[] __initconst = {X86_MATCH_VFM (INTEL_RAPTORLAKE ,NULL ),X86_MATCH_VFM (INTEL_RAPTORLAKE_P ,NULL ),X86_MATCH_VFM (INTEL_RAPTORLAKE_S ,NULL ), +X86_MATCH_VFM (INTEL_METEORLAKE ,NULL ), +X86_MATCH_VFM (INTEL_METEORLAKE_L ,NULL ), +X86_MATCH_VFM (INTEL_ARROWLAKE ,NULL ), +X86_MATCH_VFM (INTEL_ARROWLAKE_H ,NULL ), +X86_MATCH_VFM (INTEL_ARROWLAKE_U ,NULL ), + X86_MATCH_VFM(INTEL_LUNARLAKE_M, NULL), {} };
Signature · 1 line
2.43.0
From 55b58b8ba7426d8bfde26d78855d4939066918da Mon Sep 17 00:00:00 2001
From: Zhang Rui <[email protected]>
Date: Thu, 13 Mar 2025 13:31:33 +0800
Subject: [PATCH] thermal: intel: intel_tcc_cooling: Add support for recent
client platforms
Add tcc cooling support for recent client platforms including MeteorLake, ArrowLake and LunarLake.
--- drivers/thermal/intel/intel_tcc_cooling.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/thermal/intel/intel_tcc_cooling.c +6 -0
@@ -64,6 +64,12 @@ static const struct x86_cpu_id tcc_ids[] __initconst = {X86_MATCH_VFM (INTEL_RAPTORLAKE ,NULL ),X86_MATCH_VFM (INTEL_RAPTORLAKE_P ,NULL ),X86_MATCH_VFM (INTEL_RAPTORLAKE_S ,NULL ), +X86_MATCH_VFM (INTEL_METEORLAKE ,NULL ), +X86_MATCH_VFM (INTEL_METEORLAKE_L ,NULL ), +X86_MATCH_VFM (INTEL_ARROWLAKE ,NULL ), +X86_MATCH_VFM (INTEL_ARROWLAKE_H ,NULL ), +X86_MATCH_VFM (INTEL_ARROWLAKE_U ,NULL ), + X86_MATCH_VFM(INTEL_LUNARLAKE_M, NULL), {} };
Signature · 1 line
2.43.0