]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cpuidle: menu: Optimize bucket assignment when next_timer_ns equals KTIME_MAX
authorZhongqiu Han <quic_zhonhan@quicinc.com>
Sat, 5 Apr 2025 13:53:08 +0000 (21:53 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 9 Apr 2025 17:37:30 +0000 (19:37 +0200)
Directly assign the last bucket value instead of calling which_bucket()
when next_timer_ns equals KTIME_MAX, the largest possible value that
always falls into the last bucket.

This avoids unnecessary calculations and enhances performance.

Reviewed-by: Christian Loehle <christian.loehle@arm.com>
Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
Link: https://patch.msgid.link/20250405135308.1854342-1-quic_zhonhan@quicinc.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/governors/menu.c

index 39aa0aea61c662f9a5d8a159c73a6344f706c5d1..52d5d26fc7c6433e56f337986b018f8bcc2b7c45 100644 (file)
@@ -255,7 +255,7 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev,
                 */
                data->next_timer_ns = KTIME_MAX;
                delta_tick = TICK_NSEC / 2;
-               data->bucket = which_bucket(KTIME_MAX);
+               data->bucket = BUCKETS - 1;
        }
 
        if (unlikely(drv->state_count <= 1 || latency_req == 0) ||