tools/perf/.clang-format | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tools/perf/.clang-format
In particular, header file ordering is an issue in the tools/perf
directory given the larger number of depended upon libraries.
The order of header file includes was proposed in:
https://lore.kernel.org/linux-perf-users/CAP-5=fUitzKwJONTngiW17XkS7kVr2cDS4cDL_HccJKcnR2EgQ@mail.gmail.com/
Sorting headers is desirable to avoid issues like duplicate includes.
Signed-off-by: Ian Rogers <irogers@google.com>
---
v2: Move the .clang-format file under tools/perf rather than tools/.
---
tools/perf/.clang-format | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 tools/perf/.clang-format
diff --git a/tools/perf/.clang-format b/tools/perf/.clang-format
new file mode 100644
index 000000000000..902b2f7456f6
--- /dev/null
+++ b/tools/perf/.clang-format
@@ -0,0 +1,20 @@
+BasedOnStyle: InheritParentConfig
+SortIncludes: true
+IncludeBlocks: Regroup
+IncludeCategories:
+ # Implicitly the corresponding header for the C file has Priority 0
+ # C Standard Library Headers
+ - Regex: '^<(assert|complex|ctype|errno|fenv|float|inttypes|iso646|limits|locale|math|setjmp|signal|stdalign|stdarg|stdatomic|stdbool|stddef|stdint|stdio|stdlib|stdnoreturn|string|tgmath|threads|time|uchar|wchar|wctype)\.h>'
+ Priority: 1
+ # OS/System-Specific Headers (directories)
+ - Regex: '^<(sys|linux|asm|arpa|net|netinet|x86_64|machine)/.*>'
+ Priority: 2
+ # OS/System-Specific Headers (POSIX/System flat headers)
+ - Regex: '^<(unistd|pthread|fcntl|dirent|dlfcn|poll|sched|semaphore|spawn|syslog|termios|pwd|grp|netdb|sysexits|err|paths|pty|utmp|resolv|ifaddrs|elf|libelf|gelf)\.h>'
+ Priority: 2
+ # Third-Party Library Headers
+ - Regex: '^<.*>'
+ Priority: 3
+ # Your Project's Other Headers
+ - Regex: '^".*"'
+ Priority: 4
--
2.54.0.545.g6539524ca2-goog
On Mon, Apr 27, 2026 at 11:54 PM Ian Rogers <irogers@google.com> wrote: > > In particular, header file ordering is an issue in the tools/perf > directory given the larger number of depended upon libraries. > > The order of header file includes was proposed in: > https://lore.kernel.org/linux-perf-users/CAP-5=fUitzKwJONTngiW17XkS7kVr2cDS4cDL_HccJKcnR2EgQ@mail.gmail.com/ > > Sorting headers is desirable to avoid issues like duplicate includes. > > Signed-off-by: Ian Rogers <irogers@google.com> > --- > v2: Move the .clang-format file under tools/perf rather than tools/. This change helps format header files in tools/perf, otherwise following the parent linux clang-format options. Could we land this in perf-tools-next? Thanks, Ian > --- > tools/perf/.clang-format | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > create mode 100644 tools/perf/.clang-format > > diff --git a/tools/perf/.clang-format b/tools/perf/.clang-format > new file mode 100644 > index 000000000000..902b2f7456f6 > --- /dev/null > +++ b/tools/perf/.clang-format > @@ -0,0 +1,20 @@ > +BasedOnStyle: InheritParentConfig > +SortIncludes: true > +IncludeBlocks: Regroup > +IncludeCategories: > + # Implicitly the corresponding header for the C file has Priority 0 > + # C Standard Library Headers > + - Regex: '^<(assert|complex|ctype|errno|fenv|float|inttypes|iso646|limits|locale|math|setjmp|signal|stdalign|stdarg|stdatomic|stdbool|stddef|stdint|stdio|stdlib|stdnoreturn|string|tgmath|threads|time|uchar|wchar|wctype)\.h>' > + Priority: 1 > + # OS/System-Specific Headers (directories) > + - Regex: '^<(sys|linux|asm|arpa|net|netinet|x86_64|machine)/.*>' > + Priority: 2 > + # OS/System-Specific Headers (POSIX/System flat headers) > + - Regex: '^<(unistd|pthread|fcntl|dirent|dlfcn|poll|sched|semaphore|spawn|syslog|termios|pwd|grp|netdb|sysexits|err|paths|pty|utmp|resolv|ifaddrs|elf|libelf|gelf)\.h>' > + Priority: 2 > + # Third-Party Library Headers > + - Regex: '^<.*>' > + Priority: 3 > + # Your Project's Other Headers > + - Regex: '^".*"' > + Priority: 4 > -- > 2.54.0.545.g6539524ca2-goog >
On Wed, May 20, 2026 at 08:37:24AM -0700, Ian Rogers wrote: > On Mon, Apr 27, 2026 at 11:54 PM Ian Rogers <irogers@google.com> wrote: > > > > In particular, header file ordering is an issue in the tools/perf > > directory given the larger number of depended upon libraries. > > > > The order of header file includes was proposed in: > > https://lore.kernel.org/linux-perf-users/CAP-5=fUitzKwJONTngiW17XkS7kVr2cDS4cDL_HccJKcnR2EgQ@mail.gmail.com/ > > > > Sorting headers is desirable to avoid issues like duplicate includes. > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > --- > > v2: Move the .clang-format file under tools/perf rather than tools/. > > This change helps format header files in tools/perf, otherwise > following the parent linux clang-format options. Could we land this in > perf-tools-next? Thanks, applied to perf-tools-next, for v7.2. - Arnaldo
© 2016 - 2026 Red Hat, Inc.