On Fri, Dec 11, 2020 at 12:19:50PM +0800, Muchun Song wrote:
> +++ b/mm/filemap.c
> @@ -207,7 +207,7 @@ static void unaccount_page_cache_page(struct 
> address_space *mapping,
>               if (PageTransHuge(page))
>                       __dec_lruvec_page_state(page, NR_SHMEM_THPS);
>       } else if (PageTransHuge(page)) {
> -             __dec_lruvec_page_state(page, NR_FILE_THPS);
> +             __mod_lruvec_page_state(page, NR_FILE_THPS, -HPAGE_PMD_NR);

+               __mod_lruvec_page_state(page, NR_FILE_THPS, -nr);

> +++ b/mm/huge_memory.c
> @@ -2748,7 +2748,8 @@ int split_huge_page_to_list(struct page *page, struct 
> list_head *list)
>                       if (PageSwapBacked(head))
>                               __dec_lruvec_page_state(head, NR_SHMEM_THPS);
>                       else
> -                             __dec_lruvec_page_state(head, NR_FILE_THPS);
> +                             __mod_lruvec_page_state(head, NR_FILE_THPS,
> +                                                     -HPAGE_PMD_NR);

+                               __mod_lruvec_page_state(head, NR_FILE_THPS,
+                                               -thp_nr_pages(head));

Reply via email to