linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors
@ 2021-02-01 14:20 Georgi Djakov
  2021-02-01 18:43 ` Minchan Kim
  2021-02-02  2:15 ` Miaohe Lin
  0 siblings, 2 replies; 3+ messages in thread
From: Georgi Djakov @ 2021-02-01 14:20 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, Georgi Djakov

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@linaro.org>
---
 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;
 	}
 


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors
  2021-02-01 14:20 [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors Georgi Djakov
@ 2021-02-01 18:43 ` Minchan Kim
  2021-02-02  2:15 ` Miaohe Lin
  1 sibling, 0 replies; 3+ messages in thread
From: Minchan Kim @ 2021-02-01 18:43 UTC (permalink / raw)
  To: Georgi Djakov; +Cc: akpm, linux-mm, linux-kernel

On Mon, Feb 01, 2021 at 04:20:55PM +0200, 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@linaro.org>
Acked-by: Minchan Kim <minchan@kernel.org>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors
  2021-02-01 14:20 [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors Georgi Djakov
  2021-02-01 18:43 ` Minchan Kim
@ 2021-02-02  2:15 ` Miaohe Lin
  1 sibling, 0 replies; 3+ messages in thread
From: Miaohe Lin @ 2021-02-02  2:15 UTC (permalink / raw)
  To: Georgi Djakov; +Cc: linux-mm, linux-kernel, Andrew Morton

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@linaro.org>

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

> ---
>  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;
>  	}
>  
> 
> .
> 



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-02  2:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-01 14:20 [PATCH] mm/page_io: Use pr_alert_ratelimited for swap read/write errors Georgi Djakov
2021-02-01 18:43 ` Minchan Kim
2021-02-02  2:15 ` Miaohe Lin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).