All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hunt <david.hunt@intel.com>
To: dev@dpdk.org
Cc: David Hunt <david.hunt@intel.com>,
	Nemanja Marjanovic <nemanja.marjanovic@intel.com>,
	Rory Sexton <rory.sexton@intel.com>
Subject: [PATCH v1 04/10] examples/vm_power_mgr: add vcpu to pcpu mapping
Date: Fri, 25 Aug 2017 17:02:15 +0100	[thread overview]
Message-ID: <1503676941-80981-5-git-send-email-david.hunt@intel.com> (raw)
In-Reply-To: <1503676941-80981-1-git-send-email-david.hunt@intel.com>

Signed-off-by: Nemanja Marjanovic <nemanja.marjanovic@intel.com>
Signed-off-by: Rory Sexton <rory.sexton@intel.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
---
 examples/vm_power_manager/channel_manager.c | 55 +++++++++++++++++++++++++++++
 examples/vm_power_manager/channel_manager.h | 16 ++++++++-
 2 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c
index e068ae2..2abba9c 100644
--- a/examples/vm_power_manager/channel_manager.c
+++ b/examples/vm_power_manager/channel_manager.c
@@ -574,6 +574,61 @@ set_channel_status(const char *vm_name, unsigned *channel_list,
 	return num_channels_changed;
 }
 
