All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/3] perf: Fix kwork memory sanitization and libunwind test builds
@ 2026-05-21  7:24 Ian Rogers
  2026-05-21  7:24 ` [PATCH v1 1/3] perf build: Unconditionally set up libunwind feature build flags Ian Rogers
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Ian Rogers @ 2026-05-21  7:24 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Jiri Olsa, Ian Rogers, Adrian Hunter, James Clark,
	linux-kernel, linux-perf-users

The combination of the libunwind refactoring and build system changes
exposed a build-test regression for the libunwind build using a cached
feature dump. Re-send kwork fixes [1] moving a definition to kwork.h
to avoid breaking no libbpf builds.

1. Build Fix for libunwind:
   "make feature-dump" runs without LIBUNWIND=1, skipping the setup of
   libunwind LDFLAGS. When Makefile.feature is included to generate the
   cached FEATURE-DUMP, the local test-libunwind.bin compiles without
   arch-specific link flags (-lunwind-x86_64) and fails, caching a false
   negative ("feature-libunwind=0"). Later builds (such as make_libunwind_O
   reusing the dump) compile the unwinder based on CONFIG_LIBUNWIND (remote)
   but disable HAVE_LIBUNWIND_SUPPORT (local), breaking compilation due to
   missing maps__e_machine declarations in maps.h. Fixed by unconditionally
   setting up libunwind feature build flags in Makefile.config.

2. kwork ASAN Double-Free & Leaks:
   - Solves double-free in the record command argument array due to
     parse_options mutation, by preserving original pointers in a calloc'ed
     to_free buffer.
   - Ensures kwork_usage string is freed on all exit paths.

3. kwork Unified Memory Lifecycle:
   - Establishes a unified memory ownership model for kwork_work by
     ensuring work names are dynamically duplicated via strdup() and
     consistently freed using work_exit() and a central perf_kwork__exit()
     teardown path.

[1] https://lore.kernel.org/linux-perf-users/20260520190538.142018-32-irogers@google.com/

Ian Rogers (3):
  perf build: Unconditionally set up libunwind feature build flags
  perf kwork: Fix address sanitizer issues
  perf kwork: Fix memory management of kwork_work

 tools/perf/Makefile.config  | 103 ++++++++++++------------
 tools/perf/builtin-kwork.c  | 151 ++++++++++++++++++++++++++++--------
 tools/perf/util/bpf_kwork.c |  14 +++-
 tools/perf/util/kwork.h     |   9 +++
 4 files changed, 188 insertions(+), 89 deletions(-)

-- 
2.54.0.746.g67dd491aae-goog


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-05-22 23:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-21  7:24 [PATCH v1 0/3] perf: Fix kwork memory sanitization and libunwind test builds Ian Rogers
2026-05-21  7:24 ` [PATCH v1 1/3] perf build: Unconditionally set up libunwind feature build flags Ian Rogers
2026-05-21  7:24 ` [PATCH v1 2/3] perf kwork: Fix address sanitizer issues Ian Rogers
2026-05-21  7:24 ` [PATCH v1 3/3] perf kwork: Fix memory management of kwork_work Ian Rogers
2026-05-21  9:34   ` sashiko-bot
2026-05-22 21:33 ` [PATCH v1 0/3] perf: Fix kwork memory sanitization and libunwind test builds Ian Rogers
2026-05-22 23:52   ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.