intel_idle: update ICX C6 data
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Mon, 8 Mar 2021 14:31:46 +0000 (16:31 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 18 Mar 2021 18:36:34 +0000 (19:36 +0100)
Change 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.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/idle/intel_idle.c

index 3273360f30f731a06ebe74fad94119421ad6b3c8..6cac0b748efa732d4bf99d7a41662f11a694ce80 100644 (file)
@@ -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, },
        {