+void
+get_all_vm(int *noVms, int *noVcpus) {
+
+	virNodeInfo info;
+	virDomainPtr *domptr;
+	uint64_t mask;
+	int ret, i, numVcpus[MAX_VCPUS], cpu;
+	unsigned int ii, jj, n_vcpus;
+	const char *vm_name;
+	unsigned int flags = VIR_CONNECT_LIST_DOMAINS_RUNNING |
+				VIR_CONNECT_LIST_DOMAINS_PERSISTENT;
+	unsigned int flag = VIR_DOMAIN_VCPU_CONFIG;
+
+
+	memset(global_cpumaps, 0, CHANNEL_CMDS_MAX_CPUS*global_maplen);
+	if (virNodeGetInfo(global_vir_conn_ptr, &info))
+		RTE_LOG(ERR, CHANNEL_MANAGER, "Unable to retrieve node Info\n");
+
+	/*Returns number of pcpus*/
+	global_n_host_cpus = (unsigned int)info.cpus;
+
+	/*Returns number of active domains */
+	ret = virConnectListAllDomains(global_vir_conn_ptr, &domptr, flags);
+	*noVms = ret;
+	if (ret < 0)
+		RTE_LOG(ERR, CHANNEL_MANAGER, "No Active Domains Running\n");
+
+	for (i = 0; i < ret; i++) {
+
+		/*Get Domain Names*/
+		vm_name = virDomainGetName(domptr[i]);
+		lvm_info[i].vm_name = vm_name;
+		/*Get Number of Vcpus*/
+		numVcpus[i] = virDomainGetVcpusFlags(domptr[i], flag);
+		/*Get Number of VCpus & VcpuPinInfo*/
+		n_vcpus = virDomainGetVcpuPinInfo(domptr[i],
+				numVcpus[i], global_cpumaps,
+				global_maplen, flag);
+		if ((int)n_vcpus > *noVcpus)
+			*noVcpus = n_vcpus;
+		for (ii = 0; ii < n_vcpus; ii++) {
+			mask = 0;
+			for (jj = 0; jj < global_n_host_cpus; jj++) {
+				if (VIR_CPU_USABLE(global_cpumaps,
+						global_maplen, ii, jj) > 0) {
+					mask |= 1ULL << jj;
+				}
+			}
+			ITERATIVE_BITMASK_CHECK_64(mask, cpu) {
+				lvm_info[i].pcpus[ii] = cpu;
+			}
+		}
+	}
+}
+
 int
 get_info_vm(const char *vm_name, struct vm_info *info)
 {
diff --git a/examples/vm_power_manager/channel_manager.h b/examples/vm_power_manager/channel_manager.h
index 47c3b9c..8dff76c 100644
--- a/examples/vm_power_manager/channel_manager.h
+++ b/examples/vm_power_manager/channel_manager.h
@@ -66,6 +66,16 @@ struct sockaddr_un _sockaddr_un;
 #define UNIX_PATH_MAX sizeof(_sockaddr_un.sun_path)
 #endif
 
+#define MAX_VMS 4
+#define MAX_VCPUS 20
+
+
+struct libvirt_vm_info {
+	const char *vm_name;
+	unsigned int pcpus[22];
+};
+
+struct libvirt_vm_info lvm_info[MAX_VMS];
 /* Communication Channel Status */
 enum channel_status { CHANNEL_MGR_CHANNEL_DISCONNECTED = 0,
 	CHANNEL_MGR_CHANNEL_CONNECTED,
@@ -318,7 +328,11 @@ int set_channel_status(const char *vm_name, unsigned *channel_list,
  *  - Negative on error.
  */
 int get_info_vm(const char *vm_name, struct vm_info *info);
-
+/**
+ * Populates a table with all domains running and their physical cpu.
+ * All information is gathered through libvirt api.
+ */
+void get_all_vm(int *noVms, int *noVcpus);
 #ifdef __cplusplus
 }
 #endif
-- 
2.7.4

  parent reply	other threads:[~2017-08-25 16:02 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-25 16:02 [PATCH v1 0/10] Policy Based Power Control for Guest David Hunt
2017-08-25 16:02 ` [PATCH v1 01/10] net/i40e: add API to convert VF Id to PF Id David Hunt
2017-09-22  9:56   ` Thomas Monjalon
2017-09-22 12:39     ` Hunt, David
2017-09-25  2:43   ` Wu, Jingjing
2017-09-25  9:57     ` Hunt, David
2017-08-25 16:02 ` [PATCH v1 02/10] net/i40e: add API to get received packet count David Hunt
2017-09-25  2:47   ` Wu, Jingjing
2017-09-25  9:59     ` Hunt, David
2017-08-25 16:02 ` [PATCH v1 03/10] lib/librte_power: add extra msg type for policies David Hunt
2017-08-25 16:02 ` David Hunt [this message]
2017-08-25 16:02 ` [PATCH v1 05/10] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-08-25 16:02 ` [PATCH v1 06/10] examples/vm_power_mgr: add policy to channels David Hunt
2017-08-25 16:02 ` [PATCH v1 07/10] examples/vm_power_mgr: add port initialisation David Hunt
2017-08-25 16:02 ` [PATCH v1 08/10] examples/guest_cli: add send policy to host David Hunt
2017-08-25 16:02 ` [PATCH v1 09/10] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-08-25 16:02 ` [PATCH v1 10/10] net/i40e: set register for no drop David Hunt
2017-09-25  2:50   ` Wu, Jingjing
2017-09-25  9:44     ` Hunt, David
2017-08-29 13:03 ` [PATCH v1 0/10] Policy Based Power Control for Guest Ananyev, Konstantin
2017-09-22  9:51   ` Thomas Monjalon
2017-09-22 10:28     ` Hunt, David
2017-09-22 13:03       ` Thomas Monjalon
2017-09-22 13:12         ` Hunt, David
2017-09-25 12:27 ` [PATCH v2] " David Hunt
2017-09-25 12:27   ` [PATCH v2 1/8] net/i40e: add API to convert VF MAC to VSI index David Hunt
2017-09-26 14:04     ` Wu, Jingjing
2017-09-25 12:27   ` [PATCH v2 2/8] lib/librte_power: add extra msg type for policies David Hunt
2017-09-25 12:27   ` [PATCH v2 3/8] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-09-25 12:27   ` [PATCH v2 4/8] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-09-25 12:27   ` [PATCH v2 5/8] examples/vm_power_mgr: add policy to channels David Hunt
2017-09-25 12:27   ` [PATCH v2 6/8] examples/vm_power_mgr: add port initialisation David Hunt
2017-09-25 12:27   ` [PATCH v2 7/8] examples/guest_cli: add send policy to host David Hunt
2017-09-25 12:27   ` [PATCH v2 8/8] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-04  9:15   ` [PATCH v4] Policy Based Power Control for Guest David Hunt
2017-10-04  9:15     ` [PATCH v4 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-04 15:26       ` santosh
2017-10-04  9:15     ` [PATCH v4 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-04 15:36       ` santosh
2017-10-05  8:38         ` Hunt, David
2017-10-05  9:21           ` santosh
2017-10-05  9:51             ` Hunt, David
2017-10-04  9:15     ` [PATCH v4 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-04  9:15     ` [PATCH v4 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-04  9:15     ` [PATCH v4 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-04  9:15     ` [PATCH v4 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-04  9:15     ` [PATCH v4 7/9] power: add send channel msg function to map file David Hunt
2017-10-04  9:15     ` [PATCH v4 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-04  9:15     ` [PATCH v4 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-04 15:25     ` [PATCH v5 0/9] Policy Based Power Control for Guest David Hunt
2017-10-04 15:25       ` [PATCH v5 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-04 15:41         ` santosh
2017-10-05  8:31           ` Hunt, David
2017-10-05  9:22             ` santosh
2017-10-04 15:25       ` [PATCH v5 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-04 15:47         ` santosh
2017-10-05  8:41           ` Hunt, David
2017-10-04 15:25       ` [PATCH v5 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-04 15:58         ` santosh
2017-10-05  8:44           ` Hunt, David
2017-10-04 15:25       ` [PATCH v5 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-04 16:04         ` santosh
2017-10-05  8:47           ` Hunt, David
2017-10-05  9:07             ` santosh
2017-10-04 15:25       ` [PATCH v5 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-04 15:25       ` [PATCH v5 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-04 15:25       ` [PATCH v5 7/9] power: add send channel msg function to map file David Hunt
2017-10-04 16:20         ` santosh
2017-10-04 15:25       ` [PATCH v5 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-04 15:25       ` [PATCH v5 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-05 12:25       ` [PATCH v6 0/9] Policy Based Power Control for Guest David Hunt
2017-10-05 12:25         ` [PATCH v6 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-05 12:45           ` Ananyev, Konstantin
2017-10-05 12:51             ` Hunt, David
2017-10-05 12:25         ` [PATCH v6 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-05 12:25         ` [PATCH v6 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-05 12:25         ` [PATCH v6 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-05 12:25         ` [PATCH v6 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-05 12:25         ` [PATCH v6 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-05 12:25         ` [PATCH v6 7/9] power: add send channel msg function to map file David Hunt
2017-10-05 12:25         ` [PATCH v6 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-05 12:25         ` [PATCH v6 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-05 13:28         ` [PATCH v7 0/9] Policy Based Power Control for Guest David Hunt
2017-10-05 13:28           ` [PATCH v7 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-05 13:28           ` [PATCH v7 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-05 13:28           ` [PATCH v7 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-05 13:28           ` [PATCH v7 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-05 13:28           ` [PATCH v7 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-05 13:28           ` [PATCH v7 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-05 13:28           ` [PATCH v7 7/9] power: add send channel msg function to map file David Hunt
2017-10-05 13:28           ` [PATCH v7 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-05 13:28           ` [PATCH v7 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-05 13:54           ` [PATCH v7 0/9] Policy Based Power Control for Guest Ananyev, Konstantin
2017-10-05 14:12           ` santosh
2017-10-05 14:34           ` [PATCH v8 " David Hunt
2017-10-05 14:34             ` [PATCH v8 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-05 14:34             ` [PATCH v8 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-05 14:34             ` [PATCH v8 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-05 14:34             ` [PATCH v8 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-05 14:34             ` [PATCH v8 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-05 14:34             ` [PATCH v8 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-05 14:34             ` [PATCH v8 7/9] power: add send channel msg function to map file David Hunt
2017-10-05 14:34             ` [PATCH v8 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-05 14:34             ` [PATCH v8 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-09 22:34             ` [PATCH v8 0/9] Policy Based Power Control for Guest Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1503676941-80981-5-git-send-email-david.hunt@intel.com \
    --to=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=nemanja.marjanovic@intel.com \
    --cc=rory.sexton@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.