mbox series

[v2,00/10] perf: Avoid placing cpumask var on stack

Message ID 20240403125109.2054881-1-dawei.li@shingroup.cn (mailing list archive)
Headers show
Series perf: Avoid placing cpumask var on stack | expand

Message

Dawei Li April 3, 2024, 12:50 p.m. UTC
Hi all,

This is v2 of [1] and [2] which basically eliminate cpumask var allocation
on stack for perf subsystem.

Change since v1:
- Change from dynamic allocation to a temporary var free helper:
  cpumask_any_and_but().	[Mark]

- Some minor coding style improvements, reverse chrismas tree e.g.

- For cpumask_any_and_but() itself:
  - Moved to cpumask.h, just like other helpers.
  - Return value converted to unsigned int.
  - Remove EXPORT_SYMBOL, for obvious reason.

[1]:
https://lore.kernel.org/lkml/20240402105610.1695644-1-dawei.li@shingroup.cn/

[2]:
https://lore.kernel.org/lkml/1486381132-5610-1-git-send-email-mark.rutland@arm.com/

Dawei Li (9):
  perf/alibaba_uncore_drw: Avoid placing cpumask var on stack
  perf/arm-cmn: Avoid placing cpumask var on stack
  perf/arm_cspmu: Avoid placing cpumask var on stack
  perf/arm_dsu: Avoid placing cpumask var on stack
  perf/dwc_pcie: Avoid placing cpumask var on stack
  perf/hisi_pcie: Avoid placing cpumask var on stack
  perf/hisi_uncore: Avoid placing cpumask var on stack
  perf/qcom_l2: Avoid placing cpumask var on stack
  perf/thunderx2: Avoid placing cpumask var on stack

Mark Rutland (1):
  cpumask: add cpumask_any_and_but()

 drivers/perf/alibaba_uncore_drw_pmu.c    | 10 +++-------
 drivers/perf/arm-cmn.c                   | 10 +++++-----
 drivers/perf/arm_cspmu/arm_cspmu.c       |  8 +++-----
 drivers/perf/arm_dsu_pmu.c               | 19 ++++++-------------
 drivers/perf/dwc_pcie_pmu.c              | 10 ++++------
 drivers/perf/hisilicon/hisi_pcie_pmu.c   |  9 ++++-----
 drivers/perf/hisilicon/hisi_uncore_pmu.c |  6 ++----
 drivers/perf/qcom_l2_pmu.c               |  8 +++-----
 drivers/perf/thunderx2_pmu.c             | 10 +++-------
 include/linux/cpumask.h                  | 23 +++++++++++++++++++++++
 10 files changed, 56 insertions(+), 57 deletions(-)

Thanks,

    Dawei

Comments

Mark Rutland April 3, 2024, 2:41 p.m. UTC | #1
On Wed, Apr 03, 2024 at 08:50:59PM +0800, Dawei Li wrote:
> Hi all,

Hi,

> This is v2 of [1] and [2] which basically eliminate cpumask var allocation
> on stack for perf subsystem.
> 
> Change since v1:
> - Change from dynamic allocation to a temporary var free helper:
>   cpumask_any_and_but().	[Mark]
> 
> - Some minor coding style improvements, reverse chrismas tree e.g.
> 
> - For cpumask_any_and_but() itself:
>   - Moved to cpumask.h, just like other helpers.
>   - Return value converted to unsigned int.
>   - Remove EXPORT_SYMBOL, for obvious reason.

Thanks for this!

The logic all looks good; if you can spin a v3 with the updated commit messages
I reckon we can queue this up shortly.

Mark.

> 
> [1]:
> https://lore.kernel.org/lkml/20240402105610.1695644-1-dawei.li@shingroup.cn/
> 
> [2]:
> https://lore.kernel.org/lkml/1486381132-5610-1-git-send-email-mark.rutland@arm.com/
> 
> Dawei Li (9):
>   perf/alibaba_uncore_drw: Avoid placing cpumask var on stack
>   perf/arm-cmn: Avoid placing cpumask var on stack
>   perf/arm_cspmu: Avoid placing cpumask var on stack
>   perf/arm_dsu: Avoid placing cpumask var on stack
>   perf/dwc_pcie: Avoid placing cpumask var on stack
>   perf/hisi_pcie: Avoid placing cpumask var on stack
>   perf/hisi_uncore: Avoid placing cpumask var on stack
>   perf/qcom_l2: Avoid placing cpumask var on stack
>   perf/thunderx2: Avoid placing cpumask var on stack
> 
> Mark Rutland (1):
>   cpumask: add cpumask_any_and_but()
> 
>  drivers/perf/alibaba_uncore_drw_pmu.c    | 10 +++-------
>  drivers/perf/arm-cmn.c                   | 10 +++++-----
>  drivers/perf/arm_cspmu/arm_cspmu.c       |  8 +++-----
>  drivers/perf/arm_dsu_pmu.c               | 19 ++++++-------------
>  drivers/perf/dwc_pcie_pmu.c              | 10 ++++------
>  drivers/perf/hisilicon/hisi_pcie_pmu.c   |  9 ++++-----
>  drivers/perf/hisilicon/hisi_uncore_pmu.c |  6 ++----
>  drivers/perf/qcom_l2_pmu.c               |  8 +++-----
>  drivers/perf/thunderx2_pmu.c             | 10 +++-------
>  include/linux/cpumask.h                  | 23 +++++++++++++++++++++++
>  10 files changed, 56 insertions(+), 57 deletions(-)
> 
> Thanks,
> 
>     Dawei
> 
> -- 
> 2.27.0
>
Dawei Li April 3, 2024, 4:11 p.m. UTC | #2
Hi Mark,

