Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1625738

Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle

From Frank Rowand <frowand.list@gmail.com>
Newsgroups linux.kernel
Subject Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle
Date 2017-04-19 02:10 +0200
Message-ID <txLm2-4su-3@gated-at.bofh.it> (permalink)
References <txplv-7EF-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 04/17/17 17:32, Tyrel Datwyler wrote:
> This patch introduces event tracepoints for tracking a device_nodes
> reference cycle as well as reconfig notifications generated in response
> to node/property manipulations.
> 
> With the recent upstreaming of the refcount API several device_node
> underflows and leaks have come to my attention in the pseries (DLPAR) dynamic
> logical partitioning code (ie. POWER speak for hotplugging virtual and physcial
> resources at runtime such as cpus or IOAs). These tracepoints provide a
> easy and quick mechanism for validating the reference counting of
> device_nodes during their lifetime.
> 
> Further, when pseries lpars are migrated to a different machine we
> perform a live update of our device tree to bring it into alignment with the
> configuration of the new machine. The of_reconfig_notify trace point
> provides a mechanism that can be turned for debuging the device tree
> modifications with out having to build a custom kernel to get at the
> DEBUG code introduced by commit 00aa3720.

I do not like changing individual (or small groups of) printk() style
debugging information to tracepoint style.

As far as I know, there is no easy way to combine trace data and printk()
style data to create a single chronology of events.  If some of the
information needed to debug an issue is trace data and some is printk()
style data then it becomes more difficult to understand the overall
situation.

If Rob wants to convert printk() style data to trace data (and I can't
convince him otherwise) then I will have further comments on this specific
patch.

-Frank

> 
> The following trace events are provided: of_node_get, of_node_put,
> of_node_release, and of_reconfig_notify. These trace points require a kernel
> built with ftrace support to be enabled. In a typical environment where
> debugfs is mounted at /sys/kernel/debug the entire set of tracepoints
> can be set with the following:
> 
>   echo "of:*" > /sys/kernel/debug/tracing/set_event
> 
> or
> 
>   echo 1 > /sys/kernel/debug/tracing/of/enable
> 
> The following shows the trace point data from a DLPAR remove of a cpu
> from a pseries lpar:
> 
> cat /sys/kernel/debug/tracing/trace | grep "POWER8@10"
> 
> cpuhp/23-147   [023] ....   128.324827:
> 	of_node_put: refcount=5, dn->full_name=/cpus/PowerPC,POWER8@10
> cpuhp/23-147   [023] ....   128.324829:
> 	of_node_put: refcount=4, dn->full_name=/cpus/PowerPC,POWER8@10
> cpuhp/23-147   [023] ....   128.324829:
> 	of_node_put: refcount=3, dn->full_name=/cpus/PowerPC,POWER8@10
> cpuhp/23-147   [023] ....   128.324831:
> 	of_node_put: refcount=2, dn->full_name=/cpus/PowerPC,POWER8@10
>    drmgr-7284  [009] ....   128.439000:
> 	of_node_put: refcount=1, dn->full_name=/cpus/PowerPC,POWER8@10
>    drmgr-7284  [009] ....   128.439002:
> 	of_reconfig_notify: action=DETACH_NODE, dn->full_name=/cpus/PowerPC,POWER8@10,
> 			    prop->name=null, old_prop->name=null
>    drmgr-7284  [009] ....   128.439015:
> 	of_node_put: refcount=0, dn->full_name=/cpus/PowerPC,POWER8@10
>    drmgr-7284  [009] ....   128.439016:
> 	of_node_release: dn->full_name=/cpus/PowerPC,POWER8@10, dn->_flags=4
> 
> Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
> ---
>  drivers/of/dynamic.c      | 30 ++++++---------
>  include/trace/events/of.h | 93 +++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 105 insertions(+), 18 deletions(-)
>  create mode 100644 include/trace/events/of.h
> 

< snip >

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] of: introduce event tracepoints for dynamic device_node lifecyle Tyrel Datwyler <tyreld@linux.vnet.ibm.com> - 2017-04-18 02:40 +0200
  Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <tyreld@linux.vnet.ibm.com> - 2017-04-18 02:40 +0200
  Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle Rob Herring <robh+dt@kernel.org> - 2017-04-18 18:50 +0200
    Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle "Oliver O'Halloran" <oohall@gmail.com> - 2017-04-19 04:40 +0200
      Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle Michael Ellerman <mpe@ellerman.id.au> - 2017-04-19 12:20 +0200
        Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <tyreld@linux.vnet.ibm.com> - 2017-04-19 23:20 +0200
  Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-19 02:10 +0200
    Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle Michael Ellerman <mpe@ellerman.id.au> - 2017-04-19 03:40 +0200
      Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-19 04:40 +0200
        Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <tyreld@linux.vnet.ibm.com> - 2017-04-19 20:40 +0200
      Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <turtle.in.the.kernel@gmail.com> - 2017-04-20 01:30 +0200
        Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Steven Rostedt <rostedt@goodmis.org> - 2017-04-20 04:40 +0200
          Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-20 06:50 +0200
          Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <turtle.in.the.kernel@gmail.com> - 2017-04-20 07:30 +0200
            Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Steven Rostedt <rostedt@goodmis.org> - 2017-04-20 15:40 +0200
        Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-20 06:50 +0200
          Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-20 07:20 +0200
          Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <turtle.in.the.kernel@gmail.com> - 2017-04-20 19:00 +0200
            Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-20 21:40 +0200
              Re: [PATCH] of: introduce event tracepoints for dynamic device_node lifecyle Michael Ellerman <mpe@ellerman.id.au> - 2017-04-21 04:00 +0200
    Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-19 03:50 +0200
      Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Steven Rostedt <rostedt@goodmis.org> - 2017-04-19 05:00 +0200
        Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Tyrel Datwyler <tyreld@linux.vnet.ibm.com> - 2017-04-19 20:50 +0200
          Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-20 04:40 +0200
            Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-20 12:50 +0200
    Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Steven Rostedt <rostedt@goodmis.org> - 2017-04-19 04:50 +0200
      Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-19 05:20 +0200
  Re: [PATCH] of: introduce event tracepoints for dynamic device_node  lifecyle Frank Rowand <frowand.list@gmail.com> - 2017-04-19 19:50 +0200

csiph-web