[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0h1xAx7HRRgH_7=D8U71j3yU1qji_5vYyt0ym+Hnrne6g@mail.gmail.com>
Date: Wed, 2 Jul 2025 20:51:52 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Zihuan Zhang <zhangzihuan@...inos.cn>
Cc: rafael@...nel.org, pavel@...nel.org, len.brown@...el.com,
linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] PM: hibernate: Avoid redundant resume_device
assignment in resume_store()
On Fri, May 30, 2025 at 12:00 PM Zihuan Zhang <zhangzihuan@...inos.cn> wrote:
>
> In resume_store(), if the device number written to /sys/power/resume
> is the same as the current swsusp_resume_device, we can skip reassignment.
> This avoids unnecessary locking and improves efficiency slightly.
>
> Signed-off-by: Zihuan Zhang <zhangzihuan@...inos.cn>
> ---
> kernel/power/hibernate.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
> index 519fb09de5e0..504a1c2465ce 100644
> --- a/kernel/power/hibernate.c
> +++ b/kernel/power/hibernate.c
> @@ -1291,6 +1291,9 @@ static ssize_t resume_store(struct kobject *kobj, struct kobj_attribute *attr,
> if (error)
> return error;
>
> + if (dev == swsusp_resume_device)
> + return n;
> +
The main purpose of this function is to run software_resume(), not to
set swsusp_resume_device. You're breaking it with this change.
> sleep_flags = lock_system_sleep();
> swsusp_resume_device = dev;
> unlock_system_sleep(sleep_flags);
> --
> 2.25.1
>
Powered by blists - more mailing lists