diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
index 77810a30a4cc339c8f550d8bdc738e078bc15107..ffd41744886e4d55b730b0ebc06c2b91d5c12d62 100644
--- a/tools/perf/builtin-c2c.c
+++ b/tools/perf/builtin-c2c.c
@@ -1104,6 +1104,17 @@ static struct c2c_dimension dim_tid = {
 	.se		= &sort_thread,
 };
 
+static struct c2c_dimension dim_symbol = {
+	.name		= "symbol",
+	.se		= &sort_sym,
+};
+
+static struct c2c_dimension dim_dso = {
+	.header		= HEADER_BOTH("Shared", "Object"),
+	.name		= "dso",
+	.se		= &sort_dso,
+};
+
 static struct c2c_dimension *dimensions[] = {
 	&dim_dcacheline,
 	&dim_offset,
@@ -1135,6 +1146,8 @@ static struct c2c_dimension *dimensions[] = {
 	&dim_dram_rmt,
 	&dim_pid,
 	&dim_tid,
+	&dim_symbol,
+	&dim_dso,
 	NULL,
 };
 
@@ -1249,12 +1262,17 @@ static int c2c_hists__init_output(struct perf_hpp_list *hpp_list, char *name)
 static int c2c_hists__init_sort(struct perf_hpp_list *hpp_list, char *name)
 {
 	struct c2c_fmt *c2c_fmt = get_format(name);
+	struct c2c_dimension *dim;
 
 	if (!c2c_fmt) {
 		reset_dimensions();
 		return sort_dimension__add(hpp_list, name, NULL, 0);
 	}
 
+	dim = c2c_fmt->dim;
+	if (dim == &dim_dso)
+		hpp_list->dso = 1;
+
 	perf_hpp_list__register_sort_field(hpp_list, &c2c_fmt->fmt);
 	return 0;
 }