|
@@ -651,13 +651,36 @@ hist_browser__hpp_color_##_type(struct perf_hpp_fmt *fmt __maybe_unused,\
|
|
|
__hpp__slsmg_color_printf, true); \
|
|
|
}
|
|
|
|
|
|
+#define __HPP_COLOR_ACC_PERCENT_FN(_type, _field) \
|
|
|
+static u64 __hpp_get_acc_##_field(struct hist_entry *he) \
|
|
|
+{ \
|
|
|
+ return he->stat_acc->_field; \
|
|
|
+} \
|
|
|
+ \
|
|
|
+static int \
|
|
|
+hist_browser__hpp_color_##_type(struct perf_hpp_fmt *fmt __maybe_unused,\
|
|
|
+ struct perf_hpp *hpp, \
|
|
|
+ struct hist_entry *he) \
|
|
|
+{ \
|
|
|
+ if (!symbol_conf.cumulate_callchain) { \
|
|
|
+ int ret = scnprintf(hpp->buf, hpp->size, "%8s", "N/A"); \
|
|
|
+ slsmg_printf("%s", hpp->buf); \
|
|
|
+ \
|
|
|
+ return ret; \
|
|
|
+ } \
|
|
|
+ return __hpp__fmt(hpp, he, __hpp_get_acc_##_field, " %6.2f%%", \
|
|
|
+ __hpp__slsmg_color_printf, true); \
|
|
|
+}
|
|
|
+
|
|
|
__HPP_COLOR_PERCENT_FN(overhead, period)
|
|
|
__HPP_COLOR_PERCENT_FN(overhead_sys, period_sys)
|
|
|
__HPP_COLOR_PERCENT_FN(overhead_us, period_us)
|
|
|
__HPP_COLOR_PERCENT_FN(overhead_guest_sys, period_guest_sys)
|
|
|
__HPP_COLOR_PERCENT_FN(overhead_guest_us, period_guest_us)
|
|
|
+__HPP_COLOR_ACC_PERCENT_FN(overhead_acc, period)
|
|
|
|
|
|
#undef __HPP_COLOR_PERCENT_FN
|
|
|
+#undef __HPP_COLOR_ACC_PERCENT_FN
|
|
|
|
|
|
void hist_browser__init_hpp(void)
|
|
|
{
|
|
@@ -671,6 +694,8 @@ void hist_browser__init_hpp(void)
|
|
|
hist_browser__hpp_color_overhead_guest_sys;
|
|
|
perf_hpp__format[PERF_HPP__OVERHEAD_GUEST_US].color =
|
|
|
hist_browser__hpp_color_overhead_guest_us;
|
|
|
+ perf_hpp__format[PERF_HPP__OVERHEAD_ACC].color =
|
|
|
+ hist_browser__hpp_color_overhead_acc;
|
|
|
}
|
|
|
|
|
|
static int hist_browser__show_entry(struct hist_browser *browser,
|