From 609fa1be7a2afb38341a9fc185ffebd99553ccd7 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Mon, 18 Apr 2022 12:13:26 -0700 Subject: [PATCH] ANDROID: mm: page_pinner: fix elapsed time Put the elapsed time instead of zero all the time. Bug: 218731671 Signed-off-by: Minchan Kim Change-Id: Ibb319e7dfce2d47481e2462bfb8423fbd2ddad66 --- mm/page_pinner.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mm/page_pinner.c b/mm/page_pinner.c index dec309e7bd00..b81d48fa65fd 100644 --- a/mm/page_pinner.c +++ b/mm/page_pinner.c @@ -275,6 +275,7 @@ void __page_pinner_put_page(struct page *page) struct page_ext *page_ext = lookup_page_ext(page); struct page_pinner *page_pinner; struct captured_pinner record; + u64 now, ts_usec; if (unlikely(!page_ext)) return; @@ -284,8 +285,13 @@ void __page_pinner_put_page(struct page *page) page_pinner = get_page_pinner(page_ext); record.handle = save_stack(GFP_NOWAIT|__GFP_NOWARN); - record.elapsed = min_t(u64, 0, (u64)ktime_to_us(ktime_get_boottime()) - - page_pinner->ts_usec); + now = (u64)ktime_to_us(ktime_get_boottime()); + ts_usec = page_pinner->ts_usec; + + if (now > ts_usec) + record.elapsed = now - ts_usec; + else + record.elapsed = 0; record.state = PP_PUT; capture_page_state(page, &record);