lkml.org 
[lkml]   [2016]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v4 2/2] mm/page_ref: add tracepoint to track down page reference manipulation
    From
    2016-03-03 1:58 GMT+09:00 Vlastimil Babka <vbabka@suse.cz>:
    > On 02/26/2016 01:58 AM, js1304@gmail.com wrote:
    >>
    >> From: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    >>
    >> CMA allocation should be guaranteed to succeed by definition, but,
    >> unfortunately, it would be failed sometimes. It is hard to track down
    >> the problem, because it is related to page reference manipulation and
    >> we don't have any facility to analyze it.
    >>
    >> This patch adds tracepoints to track down page reference manipulation.
    >> With it, we can find exact reason of failure and can fix the problem.
    >> Following is an example of tracepoint output. (note: this example is
    >> stale version that printing flags as the number. Recent version will
    >> print it as human readable string.)
    >>
    >> Enabling this feature bloat kernel text 30 KB in my configuration.
    >>
    >> text data bss dec hex filename
    >> 12127327 2243616 1507328 15878271 f2487f vmlinux_disabled
    >> 12157208 2258880 1507328 15923416 f2f8d8 vmlinux_enabled
    >>
    >
    > That's not bad, and it's even configurable. Thanks for taking the extra care
    > about overhead since v1.
    >
    >> Note that, due to header file dependency problem between mm.h and
    >> tracepoint.h, this feature has to open code the static key functions
    >> for tracepoints. Proposed by Steven Rostedt in following link.
    >>
    >> https://lkml.org/lkml/2015/12/9/699
    >>
    >> v3:
    >> o Add commit description and code comment why this patch open code
    >> the static key functions for tracepoints.
    >> o Notify that example is stale version.
    >> o Add "depends on TRACEPOINTS".
    >>
    >> v2:
    >> o Use static key of each tracepoints to avoid function call overhead
    >> when tracepoints are disabled.
    >> o Print human-readable page flag thanks to newly introduced %pgp option.
    >> o Add more description to Kconfig.debug.
    >>
    >> Acked-by: Michal Nazarewicz <mina86@mina86.com>
    >> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    >
    >
    > Acked-by: Vlastimil Babka <vbabka@suse.cz>
    >
    >> +config DEBUG_PAGE_REF
    >> + bool "Enable tracepoint to track down page reference manipulation"
    >> + depends on DEBUG_KERNEL
    >> + depends on TRACEPOINTS
    >> + ---help---
    >> + This is the feature to add tracepoint for tracking down page
    >> reference
    >> + manipulation. This tracking is useful to diagnosis functional
    >> failure
    >> + due to migration failure caused by page reference mismatch. Be
    >
    >
    > OK.
    >
    >> + careful to turn on this feature because it could bloat some
    >> kernel
    >> + text. In my configuration, it bloats 30 KB. Although kernel text
    >> will
    >> + be bloated, there would be no runtime performance overhead if
    >> + tracepoint isn't enabled thanks to jump label.
    >
    >
    > I would just write something like:
    >
    > Enabling this feature adds about 30 KB to the kernel code, but runtime
    > performance overhead is virtually none until the tracepoints are actually
    > enabled.

    Okay, better!
    Andrew, do you want fixup patch from me or could you simply handle it?

    Thanks.

    \
     
     \ /
      Last update: 2016-03-03 09:21    [W:6.992 / U:0.856 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site