Re: [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi:
On 2021/2/1 22:20, Georgi Djakov wrote:
> If there are errors during swap read or write, they can easily fill
> the log buffer and remove any previous messages that might be useful
> for debugging, especially on systems that rely for logging only on
> the kernel ring-buffer.
> 
> For example, on a systems using zram as swap, we are more likely to
> see any page allocation errors preceding the swap write errors if the
> alerts are ratelimited.
> 
> Signed-off-by: Georgi Djakov <georgi.djakov@xxxxxxxxxx>

Make sense for me. Thanks.
Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>

> ---
>  mm/page_io.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/mm/page_io.c b/mm/page_io.c
> index 92f7941c6d01..485fa5cca4a2 100644
> --- a/mm/page_io.c
> +++ b/mm/page_io.c
> @@ -41,9 +41,9 @@ void end_swap_bio_write(struct bio *bio)
>  		 * Also clear PG_reclaim to avoid rotate_reclaimable_page()
>  		 */
>  		set_page_dirty(page);
> -		pr_alert("Write-error on swap-device (%u:%u:%llu)\n",
> -			 MAJOR(bio_dev(bio)), MINOR(bio_dev(bio)),
> -			 (unsigned long long)bio->bi_iter.bi_sector);
> +		pr_alert_ratelimited("Write-error on swap-device (%u:%u:%llu)\n",
> +				     MAJOR(bio_dev(bio)), MINOR(bio_dev(bio)),
> +				     (unsigned long long)bio->bi_iter.bi_sector);
>  		ClearPageReclaim(page);
>  	}
>  	end_page_writeback(page);
> @@ -106,9 +106,9 @@ static void end_swap_bio_read(struct bio *bio)
>  	if (bio->bi_status) {
>  		SetPageError(page);
>  		ClearPageUptodate(page);
> -		pr_alert("Read-error on swap-device (%u:%u:%llu)\n",
> -			 MAJOR(bio_dev(bio)), MINOR(bio_dev(bio)),
> -			 (unsigned long long)bio->bi_iter.bi_sector);
> +		pr_alert_ratelimited("Read-error on swap-device (%u:%u:%llu)\n",
> +				     MAJOR(bio_dev(bio)), MINOR(bio_dev(bio)),
> +				     (unsigned long long)bio->bi_iter.bi_sector);
>  		goto out;
>  	}
>  
> 
> .
> 





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux