[PATCH v1 1/2] perf tool: Remove util/cache.h

From: Ian Rogers

Date: Fri Aug 28 2026 - 18:22:43 EST


Move definitions to places they are used, or path.h in the case of
path.c's mkpath function. Remove unused definitions. Fix transitive
include dependencies.

Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/builtin-annotate.c | 2 +-
tools/perf/builtin-config.c | 2 +-
tools/perf/builtin-help.c | 2 +-
tools/perf/perf.c | 8 +++++++-
tools/perf/util/cache.h | 31 ------------------------------
tools/perf/util/config.c | 2 +-
tools/perf/util/help-unknown-cmd.c | 6 +++++-
tools/perf/util/path.c | 1 -
tools/perf/util/path.h | 3 +++
tools/perf/util/strbuf.c | 4 +++-
10 files changed, 22 insertions(+), 39 deletions(-)
delete mode 100644 tools/perf/util/cache.h

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 69cb72b2082a..3efeb845099c 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -11,7 +11,6 @@

#include "util/color.h"
#include <linux/list.h>
-#include "util/cache.h"
#include <linux/rbtree.h>
#include "util/symbol.h"

@@ -38,6 +37,7 @@
#include "util/branch.h"
#include "util/util.h"
#include "ui/progress.h"
+#include "ui/ui.h"

#include <dlfcn.h>
#include <errno.h>
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index 237600643bbd..f4f916241d1d 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -7,10 +7,10 @@
*/
#include "builtin.h"

-#include "util/cache.h"
#include <subcmd/parse-options.h>
#include "util/debug.h"
#include "util/config.h"
+#include "util/path.h"
#include <linux/string.h>
#include <limits.h>
#include <stdio.h>
diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
index 2692b2e40a23..36f5c5e94289 100644
--- a/tools/perf/builtin-help.c
+++ b/tools/perf/builtin-help.c
@@ -4,8 +4,8 @@
*
* Builtin help command
*/
-#include "util/cache.h"
#include "util/config.h"
+#include "util/path.h"
#include "util/strbuf.h"
#include "builtin.h"
#include <subcmd/exec-cmd.h>
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index 1f51e8de6b1b..ad8c8067b765 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -10,13 +10,13 @@
#include "perf.h"

#include "util/build-id.h"
-#include "util/cache.h"
#include "util/env.h"
#include <internal/lib.h> // page_size
#include <subcmd/exec-cmd.h>
#include "util/config.h"
#include <subcmd/run-command.h>
#include "util/parse-events.h"
+#include <subcmd/pager.h>
#include <subcmd/parse-options.h>
#include <subcmd/help.h>
#include "util/debug.h"
@@ -39,6 +39,12 @@
#include <linux/string.h>
#include <linux/zalloc.h>

+#define CMD_EXEC_PATH "--exec-path"
+#define CMD_DEBUGFS_DIR "--debugfs-dir="
+
+#define EXEC_PATH_ENVIRONMENT "PERF_EXEC_PATH"
+#define PERF_PAGER_ENVIRONMENT "PERF_PAGER"
+
static int use_pager = -1;
static FILE *debug_fp = NULL;

diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h
deleted file mode 100644
index 0b61840d4226..000000000000
--- a/tools/perf/util/cache.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __PERF_CACHE_H
-#define __PERF_CACHE_H
-
-#include "strbuf.h"
-#include <subcmd/pager.h>
-#include "../ui/ui.h"
-
-#include <linux/compiler.h>
-#include <linux/string.h>
-
-#define CMD_EXEC_PATH "--exec-path"
-#define CMD_DEBUGFS_DIR "--debugfs-dir="
-
-#define EXEC_PATH_ENVIRONMENT "PERF_EXEC_PATH"
-#define PERF_DEBUGFS_ENVIRONMENT "PERF_DEBUGFS_DIR"
-#define PERF_TRACEFS_ENVIRONMENT "PERF_TRACEFS_DIR"
-#define PERF_PAGER_ENVIRONMENT "PERF_PAGER"
-
-int split_cmdline(char *cmdline, const char ***argv);
-
-#define alloc_nr(x) (((x)+16)*3/2)
-
-static inline int is_absolute_path(const char *path)
-{
- return path[0] == '/';
-}
-
-char *mkpath(char *path_buf, size_t sz, const char *fmt, ...) __printf(3, 4);
-
-#endif /* __PERF_CACHE_H */
diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index 7988149dc7ed..6a310e56a2f1 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -11,7 +11,6 @@
*/
#include <errno.h>
#include <sys/param.h>
-#include "cache.h"
#include "callchain.h"
#include "header.h"
#include <subcmd/exec-cmd.h>
@@ -19,6 +18,7 @@
#include "util/hist.h" /* perf_hist_config */
#include "util/stat.h" /* perf_stat__set_big_num */
#include "util/evsel.h" /* evsel__hw_names, evsel__use_bpf_counters */
+#include "path.h"
#include "srcline.h"
#include "build-id.h"
#include "debug.h"
diff --git a/tools/perf/util/help-unknown-cmd.c b/tools/perf/util/help-unknown-cmd.c
index a0a46e34f8d1..f1cd9d4746f3 100644
--- a/tools/perf/util/help-unknown-cmd.c
+++ b/tools/perf/util/help-unknown-cmd.c
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: GPL-2.0
-#include "cache.h"
#include "config.h"
#include <poll.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <subcmd/help.h>
#include "../builtin.h"
#include "levenshtein.h"
@@ -36,10 +36,14 @@ static int add_cmd_list(struct cmdnames *cmds, struct cmdnames *old)

if (nr > cmds->alloc) {
/* Choose bigger one to alloc */
+#define alloc_nr(x) (((x) + 16) * 3 / 2)
+
if (alloc_nr(cmds->alloc) < nr)
cmds->alloc = nr;
else
cmds->alloc = alloc_nr(cmds->alloc);
+
+#undef alloc_nr
tmp = realloc(cmds->names, cmds->alloc * sizeof(*cmds->names));
if (!tmp)
return -1;
diff --git a/tools/perf/util/path.c b/tools/perf/util/path.c
index 2e62f272fda8..bf5d081707e4 100644
--- a/tools/perf/util/path.c
+++ b/tools/perf/util/path.c
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GPL-2.0
#include "path.h"
-#include "cache.h"
#include <linux/kernel.h>
#include <limits.h>
#include <stdio.h>
diff --git a/tools/perf/util/path.h b/tools/perf/util/path.h
index fb850fb55c60..e7cdb0cb1097 100644
--- a/tools/perf/util/path.h
+++ b/tools/perf/util/path.h
@@ -4,9 +4,12 @@

#include <stddef.h>
#include <stdbool.h>
+#include <linux/compiler.h>

struct dirent;

+char *mkpath(char *path_buf, size_t sz, const char *fmt, ...) __printf(3, 4);
+
int path__join(char *bf, size_t size, const char *path1, const char *path2);
int path__join3(char *bf, size_t size, const char *path1, const char *path2, const char *path3);

diff --git a/tools/perf/util/strbuf.c b/tools/perf/util/strbuf.c
index a64a37628f12..7b94aa1e5ade 100644
--- a/tools/perf/util/strbuf.c
+++ b/tools/perf/util/strbuf.c
@@ -1,5 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
-#include "cache.h"
#include "debug.h"
#include "strbuf.h"
#include <linux/kernel.h>
@@ -54,9 +53,12 @@ int strbuf_grow(struct strbuf *sb, size_t extra)
if (nr <= sb->len)
return -E2BIG;

+#define alloc_nr(x) (((x) + 16) * 3 / 2)
+
if (alloc_nr(sb->alloc) > nr)
nr = alloc_nr(sb->alloc);

+#undef alloc_nr
/*
* Note that sb->buf == strbuf_slopbuf if sb->alloc == 0, and it is
* a static variable. Thus we have to avoid passing it to realloc.
--
2.55.0.897.gb25b4bd76c-goog