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