From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Kan Liang <kan.liang@linux.intel.com>,
James Clark <james.clark@arm.com>,
Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
Colin Ian King <colin.i.king@gmail.com>,
nabijaczleweli@nabijaczleweli.xyz, Leo Yan <leo.yan@linux.dev>,
Song Liu <song@kernel.org>,
Ilkka Koskinen <ilkka@os.amperecomputing.com>,
Ben Gainey <ben.gainey@arm.com>,
K Prateek Nayak <kprateek.nayak@amd.com>,
Yanteng Si <siyanteng@loongson.cn>,
Sun Haiyong <sunhaiyong@loongson.cn>,
Changbin Du <changbin.du@huawei.com>,
Andi Kleen <ak@linux.intel.com>,
Thomas Richter <tmricht@linux.ibm.com>,
Masami Hiramatsu <mhiramat@kernel.org>,
Dima Kogan <dima@secretsauce.net>,
zhaimingbing <zhaimingbing@cmss.chinamobile.com>,
Paran Lee <p4ranlee@gmail.com>, Li Dong <lidong@vivo.com>,
Tiezhu Yang <yangtiezhu@loongson.cn>,
Yang Jihong <yangjihong1@huawei.com>,
Chengen Du <chengen.du@canonical.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 1/7] perf dsos: Switch backing storage to array from rbtree/list
Date: Sat, 4 May 2024 15:28:36 -0300 [thread overview]
Message-ID: <ZjZ-VPVqDhjkGxmC@x1> (raw)
In-Reply-To: <CAP-5=fXE6-atL+FdCdD529eqyveWUqgR6QbJgzvGy=5xR_TBRg@mail.gmail.com>
On Sat, May 04, 2024 at 11:14:52AM -0700, Ian Rogers wrote:
> On Fri, May 3, 2024 at 1:21 PM Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > On Mon, Apr 29, 2024 at 11:46:08AM -0700, Ian Rogers wrote:
> > > DSOs were held on a list for fast iteration and in an rbtree for fast
> > > finds. Switch to using a lazily sorted array where iteration is just
> > > iterating through the array and binary searches are the same
> > > complexity as searching the rbtree. The find may need to sort the
> > > array first which does increase the complexity, but add operations
> > > have lower complexity and overall the complexity should remain about
> > > the same.
> > With just this first one applied:
> > ⬢[acme@toolbox perf-tools-next]$ git log --oneline -10
> > 325557715f1d8593 (HEAD) perf dsos: Switch backing storage to array from rbtree/list
> > 7b6dd7a923281a7c perf pmu: Assume sysfs events are always the same case
> > 6debc5aa326fa2ee perf test pmu: Test all sysfs PMU event names are the same case
> > 18eb2ca8c18f0612 perf test pmu: Add an eagerly loaded event test
> > aa1551f299ba414c perf test pmu: Refactor format test and exposed test APIs
> > 785623ee855e893d perf Document: Sysfs event names must be lower or upper case
> > 97c48ea8ff1cd70f perf test pmu-events: Make it clearer that pmu-events tests JSON events
> > 3cdd98b42d212160 (x1/perf-tools-next) perf maps: Remove check_invariants() from maps__lock()
> > e3123079b906dc2e perf cs-etm: Improve version detection and error reporting
> > bc5e0e1b93565e37 perf cs-etm: Remove repeated fetches of the ETM PMU
> > ⬢[acme@toolbox perf-tools-next]$
> > root@number:~# perf -v
> > perf version 6.9.rc5.g325557715f1d
> > root@number:~# perf probe -l
> > DSO [kernel.kallsyms] is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/drivers/hid/hid-sensor-hub.ko.xz is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/drivers/hid/uhid.ko.xz is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/drivers/net/tun.ko.xz is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/fs/overlayfs/overlay.ko.xz is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/net/bluetooth/rfcomm/rfcomm.ko.xz is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/drivers/input/misc/uinput.ko.xz is still in rbtree when being deleted!
> > DSO /lib/modules/6.8.7-200.fc39.x86_64/kernel/sound/core/seq/snd-seq-dummy.ko.xz is still in rbtree when being deleted!
> > <SNIP a lot of other modules, probably all of them>
> Right, we don't have a test on this and this motivates the addition of
> reference count checking on DSO in the later patches. With the series
> applied, fixing the rebase issue, I see:
> $ git log --oneline
> eabe5dd91331 (HEAD) perf dso: Use container_of to avoid a pointer in dso_data
> fd47ec98a05c perf dso: Reference counting related fixes
> 962af2d2b092 perf dso: Add reference count checking and accessor functions
> 48664a9a6ca4 perf dsos: Switch hand code to bsearch
> ae7a9854dabd perf dsos: Remove __dsos__findnew_link_by_longname_id
> e616a6b3739d perf dsos: Remove __dsos__addnew
> e789368716dd perf dsos: Switch backing storage to array from rbtree/list
> 7b6dd7a92328 (ptn/tmp.perf-tools-next, ptn/perf-tools-next) perf pmu:
> Assume sysfs events are always the same case
> ...
> $ sudo /tmp/perf/perf -v
> perf version 6.9.rc5.geabe5dd91331
> $ sudo /tmp/perf/perf probe -l
> $
> I'll see if I can find a fix to backport before sending a new series
> to work around the 2 line rebase conflict.
Thanks a lot for doing that!
- Arnaldo
next prev parent reply other threads:[~2024-05-04 18:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-29 18:46 [PATCH v5 0/7] dso/dsos memory savings and clean up Ian Rogers
2024-04-29 18:46 ` [PATCH v5 1/7] perf dsos: Switch backing storage to array from rbtree/list Ian Rogers
2024-05-03 20:21 ` Arnaldo Carvalho de Melo
2024-05-04 18:14 ` Ian Rogers
2024-05-04 18:28 ` Arnaldo Carvalho de Melo [this message]
2024-04-29 18:46 ` [PATCH v5 2/7] perf dsos: Remove __dsos__addnew Ian Rogers
2024-04-29 18:46 ` [PATCH v5 3/7] perf dsos: Remove __dsos__findnew_link_by_longname_id Ian Rogers
2024-04-29 18:46 ` [PATCH v5 4/7] perf dsos: Switch hand code to bsearch Ian Rogers
2024-04-29 18:46 ` [PATCH v5 5/7] perf dso: Add reference count checking and accessor functions Ian Rogers
2024-04-29 18:46 ` [PATCH v5 6/7] perf dso: Reference counting related fixes Ian Rogers
2024-04-29 18:46 ` [PATCH v5 7/7] perf dso: Use container_of to avoid a pointer in dso_data Ian Rogers
2024-04-29 19:16 ` [PATCH v5 0/7] dso/dsos memory savings and clean up Arnaldo Carvalho de Melo
2024-04-29 19:50 ` Ian Rogers
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=ZjZ-VPVqDhjkGxmC@x1 \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=ben.gainey@arm.com \
--cc=changbin.du@huawei.com \
--cc=chengen.du@canonical.com \
--cc=colin.i.king@gmail.com \
--cc=dima@secretsauce.net \
--cc=ilkka@os.amperecomputing.com \
--cc=irogers@google.com \
--cc=james.clark@arm.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=kprateek.nayak@amd.com \
--cc=leo.yan@linux.dev \
--cc=lidong@vivo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=nabijaczleweli@nabijaczleweli.xyz \
--cc=namhyung@kernel.org \
--cc=p4ranlee@gmail.com \
--cc=peterz@infradead.org \
--cc=siyanteng@loongson.cn \
--cc=song@kernel.org \
--cc=sunhaiyong@loongson.cn \
--cc=tmricht@linux.ibm.com \
--cc=yangjihong1@huawei.com \
--cc=yangtiezhu@loongson.cn \
--cc=zhaimingbing@cmss.chinamobile.com \
/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.