mbox series

[V2,0/3] powercap: Introduce TPMI RAPL PMU support

Message ID 20240408035141.248644-1-rui.zhang@intel.com
Headers show
Series powercap: Introduce TPMI RAPL PMU support | expand

Message

Zhang, Rui April 8, 2024, 3:51 a.m. UTC
RAPL energy counter MSRs are exposed via perf PMU. But this is done by
separate code which is not part of RAPL framework, and it cannot be
reused by other RAPL Interface drivers like TPMI RAPL.

Introduce two new APIs for PMU support in RAPL framework. This allows
TPMI RAPL PMU support and also makes it possible for future cleanups of
MSR RAPL PMU code.

Changes since V1:
- remove the MSR RAPL PMU conversion because it is a separate work that
  can be done later.
- instead of using a flag to indicate the need of PMU support, introduce
  two APIs for the RAPL Interface driver to invoke explicitly.
- minor code/comments/changelog improvements.

thanks,
rui

----------------------------------------------------------------
Zhang Rui (3):
      powercap: intel_rapl: Sort header files
      powercap: intel_rapl: Introduce APIs for PMU support
      powercap: intel_rapl_tpmi: Enable PMU support

 drivers/powercap/intel_rapl_common.c | 561 ++++++++++++++++++++++++++++++++++-
 drivers/powercap/intel_rapl_tpmi.c   |   3 +
 include/linux/intel_rapl.h           |  23 ++
 3 files changed, 575 insertions(+), 12 deletions(-)

Comments

Zhang, Rui April 17, 2024, 1:57 a.m. UTC | #1
On Tue, 2024-04-16 at 16:01 +0200, Rafael J. Wysocki wrote:
> On Mon, Apr 8, 2024 at 5:51 AM Zhang Rui <rui.zhang@intel.com> wrote:
> > 
> > Sort header files alphabetically.
> > 
> > Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> > ---
> >  drivers/powercap/intel_rapl_common.c | 24 ++++++++++++------------
> >  1 file changed, 12 insertions(+), 12 deletions(-)
> > 
> > diff --git a/drivers/powercap/intel_rapl_common.c
> > b/drivers/powercap/intel_rapl_common.c
> > index a28d54fd5222..1f4a7aa12d77 100644
> > --- a/drivers/powercap/intel_rapl_common.c
> > +++ b/drivers/powercap/intel_rapl_common.c
> > @@ -5,27 +5,27 @@
> >   */
> >  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> > 
> > +#include <linux/bitmap.h>
> >  #include <linux/cleanup.h>
> > +#include <linux/cpu.h>
> > +#include <linux/delay.h>
> > +#include <linux/device.h>
> > +#include <linux/intel_rapl.h>
> >  #include <linux/kernel.h>
> > -#include <linux/module.h>
> >  #include <linux/list.h>
> > -#include <linux/types.h>
> > -#include <linux/device.h>
> > -#include <linux/slab.h>
> >  #include <linux/log2.h>
> > -#include <linux/bitmap.h>
> > -#include <linux/delay.h>
> > -#include <linux/sysfs.h>
> > -#include <linux/cpu.h>
> > +#include <linux/module.h>
> > +#include <linux/platform_device.h>
> >  #include <linux/powercap.h>
> > -#include <linux/suspend.h>
> > -#include <linux/intel_rapl.h>
> >  #include <linux/processor.h>
> > -#include <linux/platform_device.h>
> > +#include <linux/slab.h>
> > +#include <linux/suspend.h>
> > +#include <linux/sysfs.h>
> > +#include <linux/types.h>
> > 
> > -#include <asm/iosf_mbi.h>
> >  #include <asm/cpu_device_id.h>
> >  #include <asm/intel-family.h>
> > +#include <asm/iosf_mbi.h>
> > 
> >  /* bitmasks for RAPL MSRs, used by primitive access functions */
> >  #define ENERGY_STATUS_MASK      0xffffffff
> > --
> 
> I can apply this cleanup right away, so do you want me to do that?

yes, please. thanks!

-rui
Rafael J. Wysocki April 17, 2024, 8:34 a.m. UTC | #2
On Wed, Apr 17, 2024 at 3:57 AM Zhang, Rui <rui.zhang@intel.com> wrote:
>
> On Tue, 2024-04-16 at 16:01 +0200, Rafael J. Wysocki wrote:
> > On Mon, Apr 8, 2024 at 5:51 AM Zhang Rui <rui.zhang@intel.com> wrote:
> > >
> > > Sort header files alphabetically.
> > >
> > > Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> > > ---
> > >  drivers/powercap/intel_rapl_common.c | 24 ++++++++++++------------
> > >  1 file changed, 12 insertions(+), 12 deletions(-)
> > >
> > > diff --git a/drivers/powercap/intel_rapl_common.c
> > > b/drivers/powercap/intel_rapl_common.c
> > > index a28d54fd5222..1f4a7aa12d77 100644
> > > --- a/drivers/powercap/intel_rapl_common.c
> > > +++ b/drivers/powercap/intel_rapl_common.c
> > > @@ -5,27 +5,27 @@
> > >   */
> > >  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> > >
> > > +#include <linux/bitmap.h>
> > >  #include <linux/cleanup.h>
> > > +#include <linux/cpu.h>
> > > +#include <linux/delay.h>
> > > +#include <linux/device.h>
> > > +#include <linux/intel_rapl.h>
> > >  #include <linux/kernel.h>
> > > -#include <linux/module.h>
> > >  #include <linux/list.h>
> > > -#include <linux/types.h>
> > > -#include <linux/device.h>
> > > -#include <linux/slab.h>
> > >  #include <linux/log2.h>
> > > -#include <linux/bitmap.h>
> > > -#include <linux/delay.h>
> > > -#include <linux/sysfs.h>
> > > -#include <linux/cpu.h>
> > > +#include <linux/module.h>
> > > +#include <linux/platform_device.h>
> > >  #include <linux/powercap.h>
> > > -#include <linux/suspend.h>
> > > -#include <linux/intel_rapl.h>
> > >  #include <linux/processor.h>
> > > -#include <linux/platform_device.h>
> > > +#include <linux/slab.h>
> > > +#include <linux/suspend.h>
> > > +#include <linux/sysfs.h>
> > > +#include <linux/types.h>
> > >
> > > -#include <asm/iosf_mbi.h>
> > >  #include <asm/cpu_device_id.h>
> > >  #include <asm/intel-family.h>
> > > +#include <asm/iosf_mbi.h>
> > >
> > >  /* bitmasks for RAPL MSRs, used by primitive access functions */
> > >  #define ENERGY_STATUS_MASK      0xffffffff
> > > --
> >
> > I can apply this cleanup right away, so do you want me to do that?
>
> yes, please. thanks!

Now applied as 6.10 material, thanks!