Re: [PATCH v3 00/14] perf/hw_breakpoint: Optimize for thousands of tasks
From: Marco Elver
Date: Tue Aug 16 2022 - 10:12:52 EST
On Wed, 20 Jul 2022 at 17:47, Ian Rogers <irogers@xxxxxxxxxx> wrote:
> On Tue, Jul 12, 2022 at 6:41 AM Marco Elver <elver@xxxxxxxxxx> wrote:
> > On Mon, 4 Jul 2022 at 17:05, Marco Elver <elver@xxxxxxxxxx> wrote:
> > > The hw_breakpoint subsystem's code has seen little change in over 10
> > > years. In that time, systems with >100s of CPUs have become common,
> > > along with improvements to the perf subsystem: using breakpoints on
> > > thousands of concurrent tasks should be a supported usecase.
> > [...]
> > > Marco Elver (14):
> > > perf/hw_breakpoint: Add KUnit test for constraints accounting
> > > perf/hw_breakpoint: Provide hw_breakpoint_is_used() and use in test
> > > perf/hw_breakpoint: Clean up headers
> > > perf/hw_breakpoint: Optimize list of per-task breakpoints
> > > perf/hw_breakpoint: Mark data __ro_after_init
> > > perf/hw_breakpoint: Optimize constant number of breakpoint slots
> > > perf/hw_breakpoint: Make hw_breakpoint_weight() inlinable
> > > perf/hw_breakpoint: Remove useless code related to flexible
> > > breakpoints
> > > powerpc/hw_breakpoint: Avoid relying on caller synchronization
> > > locking/percpu-rwsem: Add percpu_is_write_locked() and
> > > percpu_is_read_locked()
> > > perf/hw_breakpoint: Reduce contention with large number of tasks
> > > perf/hw_breakpoint: Introduce bp_slots_histogram
> > > perf/hw_breakpoint: Optimize max_bp_pinned_slots() for CPU-independent
> > > task targets
> > > perf/hw_breakpoint: Optimize toggle_bp_slot() for CPU-independent task
> > > targets
> > [...]
> >
> > This is ready from our side, and given the silence, assume it's ready
> > to pick up and/or have a maintainer take a look. Since this is mostly
> > kernel/events, would -tip/perf/core be appropriate?
>
> These are awesome improvements, I've added my acked-by to every
> change. I hope we can pull these changes, as you say, into tip.git
> perf/core and get them into 5.20.
These still apply cleanly to 6.0-rc1 and the test passes, but let me
know if I shall send a rebased version.
Thanks
-- Marco