On Mon, Nov 27, 2017 at 10:07:24PM +0800, Jin Yao wrote:
In current stat-shadow.c, the rbtree deleting is ignored.
The patch reconstructs the code of rblist init/free, and adds
the implementation to node_delete method of rblist.
Signed-off-by: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>
---
tools/perf/util/stat-shadow.c | 33 +++++++++++++++++++++++++++++----
tools/perf/util/stat.h | 3 +++
2 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index c53b80d..0fdd2aa 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -40,6 +40,7 @@ static struct stats runtime_aperf_stats[NUM_CTX][MAX_NR_CPUS];
static struct rblist runtime_saved_values;
static bool have_frontend_stalled;
+struct runtime_stat rt_stat;
struct stats walltime_nsecs_stats;
struct saved_value {
@@ -103,6 +104,18 @@ static struct rb_node *saved_value_new(struct rblist *rblist __maybe_unused,
return &nd->rb_node;
}
+static void saved_value_delete(struct rblist *rblist __maybe_unused,
+ struct rb_node *rb_node)
+{
+ struct saved_value *v;
+
+ BUG_ON(!rb_node);
+ v = container_of(rb_node,
+ struct saved_value,
+ rb_node);
any reason for this to be cut on 3 lines? single line wouldn't cross 80 chars length..
jirka