[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bef49dcb-8619-4448-b8d7-6dca3a6cb456@kylinos.cn>
Date: Fri, 15 Aug 2025 16:27:18 +0800
From: Zihuan Zhang <zhangzihuan@...inos.cn>
To: Peter Zijlstra <peterz@...radead.org>
Cc: "Rafael J . Wysocki" <rafael@...nel.org>, Oleg Nesterov
<oleg@...hat.com>, 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 0/9] freezer: Introduce freeze priority model to
address process dependency issues
在 2025/8/14 22:37, Peter Zijlstra 写道:
> On Thu, Aug 07, 2025 at 08:14:09PM +0800, Zihuan Zhang wrote:
>
>> Freeze Window Begins
>>
>> [process A] - epoll_wait()
>> │
>> ▼
>> [process B] - event source (already frozen)
>>
> Can we make epoll_wait() TASK_FREEZABLE? AFAICT it doesn't hold any
> resources, it just sits there waiting for stuff.
Based on the code, it’s ep_poll() that puts the task into the D state,
most likely due to I/O or lower-level driver behavior. In fs/eventpoll.c:
Line:2097 __set_current_state
<https://elixir.bootlin.com/linux/v6.16/C/ident/__set_current_state>(TASK_INTERRUPTIBLE
<https://elixir.bootlin.com/linux/v6.16/C/ident/TASK_INTERRUPTIBLE>);
Simply changing the task state may not actually address the root cause.
Currently, our approach is to identify tasks that are more likely to
cause such issues and freeze them earlier or later in the process to
avoid conflicts.
Powered by blists - more mailing lists