Messages in this thread | | | Subject | Re: [PATCH v5 10/12] mm/gup: /proc/vmstat: pin_user_pages (FOLL_PIN) reporting | From | John Hubbard <> | Date | Mon, 10 Feb 2020 09:07:07 -0800 |
| |
On 2/10/20 2:16 AM, Jan Kara wrote: > On Thu 06-02-20 19:37:33, John Hubbard wrote: >> @@ -2258,6 +2268,8 @@ static int record_subpages(struct page *page, unsigned long addr, >> >> static void put_compound_head(struct page *page, int refs, unsigned int flags) >> { >> + int orig_refs = refs; >> + >> if (flags & FOLL_PIN) { >> if (hpage_pincount_available(page)) >> hpage_pincount_sub(page, refs); >> @@ -2273,6 +2285,8 @@ static void put_compound_head(struct page *page, int refs, unsigned int flags) >> if (refs > 1) >> page_ref_sub(page, refs - 1); >> put_page(page); >> + >> + mod_node_page_state(page_pgdat(page), NR_FOLL_PIN_RELEASED, orig_refs); >> } > > Still not quite happy about this :) Now you update NR_FOLL_PIN_RELEASED > even if 'flags' don't have FOLL_PIN set. You need to have the > mod_node_page_state() inside the "if (flags & FOLL_PIN)" branch above... > > Honza
Arggh, yes that's true. Thanks for catching that, will fix in v6.
thanks, -- John Hubbard NVIDIA
| |