[dpdk-dev] rte_power: fix sample vm_power_mgr not work with Haswell cpus

Message ID 1436258198-9293-1-git-send-email-yong.liu@intel.com (mailing list archive)
State Rejected, archived
Headers

Commit Message

Marvin Liu July 7, 2015, 8:36 a.m. UTC
  From: Marvin Liu <yong.liu@intel.com>

Two socket Haswell cpus on cottonwoodPass have 72 cores totally. And this
number oversize the default value of maximum core number 64.

Total number of channels should also increased for match core number.

Signed-off-by: Marvin Liu <yong.liu@intel.com>
  

Comments

Thomas Monjalon July 10, 2015, 12:24 p.m. UTC | #1
Alan, Pablo, any comment?
By the way, we need a maintainer for rte_power.

2015-07-07 16:36, Yong Liu:
> From: Marvin Liu <yong.liu@intel.com>
> 
> Two socket Haswell cpus on cottonwoodPass have 72 cores totally. And this
> number oversize the default value of maximum core number 64.
> 
> Total number of channels should also increased for match core number.
> 
> Signed-off-by: Marvin Liu <yong.liu@intel.com>
  
Thomas Monjalon Aug. 3, 2015, 3:13 p.m. UTC | #2
Ping

2015-07-10 14:24, Thomas Monjalon:
> Alan, Pablo, any comment?
> By the way, we need a maintainer for rte_power.
> 
> 2015-07-07 16:36, Yong Liu:
> > From: Marvin Liu <yong.liu@intel.com>
> > 
> > Two socket Haswell cpus on cottonwoodPass have 72 cores totally. And this
> > number oversize the default value of maximum core number 64.
> > 
> > Total number of channels should also increased for match core number.
> > 
> > Signed-off-by: Marvin Liu <yong.liu@intel.com>
>
  
De Lara Guarch, Pablo Aug. 6, 2015, 10:27 a.m. UTC | #3
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Monday, August 03, 2015 4:13 PM
> To: Carew, Alan; De Lara Guarch, Pablo
> Cc: dev@dpdk.org; Liu, Yong
> Subject: Re: [dpdk-dev] [PATCH] rte_power: fix sample vm_power_mgr not
> work with Haswell cpus
> 
> Ping
> 
> 2015-07-10 14:24, Thomas Monjalon:
> > Alan, Pablo, any comment?
> > By the way, we need a maintainer for rte_power.
> >
> > 2015-07-07 16:36, Yong Liu:
> > > From: Marvin Liu <yong.liu@intel.com>
> > >
> > > Two socket Haswell cpus on cottonwoodPass have 72 cores totally. And
> this
> > > number oversize the default value of maximum core number 64.
> > >
> > > Total number of channels should also increased for match core number.
> > >
> > > Signed-off-by: Marvin Liu <yong.liu@intel.com>
> >
> 

NACK.
Allowing that change may end up in an undefined behaviour if user uses core 64 or more.
Will send an alternative fix, with a warning instead of an error, so user still can use the app on a machine with more than 64 cores, as long as no cores over 63 are used.

Thanks,
Pablo
  

Patch

diff --git a/examples/vm_power_manager/power_manager.h b/examples/vm_power_manager/power_manager.h
index 1b45bab..f8a680a 100644
--- a/examples/vm_power_manager/power_manager.h
+++ b/examples/vm_power_manager/power_manager.h
@@ -39,7 +39,7 @@  extern "C" {
 #endif
 
 /* Maximum number of CPUS to manage */
-#define POWER_MGR_MAX_CPUS 64
+#define POWER_MGR_MAX_CPUS RTE_MAX_LCORE
 /**
  * Initialize power management.
  * Initializes resources and verifies the number of CPUs on the system.
diff --git a/lib/librte_power/channel_commands.h b/lib/librte_power/channel_commands.h
index 7e78a8b..aac4668 100644
--- a/lib/librte_power/channel_commands.h
+++ b/lib/librte_power/channel_commands.h
@@ -41,17 +41,10 @@  extern "C" {
 #include <stdint.h>
 
 /* Maximum number of CPUs */
-#define CHANNEL_CMDS_MAX_CPUS        64
-#if CHANNEL_CMDS_MAX_CPUS > 64
-#error Maximum number of cores is 64, overflow is guaranteed to \
-	cause problems with VM Power Management
-#endif
-
-/* Maximum number of channels per VM */
-#define CHANNEL_CMDS_MAX_VM_CHANNELS 64
+#define CHANNEL_CMDS_MAX_CPUS           RTE_MAX_LCORE
 
 /* Maximum number of channels per VM */
-#define CHANNEL_CMDS_MAX_VM_CHANNELS 64
+#define CHANNEL_CMDS_MAX_VM_CHANNELS    RTE_MAX_LCORE
 
 /* Valid Commands */
 #define CPU_POWER               1