Re: [PATCH 1/3] mm, swap: ratelimit bad swap entry reports in get_swap_device()

"David Hildenbrand (Arm)" <[email protected]>
Newsgroups org.kvack.linux-mm,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 8/11/26 18:48, Pedro Falcato wrote:
> On Tue, Aug 11, 2026 at 05:33:54PM +0200, David Hildenbrand (Arm) wrote:
>> On 8/10/26 18:26, Breno Leitao wrote:
>>> A corrupt page table hands the same bogus entry to get_swap_device() on
>>> every access to the mapping, and every rejection is logged. One machine
>>> logged 6185620 copies of the same line in a few hours.
>>>
>>> Rate limit both prints.
>>>
>>> Signed-off-by: Breno Leitao <[email protected]>
>>> ---
>>>  mm/swapfile.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/mm/swapfile.c b/mm/swapfile.c
>>> index 4d4e3e3059f6b..9ab11dc24e4f1 100644
>>> --- a/mm/swapfile.c
>>> +++ b/mm/swapfile.c
>>> @@ -1899,11 +1899,11 @@ struct swap_info_struct *get_swap_device(swp_entry_t entry)
>>>  
>>>  	return si;
>>>  bad_nofile:
>>> -	pr_err("%s: %s%08lx\n", __func__, Bad_file, entry.val);
>>> +	pr_err_ratelimited("%s: %s%08lx\n", __func__, Bad_file, entry.val);
>>>  out:
>>>  	return NULL;
>>>  put_out:
>>> -	pr_err("%s: %s%08lx\n", __func__, Bad_offset, entry.val);
>>> +	pr_err_ratelimited("%s: %s%08lx\n", __func__, Bad_offset, entry.val);
>>>  	percpu_ref_put(&si->users);
>>>  	return NULL;
>>>  }
>>>
>>
>> In print_bad_page_map() we use something more advanced
>> (is_bad_page_map_ratelimited): essentially a burst of 60 followed by 1minute of
>> silence.
> 
> Is it more advanced? It just looks like a handcoded version of __ratelimit.
> 
> ... I hate it now. I'll send a patch I guess.

Thanks for cleaning that up!

-- 
Cheers,

David
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.