[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0754e3e3-9c47-47d5-81d9-4574e5b413bc@kylinos.cn>
Date: Mon, 11 Aug 2025 17:25:10 +0800
From: Zihuan Zhang <zhangzihuan@...inos.cn>
To: Oleg Nesterov <oleg@...hat.com>
Cc: "Rafael J . Wysocki" <rafael@...nel.org>,
Peter Zijlstra <peterz@...radead.org>, David Hildenbrand <david@...hat.com>,
Michal Hocko <mhocko@...e.com>, Jonathan Corbet <corbet@....net>,
Ingo Molnar <mingo@...hat.com>, Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>, Ben Segall <bsegall@...gle.com>,
Mel Gorman <mgorman@...e.de>, Valentin Schneider <vschneid@...hat.com>,
len brown <len.brown@...el.com>, pavel machek <pavel@...nel.org>,
Kees Cook <kees@...nel.org>, Andrew Morton <akpm@...ux-foundation.org>,
Lorenzo Stoakes <lorenzo.stoakes@...cle.com>,
"Liam R . Howlett" <Liam.Howlett@...cle.com>,
Vlastimil Babka <vbabka@...e.cz>, Mike Rapoport <rppt@...nel.org>,
Suren Baghdasaryan <surenb@...gle.com>,
Catalin Marinas <catalin.marinas@....com>, Nico Pache <npache@...hat.com>,
xu xin <xu.xin16@....com.cn>, wangfushuai <wangfushuai@...du.com>,
Andrii Nakryiko <andrii@...nel.org>, Christian Brauner <brauner@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>, Jeff Layton <jlayton@...nel.org>,
Al Viro <viro@...iv.linux.org.uk>, Adrian Ratiu
<adrian.ratiu@...labora.com>, linux-pm@...r.kernel.org, linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH v1 5/9] freezer: set default freeze priority for
PF_SUSPEND_TASK processes
在 2025/8/8 22:39, Oleg Nesterov 写道:
> On 08/07, Zihuan Zhang wrote:
>> --- a/kernel/power/process.c
>> +++ b/kernel/power/process.c
>> @@ -147,6 +147,7 @@ int freeze_processes(void)
>>
>> pm_wakeup_clear(0);
>> pm_freezing = true;
>> + freeze_set_default_priority(current, FREEZE_PRIORITY_NEVER);
> But why?
>
> Again, freeze_task() will return false anyway, this process is
> PF_SUSPEND_TASK.
I think there is resaon put it here. For example, systemd-sleep is a
user-space process that executes the suspend flow.
If we don’t set its freeze priority explicitly, our current code may
end up with this user process being the last one that cannot freeze.
Of course, we could adjust the code logic to handle it differently, but
in our model its freeze priority is considered the lowest, so setting it
here ensures consistent behavior.
>> @@ -218,6 +219,7 @@ void thaw_processes(void)
>> WARN_ON(!(curr->flags & PF_SUSPEND_TASK));
>> curr->flags &= ~PF_SUSPEND_TASK;
>>
>> + freeze_set_default_priority(current, FREEZE_PRIORITY_NORMAL);
>> usermodehelper_enable();
> What if current->freeze_priority was changed via
> /proc/pid/freeze_priority you add in 9/9 ?
Sorry, my oversight. You are right — in this case we probably should not
allow user space to change the freeze_priority of a PF_SUSPEND_TASK.
This would avoid unintended behavior during suspend.
>
> Oleg.
>
Powered by blists - more mailing lists