On Wed, Apr 19, 2017 at 2:46 AM, Rob Herring <robh+dt@xxxxxxxxxx> wrote: > On Mon, Apr 17, 2017 at 7:32 PM, Tyrel Datwyler > <tyreld@xxxxxxxxxxxxxxxxxx> 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. > > Not really relevant for this patch, but since you are looking at > pseries and refcounting, the refcounting largely exists for pseries. > It's also hard to get right as this type of fix is fairly common. It's > now used for overlays, but we really probably only need to refcount > the overlays or changesets as a whole, not at a node level. If you > have any thoughts on how a different model of refcounting could work > for pseries, I'd like to discuss it. One idea I've been kicking around is differentiating short and long term references to a node. I figure most leaks are due to a missing of_node_put() within a stack frame so it might be possible to use the ftrace infrastructure to detect and emit warnings if a short term reference is leaked. Long term references are slightly harder to deal with, but they're less common so we can add more detailed reference tracking there (devm_of_get_node?). Oliver -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html