All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Alireza Haghdoost <haghdoost@uber.com>
Cc: Ian Rogers <irogers@google.com>,
	acme@kernel.org, adrian.hunter@intel.com, james.clark@linaro.org,
	jolsa@kernel.org, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, mingo@redhat.com,
	peterz@infradead.org
Subject: Re: [PATCH v4 00/23] perf symbol: Sorted arrays, DSO-owned lifetimes, and memory shrinking
Date: Sat, 14 Nov 2026 19:35:53 -0800	[thread overview]
Message-ID: <avkomXhSg5evA7c3@z2> (raw)
In-Reply-To: <CA+w=M=SnFtEHA9NhSM8gyCGuA19Oazpx6X7yYTtgatsi3rKfCg@mail.gmail.com>

Hello,

On Fri, Nov 13, 2026 at 09:25:34PM -0800, Alireza Haghdoost wrote:
> On Fri, Nov 13, 2026 at 9:17 AM Ian Rogers <irogers@google.com> wrote:
> >
> > When profiling large binaries or long-running workloads with many DSOs and
> > threads, symbol and DSO tables frequently dominate perf's memory footprint
> > and startup latency.
> [...]
> 
> Hi Ian,
> 
> Thanks for v4, and for pulling the three fixes out; they are in
> perf-tools-next now. I posted v7 of the lazy loading series on current
> perf-tools-next. I apologize for the late turnover.
> 
> Lazy loading stays opt-in there for now (just don't have confidence
> yet to make it default, see
> my reply on v6 4/5). From reading v4, the two series overlap in three places:
> 
> - Both use bit 14 of the symbol flags: SYMBOL_FLAG_ANNOTATED in 11/23
>   and SYMBOL_FLAG_LAZY_NAME in v7 3/4. Bit 15 is the last free one.
> - 18/23 replaces the rb-tree. v7 3/4 walks it in two places during
>   loading: the alias name loading before symbols__fixup_duplicate(),
>   and the check that skips a .dynsym entry copying a lazy .symtab
>   symbol. Both would become walks over the sorted array.
> - 15/23 defers elf_sym__name() in dso__load_sym_internal(), the loop
>   where v7 records the name offset instead of the name. Both want the
>   name as late as possible, so this looks mechanical.
> 
> Namhyung, which order do you prefer? lazy loading v7 is four patches;
> if Ian's v4 goes
> first, I'll rebase v7 on it.

Thanks for understanding.  I have no preference and will merge whatever
ready first.  It seems your v7 needs some updates.  I think I'll merge
some of Ian's patches first but it seems that's not part of the
conflicts.  Let me take a look. :)

