[dpdk-dev] examples/vm_power_manager: fix build when libvirt version < 1.0

Message ID 1449473057-16921-1-git-send-email-yong.liu@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Marvin Liu Dec. 7, 2015, 7:24 a.m. UTC
  virNodeGetCPUMap introduced in from libvirt 1.0. In some linux distributions
like Ubuntu12/14 and Fedora18, libvirt version is elder than 1.0. So this
sample will not build pass.

Replace "virNodeGetCPUMap" with another libvirt API "virNodeGetInfo".

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

Comments

Thomas Monjalon Dec. 7, 2015, 10:46 p.m. UTC | #1
2015-12-07 15:24, Yong Liu:
> virNodeGetCPUMap introduced in from libvirt 1.0. In some linux distributions
> like Ubuntu12/14 and Fedora18, libvirt version is elder than 1.0. So this
> sample will not build pass.
> 
> Replace "virNodeGetCPUMap" with another libvirt API "virNodeGetInfo".
> 
> Signed-off-by: Marvin Liu <yong.liu@intel.com>

Applied, thanks
  

Patch

diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c
index db76f2e..ceaf95d 100644
--- a/examples/vm_power_manager/channel_manager.c
+++ b/examples/vm_power_manager/channel_manager.c
@@ -734,7 +734,7 @@  connect_hypervisor(const char *path)
 int
 channel_manager_init(const char *path)
 {
-	int n_cpus;
+	virNodeInfo info;
 
 	LIST_INIT(&vm_list_head);
 	if (connect_hypervisor(path) < 0) {
@@ -756,13 +756,12 @@  channel_manager_init(const char *path)
 		goto error;
 	}
 
-	n_cpus = virNodeGetCPUMap(global_vir_conn_ptr, NULL, NULL, 0);
-	if (n_cpus <= 0) {
-		RTE_LOG(ERR, CHANNEL_MANAGER, "Unable to get the number of Host "
-				"CPUs\n");
+	if (virNodeGetInfo(global_vir_conn_ptr, &info)) {
+		RTE_LOG(ERR, CHANNEL_MANAGER, "Unable to retrieve node Info\n");
 		goto error;
 	}
-	global_n_host_cpus = (unsigned)n_cpus;
+
+	global_n_host_cpus = (unsigned)info.cpus;
 
 	if (global_n_host_cpus > CHANNEL_CMDS_MAX_CPUS) {
 		RTE_LOG(WARNING, CHANNEL_MANAGER, "The number of host CPUs(%u) exceeds the "