[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z7qK-NFJsqcV0rPw@casper.infradead.org>
Date: Sun, 23 Feb 2025 02:42:00 +0000
From: Matthew Wilcox <willy@...radead.org>
To: mawupeng <mawupeng1@...wei.com>
Cc: akpm@...ux-foundation.org, david@...hat.com, kasong@...cent.com,
ryan.roberts@....com, chrisl@...nel.org,
huang.ying.caritas@...il.com, schatzberg.dan@...il.com,
baohua@...nel.org, hanchuanhua@...o.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm: swap: Avoid infinite loop if no valid swap entry
found during do_swap_page
On Sat, Feb 22, 2025 at 11:59:53AM +0800, mawupeng wrote:
>
>
> On 2025/2/22 11:45, Matthew Wilcox wrote:
> > On Sat, Feb 22, 2025 at 10:46:17AM +0800, Wupeng Ma wrote:
> >> Digging into the source, we found that the swap entry is invalid due to
> >> unknown reason, and this lead to invalid swap_info_struct. Excessive log
> >> printing can fill up the prioritized log space, leading to the purging of
> >> originally valid logs and hindering problem troubleshooting. To make this
> >> more robust, kill this task.
> >
> > this seems like a very bad way to fix this problem
>
> Sure, It's a bad way to fix this. Just a proper way to make it more robust?
> Since it will produce lots of invalid and same log?
We have a mechanism to prevent flooding the log: <linux/ratelimit.h>.
If you grep for 'ratelimit' in include, you'll see a number of
convenience functions exist; not sure whether you'll need to use the raw
ratelilmit stuff, or if you can just use one of the prepared ones.
Powered by blists - more mailing lists