Since transition from jiffies to sched_clock(), mm_page_alloc
garbadge since we substract from jiffies nanoseconds.
Fix this.

Signed-off-by: Andrey Ryabinin <[email protected]>
---
 include/trace/events/kmem.h |  2 +-
 mm/page_alloc.c             | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h
index 74f69db5d2f7..7963e3f1c66f 100644
--- a/include/trace/events/kmem.h
+++ b/include/trace/events/kmem.h
@@ -214,7 +214,7 @@ TRACE_EVENT(mm_page_alloc,
                __entry->time           = time;
        ),
 
-       TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s lat=%d",
+       TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s 
lat=%llu",
                __entry->page,
                __entry->page ? page_to_pfn(__entry->page) : 0,
                __entry->order,
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 362c2a2235c1..134c93a1962b 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3464,14 +3464,13 @@ void update_maxlat(struct kstat_lat_snap_struct 
*alloc_lat,
 }
 
 static void __alloc_collect_stats(gfp_t gfp_mask, unsigned int order,
-               struct page *page, u64 time)
+               struct page *page, u64 time, u64 current_clock)
 {
 #ifdef CONFIG_VE
        unsigned long flags;
-       u64 current_clock, delta;
+       u64 delta;
        int ind, cpu;
 
-       current_clock = sched_clock();
        delta = current_clock - time;
        if (!(gfp_mask & __GFP_WAIT)) {
                if (in_task())
@@ -3547,7 +3546,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
        int migratetype = allocflags_to_migratetype(gfp_mask);
        unsigned int cpuset_mems_cookie;
        int alloc_flags = ALLOC_WMARK_LOW|ALLOC_CPUSET|ALLOC_FAIR;
-       u64 start;
+       u64 start, current_clock;
 
        gfp_mask &= gfp_allowed_mask;
 
@@ -3618,9 +3617,10 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int 
order,
                                preferred_zone, migratetype);
        }
 
-       __alloc_collect_stats(gfp_mask, order, page, start);
+       current_clock = sched_clock();
+       __alloc_collect_stats(gfp_mask, order, page, start, current_clock);
        trace_mm_page_alloc(page, order, gfp_mask, migratetype,
-                       jiffies_to_usecs(jiffies - start));
+                       (current_clock - start));
 
 out:
        /*
-- 
2.19.2

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to