diff mbox series

mm/zsmalloc.c: fix the migrated zspage statistics.

Message ID 1574990967-23391-1-git-send-email-chanho.min@lge.com (mailing list archive)
State New, archived
Headers show
Series mm/zsmalloc.c: fix the migrated zspage statistics. | expand

Commit Message

Chanho Min Nov. 29, 2019, 1:29 a.m. UTC
When zspage is migrated to the other zone, the zone page state should
be updated as well.

Signed-off-by: Chanho Min <chanho.min@lge.com>
Signed-off-by: Jinsuk Choi <jjinsuk.choi@lge.com>
---
 mm/zsmalloc.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Vlastimil Babka Nov. 29, 2019, 3:17 p.m. UTC | #1
On 11/29/19 2:29 AM, Chanho Min wrote:
> When zspage is migrated to the other zone, the zone page state should
> be updated as well.

What are the user visible effects? I assume NR_ZSPAGES accounting can go
wrong otherwise? Has it been observed in practice?
Should we Cc stable and identify a Fixes: commit?

Thanks,
Vlastimil

> Signed-off-by: Chanho Min <chanho.min@lge.com>
> Signed-off-by: Jinsuk Choi <jjinsuk.choi@lge.com>
> ---
>  mm/zsmalloc.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> index 2b2b9aa..22d17ec 100644
> --- a/mm/zsmalloc.c
> +++ b/mm/zsmalloc.c
> @@ -2069,6 +2069,11 @@ static int zs_page_migrate(struct address_space *mapping, struct page *newpage,
>  		zs_pool_dec_isolated(pool);
>  	}
>  
> +	if (page_zone(newpage) != page_zone(page)) {
> +		dec_zone_page_state(page, NR_ZSPAGES);
> +		inc_zone_page_state(newpage, NR_ZSPAGES);
> +	}
> +
>  	reset_page(page);
>  	put_page(page);
>  	page = newpage;
>
Sergey Senozhatsky Dec. 2, 2019, 2:39 a.m. UTC | #2
On (19/11/29 10:29), Chanho Min wrote:
> When zspage is migrated to the other zone, the zone page state should
> be updated as well.
> 
> Signed-off-by: Chanho Min <chanho.min@lge.com>
> Signed-off-by: Jinsuk Choi <jjinsuk.choi@lge.com>

Looks good to me.

Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>

	-ss
Minchan Kim Dec. 4, 2019, 1:23 a.m. UTC | #3
On Fri, Nov 29, 2019 at 10:29:27AM +0900, Chanho Min wrote:
> When zspage is migrated to the other zone, the zone page state should
> be updated as well.
> 
> Signed-off-by: Chanho Min <chanho.min@lge.com>
> Signed-off-by: Jinsuk Choi <jjinsuk.choi@lge.com>

Hi Chanho,

It seems your previous mail included fix and stable tag was mangled by
HTML mail. Could you resend the patch it unless Andrew pick up?

Acked-by: Minchan Kim <minchan@kernel.org>

Thanks!
diff mbox series

Patch

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 2b2b9aa..22d17ec 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -2069,6 +2069,11 @@  static int zs_page_migrate(struct address_space *mapping, struct page *newpage,
 		zs_pool_dec_isolated(pool);
 	}
 
+	if (page_zone(newpage) != page_zone(page)) {
+		dec_zone_page_state(page, NR_ZSPAGES);
+		inc_zone_page_state(newpage, NR_ZSPAGES);
+	}
+
 	reset_page(page);
 	put_page(page);
 	page = newpage;