On Wed, Apr 03, 2024 at 03:41:07PM +0100, Mark Rutland wrote:
> On Wed, Apr 03, 2024 at 08:50:59PM +0800, Dawei Li wrote:
> > Hi all,
> 
> Hi,
> 
> > This is v2 of [1] and [2] which basically eliminate cpumask var allocation
> > on stack for perf subsystem.
> > 
> > Change since v1:
> > - Change from dynamic allocation to a temporary var free helper:
> >   cpumask_any_and_but().	[Mark]
> > 
> > - Some minor coding style improvements, reverse chrismas tree e.g.
> > 
> > - For cpumask_any_and_but() itself:
> >   - Moved to cpumask.h, just like other helpers.
> >   - Return value converted to unsigned int.
> >   - Remove EXPORT_SYMBOL, for obvious reason.
> 
> Thanks for this!
> 
> The logic all looks good; if you can spin a v3 with the updated commit messages
> I reckon we can queue this up shortly.

Thanks for review.

v3 respinned:
https://lore.kernel.org/lkml/20240403155950.2068109-1-dawei.li@shingroup.cn/

If it's going through perf tree, do we need Acked-by from bitmap
maintainers for patch[1]?

Thanks,

    Dawei

> 
> Mark.
> 
> > 
> > [1]:
> > https://lore.kernel.org/lkml/20240402105610.1695644-1-dawei.li@shingroup.cn/
> > 
> > [2]:
> > https://lore.kernel.org/lkml/1486381132-5610-1-git-send-email-mark.rutland@arm.com/
> > 
> > Dawei Li (9):
> >   perf/alibaba_uncore_drw: Avoid placing cpumask var on stack
> >   perf/arm-cmn: Avoid placing cpumask var on stack
> >   perf/arm_cspmu: Avoid placing cpumask var on stack
> >   perf/arm_dsu: Avoid placing cpumask var on stack
> >   perf/dwc_pcie: Avoid placing cpumask var on stack
> >   perf/hisi_pcie: Avoid placing cpumask var on stack
> >   perf/hisi_uncore: Avoid placing cpumask var on stack
> >   perf/qcom_l2: Avoid placing cpumask var on stack
> >   perf/thunderx2: Avoid placing cpumask var on stack
> > 
> > Mark Rutland (1):
> >   cpumask: add cpumask_any_and_but()
> > 
> >  drivers/perf/alibaba_uncore_drw_pmu.c    | 10 +++-------
> >  drivers/perf/arm-cmn.c                   | 10 +++++-----
> >  drivers/perf/arm_cspmu/arm_cspmu.c       |  8 +++-----
> >  drivers/perf/arm_dsu_pmu.c               | 19 ++++++-------------
> >  drivers/perf/dwc_pcie_pmu.c              | 10 ++++------
> >  drivers/perf/hisilicon/hisi_pcie_pmu.c   |  9 ++++-----
> >  drivers/perf/hisilicon/hisi_uncore_pmu.c |  6 ++----
> >  drivers/perf/qcom_l2_pmu.c               |  8 +++-----
> >  drivers/perf/thunderx2_pmu.c             | 10 +++-------
> >  include/linux/cpumask.h                  | 23 +++++++++++++++++++++++
> >  10 files changed, 56 insertions(+), 57 deletions(-)
> > 
> > Thanks,
> > 
> >     Dawei
> > 
> > -- 
> > 2.27.0
> > 
>
Yury Norov April 3, 2024, 4:39 p.m. UTC | #3
On Thu, Apr 04, 2024 at 12:11:51AM +0800, Dawei Li wrote:
> Hi Mark,
> 
> On Wed, Apr 03, 2024 at 03:41:07PM +0100, Mark Rutland wrote:
> > On Wed, Apr 03, 2024 at 08:50:59PM +0800, Dawei Li wrote:
> > > Hi all,
> > 
> > Hi,
> > 
> > > This is v2 of [1] and [2] which basically eliminate cpumask var allocation
> > > on stack for perf subsystem.
> > > 
> > > Change since v1:
> > > - Change from dynamic allocation to a temporary var free helper:
> > >   cpumask_any_and_but().	[Mark]
> > > 
> > > - Some minor coding style improvements, reverse chrismas tree e.g.
> > > 
> > > - For cpumask_any_and_but() itself:
> > >   - Moved to cpumask.h, just like other helpers.
> > >   - Return value converted to unsigned int.
> > >   - Remove EXPORT_SYMBOL, for obvious reason.
> > 
> > Thanks for this!
> > 
> > The logic all looks good; if you can spin a v3 with the updated commit messages
> > I reckon we can queue this up shortly.
> 
> Thanks for review.
> 
> v3 respinned:
> https://lore.kernel.org/lkml/20240403155950.2068109-1-dawei.li@shingroup.cn/
> 
> If it's going through perf tree, do we need Acked-by from bitmap
> maintainers for patch[1]?

There's only one bitmap-related patch, so I agree - the series should
go through Mark's tree. I acked 1st patch in v3. Please go ahead.

Thanks,
Yury