Thanks,
Namhyung


  reply	other threads:[~2026-11-15  3:35 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-28  7:52 [PATCH v1 0/7] perf symbol: Reference counting, flat array storage, and LRU shrinking Ian Rogers
2026-09-28  7:52 ` [PATCH v1 1/7] perf symbol: Add accessor functions for struct symbol fields Ian Rogers
2026-09-28  7:52 ` [PATCH v1 2/7] perf symbol: Remove symbol_conf.priv_size and negative-offset allocations Ian Rogers
2026-09-28  7:52 ` [PATCH v1 3/7] perf symbol: Switch backing storage from rbtree to struct symbols array Ian Rogers
2026-09-28  7:52 ` [PATCH v1 4/7] perf symbol: Add reference counting and DECLARE_RC_STRUCT(symbol) Ian Rogers
2026-09-28  7:52 ` [PATCH v1 5/7] perf symbol: Add LRU memory shrinking for symbols, DSOs, and machines Ian Rogers
2026-09-28  7:52 ` [PATCH v1 6/7] perf session: Periodically shrink symbols and DSOs during event processing Ian Rogers
2026-09-28  7:52 ` [PATCH v1 7/7] perf test symbols: Add tests for symbol and DSO LRU shrinking Ian Rogers
2026-09-28 15:37 ` [PATCH v1 0/7] perf symbol: Reference counting, flat array storage, and " Ian Rogers
2026-09-28 19:45 ` Alireza Haghdoost
2026-09-28 20:55   ` Ian Rogers
2026-09-28 21:51     ` Namhyung Kim
2026-09-28 22:04       ` Ian Rogers
2026-09-29  0:12         ` Alireza Haghdoost
2026-09-29 18:09           ` Namhyung Kim
2026-09-29 21:24             ` Alireza Haghdoost
2026-09-29 18:06         ` Namhyung Kim
2026-10-27 23:14 ` [PATCH v2 00/18] perf symbol: Reference counting, sorted arrays, and memory shrinking Ian Rogers
2026-10-27 23:14   ` [PATCH v2 01/18] perf bench internals: Add symbols and maps benchmarks Ian Rogers
2026-10-29 19:46     ` Alireza Haghdoost
2026-11-01  2:48     ` Namhyung Kim
2026-10-27 23:14   ` [PATCH v2 02/18] perf demangle: Add fast-path prefix checks for Rust and Java demanglers Ian Rogers
2026-10-27 23:14   ` [PATCH v2 03/18] perf symbol: Add accessor functions for struct symbol fields Ian Rogers
2026-10-30  4:08     ` Alireza Haghdoost
2026-10-27 23:14   ` [PATCH v2 04/18] perf map_browser: Compute symbol browser index on demand Ian Rogers
2026-10-27 23:14   ` [PATCH v2 05/18] perf db-export: Store symbol database IDs in a hashmap Ian Rogers
2026-10-27 23:15   ` [PATCH v2 06/18] perf annotate: Move struct annotation to a hashmap and remove symbol_conf.priv_size Ian Rogers
2026-10-30 12:51     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 07/18] perf symbol: Switch backing storage from rbtree to struct symbols array Ian Rogers
2026-10-30 13:12     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 08/18] perf symbol: Add reference counting and DECLARE_RC_STRUCT(symbol) Ian Rogers
2026-10-30 13:22     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 09/18] perf symbol: Optimize symbol sorting with natural-run merge sort and binary insertion Ian Rogers
2026-10-30 13:27     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 10/18] perf maps: Optimize tail insertion and small-append sorting Ian Rogers
2026-10-27 23:15   ` [PATCH v2 11/18] perf symbol-elf: Cache ELF program/section headers and defer symbol name lookup Ian Rogers
2026-10-30 13:32     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 12/18] perf rwsem: Add down_read_trylock() and down_write_trylock() Ian Rogers
2026-10-30 13:39     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 13/18] perf vdso: Constify dso parameter in dso__is_vdso() Ian Rogers
2026-10-27 23:15   ` [PATCH v2 14/18] perf machine: Protect machines->guests rbtree with a rw_semaphore Ian Rogers
2026-10-27 23:15   ` [PATCH v2 15/18] perf symbol: Add memory shrinking for symbols, DSOs, and machines Ian Rogers
2026-10-30 13:53     ` Alireza Haghdoost
2026-10-27 23:15   ` [PATCH v2 16/18] perf session: Add dso__session() and session-scoped allocation wrappers Ian Rogers
2026-10-27 23:15   ` [PATCH v2 17/18] perf symbol: Use session allocation wrappers in symbol, DSO, thread, and hist paths Ian Rogers
2026-10-27 23:15   ` [PATCH v2 18/18] perf test symbols: Add tests for symbol shrinking and session alloc wrappers Ian Rogers
2026-10-30 13:55     ` Alireza Haghdoost
2026-10-28 20:29   ` [PATCH v2 00/18] perf symbol: Reference counting, sorted arrays, and memory shrinking Ian Rogers
2026-10-30 14:02     ` Alireza Haghdoost
2026-10-30 16:10       ` Ian Rogers
2026-10-30 17:57         ` Ian Rogers
2026-10-31 17:22           ` David Laight
2026-11-10 22:07   ` [PATCH v3 00/20] perf symbol: Sorted arrays, DSO-owned lifetimes, " Ian Rogers
2026-11-10 22:07     ` [PATCH v3 01/20] perf map_browser: Fix browser index heap corruption by computing on demand Ian Rogers
2026-11-10 22:20       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 02/20] perf machine: Protect machines->guests rbtree with a rw_semaphore Ian Rogers
2026-11-10 22:22       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 03/20] perf vdso: Constify dso parameter in dso__is_vdso() Ian Rogers
2026-11-10 22:14       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 04/20] perf rwsem: Add down_read_trylock() and down_write_trylock() Ian Rogers
2026-11-10 22:33       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 05/20] perf map_symbol: Add struct dso_symbol and use for parent symbols Ian Rogers
2026-11-10 22:24       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 06/20] perf call-path: Use struct dso_symbol to retain symbol DSO lifetimes Ian Rogers
2026-11-10 22:20       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 07/20] perf db-export: Store symbol database IDs in a hashmap Ian Rogers
2026-11-10 22:25       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 08/20] perf annotate: Move struct annotation to a hashmap and remove symbol_conf.priv_size Ian Rogers
2026-11-10 22:26       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 09/20] perf bench internals: Add symbols benchmark Ian Rogers
2026-11-10 22:21       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 10/20] perf bench internals: Add maps benchmark Ian Rogers
2026-11-10 22:24       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 11/20] perf demangle: Add fast-path prefix checks for Rust and Java demanglers Ian Rogers
2026-11-10 22:23       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 12/20] perf symbol-elf: Cache ELF program/section headers and defer symbol name lookup Ian Rogers
2026-11-10 22:25       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 13/20] perf maps: Optimize tail insertion and small-append sorting Ian Rogers
2026-11-10 22:37       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 14/20] perf symbol: Add accessor functions for struct symbol fields Ian Rogers
2026-11-10 22:36       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 15/20] perf symbol: Switch backing storage from rbtree to struct symbols array Ian Rogers
2026-11-10 22:41       ` sashiko-bot
2026-11-10 22:07     ` [PATCH v3 16/20] perf symbol: Optimize symbol sorting with natural-run merge sort and binary insertion Ian Rogers
2026-11-10 22:34       ` sashiko-bot
2026-11-10 22:08     ` [PATCH v3 17/20] perf symbol: Add memory shrinking for symbols, DSOs, and machines Ian Rogers
2026-11-10 22:46       ` sashiko-bot
2026-11-10 22:08     ` [PATCH v3 18/20] perf session: Add dso__session() and session-scoped allocation wrappers Ian Rogers
2026-11-10 22:46       ` sashiko-bot
2026-11-10 22:08     ` [PATCH v3 19/20] perf symbol: Use session allocation wrappers in symbol, DSO, thread, and hist paths Ian Rogers
2026-11-10 22:55       ` sashiko-bot
2026-11-10 22:08     ` [PATCH v3 20/20] perf test symbols: Add tests for symbol shrinking and session alloc wrappers Ian Rogers
2026-11-10 22:44       ` sashiko-bot
2026-11-13 17:17     ` [PATCH v4 00/23] perf symbol: Sorted arrays, DSO-owned lifetimes, and memory shrinking Ian Rogers
2026-11-13 17:17       ` [PATCH v4 01/23] perf machine: Fix NULL deref on allocation failure in __machine__findnew_thread() Ian Rogers
2026-11-13 17:26         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 02/23] perf threads: Avoid table->lock self-deadlock in threads__for_each_thread() Ian Rogers
2026-11-13 17:30         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 03/23] perf tools: Remove perf_singlethreaded Ian Rogers
2026-11-13 17:41         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 04/23] perf map_browser: Fix browser index heap corruption by computing on demand Ian Rogers
2026-11-13 17:31         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 05/23] perf machine: Protect machines->guests rbtree with a rw_semaphore Ian Rogers
2026-11-13 17:33         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 06/23] perf vdso: Constify dso parameter in dso__is_vdso() Ian Rogers
2026-11-13 17:26         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 07/23] perf rwsem: Add down_read_trylock() and down_write_trylock() Ian Rogers
2026-11-13 17:27         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 08/23] perf map_symbol: Add struct dso_symbol and use for parent symbols Ian Rogers
2026-11-13 17:33         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 09/23] perf call-path: Use struct dso_symbol to retain symbol DSO lifetimes Ian Rogers
2026-11-13 17:30         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 10/23] perf db-export: Store symbol database IDs in a hashmap Ian Rogers
2026-11-13 17:33         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 11/23] perf annotate: Move struct annotation to a hashmap and remove symbol_conf.priv_size Ian Rogers
2026-11-13 17:38         ` sashiko-bot
2026-11-15  4:06         ` Namhyung Kim
2026-11-13 17:17       ` [PATCH v4 12/23] perf bench internals: Add symbols benchmark Ian Rogers
2026-11-13 17:30         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 13/23] perf bench internals: Add maps benchmark Ian Rogers
2026-11-13 17:30         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 14/23] perf demangle: Add fast-path prefix checks for Rust and Java demanglers Ian Rogers
2026-11-13 17:28         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 15/23] perf symbol-elf: Cache ELF program/section headers and defer symbol name lookup Ian Rogers
2026-11-13 17:30         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 16/23] perf maps: Optimize tail insertion and small-append sorting Ian Rogers
2026-11-13 17:43         ` sashiko-bot
2026-11-15  4:38         ` Namhyung Kim
2026-11-13 17:17       ` [PATCH v4 17/23] perf symbol: Add accessor functions for struct symbol fields Ian Rogers
2026-11-13 17:41         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 18/23] perf symbol: Switch backing storage from rbtree to struct symbols array Ian Rogers
2026-11-13 17:40         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 19/23] perf symbol: Optimize symbol sorting with natural-run merge sort and binary insertion Ian Rogers
2026-11-13 17:38         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 20/23] perf symbol: Add memory shrinking for symbols, DSOs, and machines Ian Rogers
2026-11-13 17:54         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 21/23] perf session: Add dso__session() and session-scoped allocation wrappers Ian Rogers
2026-11-13 17:37         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 22/23] perf symbol: Use session allocation wrappers in symbol, DSO, thread, and hist paths Ian Rogers
2026-11-13 17:46         ` sashiko-bot
2026-11-13 17:17       ` [PATCH v4 23/23] perf test symbols: Add tests for symbol shrinking and session alloc wrappers Ian Rogers
2026-11-13 17:37         ` sashiko-bot
2026-11-14  5:25       ` [PATCH v4 00/23] perf symbol: Sorted arrays, DSO-owned lifetimes, and memory shrinking Alireza Haghdoost
2026-11-15  3:35         ` Namhyung Kim [this message]
2026-11-15  3:31       ` Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=avkomXhSg5evA7c3@z2 \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=haghdoost@uber.com \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.