intel_idle: update ICX C6 data
Artem Bityutskiy
maintainerPATCH 1/1 intel_idle: update ICX C6 data
From: Artem Bityutskiy <[email protected]>
This patch changes IceLake Xeon C6 latency from 128 us to 170 us. The latency was measured with the "wult" tool and corresponds to the 99.99th percentile when measuring with the "nic" method. Note, the 128 us figure correspond to the median latency, but in intel_idle we use the "worst case" latency figure instead.
C6 target residency was increased from 384 us to 600 us, which may result in less C6 residency in some workloads. This value was tested and compared to values 384, and 1000. Value 600 is a reasonable tradeoff between power and performance.
--- drivers/idle/intel_idle.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Changelog:v2->v3: Change target_residency from 1000us to 600us, based on Rui's feedback. v1->v2: Re-measured ICX with newer BIOS 21D02, which has C1 demotion bug fixed.
drivers/idle/intel_idle.c +2 -2
@@ -744,8 +744,8 @@ static struct cpuidle_state icx_cstates[] __initdata = { .name = "C6", .desc = "MWAIT 0x20", .flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED, - .exit_latency = 128, - .target_residency = 384, + .exit_latency = 170, + .target_residency = 600, .enter = &intel_idle, .enter_s2idle = intel_idle_s2idle, }, {
Signature · 1 line
2.29.2
Quoted 30 lines · Artem Bityutskiy
From: Artem Bityutskiy <[email protected]>
This patch changes IceLake Xeon C6 latency from 128 us to 170 us. The latency was measured with the "wult" tool and corresponds to the 99.99th percentile when measuring with the "nic" method. Note, the 128 us figure correspond to the median latency, but in
intel_idlewe use the "worst case" latency figure instead.C6 target residency was increased from 384 us to 600 us, which may result in less C6 residency in some workloads. This value was tested and compared to values 384, and 1000. Value 600 is a reasonable tradeoff between power and performance.
Signed-off-by Artem Bityutskiy <[email protected]>Acked-by Zhang Rui <[email protected]>--- drivers/idle/intel_idle.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)Changelog:
v2->v3: Changetarget_residencyfrom 1000us to 600us, based on Rui's feedback.v1->v2: Re-measured ICX with newer BIOS 21D02, which has C1 demotion bug fixed.drivers/idle/intel_idle.c +0
-0@@ -744,8 +744,8 @@ static struct cpuidle_state icx_cstates[] __initdata = { .name = "C6",
drivers/idle/intel_idle.c static struct cpuidle_state icx_cstates[] __initdata = {
Quoted 10 lines
drivers/idle/intel_idle.c +2
-3.desc = "MWAIT 0x20", .flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED, - .exit_latency = 128, - .target_residency = 384, + .exit_latency = 170, + .target_residency = 600, .enter = &intel_idle, .enter_s2idle = intel_idle_s2idle, }, { --
Applied as 5.13 material, thanks!