Message ID | 20240206071452.42673-1-lirongqing@baidu.com |
---|---|
State | New |
Headers | show |
Series | intel_idle: update spec_ctrl register only when necessary | expand |
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index bcf1198..8150d5f 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -176,12 +176,12 @@ static __cpuidle int intel_idle_ibrs(struct cpuidle_device *dev, u64 spec_ctrl = spec_ctrl_current(); int ret; - if (smt_active) + if (smt_active && spec_ctrl) __update_spec_ctrl(0); ret = __intel_idle(dev, drv, index, true); - if (smt_active) + if (smt_active && spec_ctrl) __update_spec_ctrl(spec_ctrl); return ret;
spec_ctrl maybe 0 when mitigations is off, and writing spec_ctrl MSR is expensive operation, so update spec_ctrl only when necessary Signed-off-by: Li RongQing <lirongqing@baidu.com> --- drivers/idle/intel_idle.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)