All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/4]  Avoid some large stack allocations
@ 2023-05-27  3:43 Ian Rogers
  2023-05-27  3:43 ` [PATCH v1 1/4] perf sched: Avoid " Ian Rogers
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ian Rogers @ 2023-05-27  3:43 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, linux-perf-users, linux-kernel

Following on cleaning up .data and .bss in:
https://lore.kernel.org/lkml/20230526183401.2326121-1-irogers@google.com/
Look for some probably too large stack allocations with -Wstack-usage=20000
and pahole.

Don't attempt to cleanup variable length arrays like in:
```
util/header.c: In function ‘write_cache’:
util/header.c:1269:12: warning: stack usage might be unbounded [-Wstack-usage=]
 1269 | static int write_cache(struct feat_fd *ff,
      |            ^~~~~~~~~~~
```

Also leave two allocations relating to session/event processing:
```
util/auxtrace.c: In function ‘auxtrace_queues__add_indexed_event’:
util/auxtrace.c:424:12: warning: stack usage is 65616 bytes [-Wstack-usage=]
  424 | static int auxtrace_queues__add_indexed_event(struct auxtrace_queues *queues,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
util/session.c: In function ‘perf_session__peek_events’:
util/session.c:1822:5: warning: stack usage is 65648 bytes [-Wstack-usage=]
 1822 | int perf_session__peek_events(struct perf_session *session, u64 offset,
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
```

The biggest win is for perf inject where 128kb becomes lazily
allocated when aux or guest data is encountered.

Ian Rogers (4):
  perf sched: Avoid large stack allocations
  perf script: Remove some large stack allocations
  perf inject: Lazily allocate event_copy
  perf inject: Lazily allocate guest_event event_buf

 tools/perf/builtin-inject.c | 31 +++++++++++++++++++++++++------
 tools/perf/builtin-sched.c  | 26 ++++++++++++++++++++++----
 tools/perf/builtin-script.c | 17 +++++++++++++----
 3 files changed, 60 insertions(+), 14 deletions(-)

-- 
2.41.0.rc0.172.g3f132b7071-goog


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

end of thread, other threads:[~2023-06-12 19:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-27  3:43 [PATCH v1 0/4] Avoid some large stack allocations Ian Rogers
2023-05-27  3:43 ` [PATCH v1 1/4] perf sched: Avoid " Ian Rogers
2023-05-27  3:43 ` [PATCH v1 2/4] perf script: Remove some " Ian Rogers
2023-05-27  3:43 ` [PATCH v1 3/4] perf inject: Lazily allocate event_copy Ian Rogers
2023-05-27  3:43 ` [PATCH v1 4/4] perf inject: Lazily allocate guest_event event_buf Ian Rogers
2023-06-12 19:01 ` [PATCH v1 0/4] Avoid some large stack allocations 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.