From patchwork Thu Jun 21 13:24:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 41365 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0E4671BB72; Thu, 21 Jun 2018 15:25:22 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id BB5771B916 for ; Thu, 21 Jun 2018 15:25:07 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jun 2018 06:25:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,252,1526367600"; d="scan'208";a="68839797" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.223.64]) by orsmga002.jf.intel.com with ESMTP; 21 Jun 2018 06:24:54 -0700 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com Date: Thu, 21 Jun 2018 14:24:13 +0100 Message-Id: <20180621132414.39047-8-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180621132414.39047-1-david.hunt@intel.com> References: <20180607073705.32895-2-david.hunt@intel.com> <20180621132414.39047-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v2 7/8] examples/vm_power: add branch ratio policy type X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add the capability for the vm_power_manager to receive a policy of type BRANCH_RATIO. This will add any vcpus in the policy to the oob monitoring thread. Signed-off-by: David Hunt --- examples/vm_power_manager/channel_monitor.c | 23 +++++++++++++++++++-- lib/librte_power/channel_commands.h | 3 ++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index 73bddd993..7fa47ba97 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -27,6 +27,7 @@ #include "channel_commands.h" #include "channel_manager.h" #include "power_manager.h" +#include "oob_monitor.h" #define RTE_LOGTYPE_CHANNEL_MONITOR RTE_LOGTYPE_USER1 @@ -92,6 +93,10 @@ get_pcpu_to_control(struct policy *pol) struct vm_info info; int pcpu, count; uint64_t mask_u64b; + struct core_info *ci; + int ret; + + ci = get_core_info(); RTE_LOG(INFO, CHANNEL_MONITOR, "Looking for pcpu for %s\n", pol->pkt.vm_name); @@ -100,8 +105,22 @@ get_pcpu_to_control(struct policy *pol) for (count = 0; count < pol->pkt.num_vcpu; count++) { mask_u64b = info.pcpu_mask[pol->pkt.vcpu_to_control[count]]; for (pcpu = 0; mask_u64b; mask_u64b &= ~(1ULL << pcpu++)) { - if ((mask_u64b >> pcpu) & 1) - pol->core_share[count].pcpu = pcpu; + if ((mask_u64b >> pcpu) & 1) { + if (pol->pkt.policy_to_use == BRANCH_RATIO) { + ci->cd[pcpu].oob_enabled = 1; + ret = add_core_to_monitor(pcpu); + if (ret == 0) + printf("Monitoring pcpu %d via Branch Ratio\n", + pcpu); + else + printf("Failed to start OOB Monitoring pcpu %d\n", + pcpu); + + } else { + pol->core_share[count].pcpu = pcpu; + printf("Monitoring pcpu %d\n", pcpu); + } + } } } } diff --git a/lib/librte_power/channel_commands.h b/lib/librte_power/channel_commands.h index 5e8b4ab5d..ee638eefa 100644 --- a/lib/librte_power/channel_commands.h +++ b/lib/librte_power/channel_commands.h @@ -48,7 +48,8 @@ enum workload {HIGH, MEDIUM, LOW}; enum policy_to_use { TRAFFIC, TIME, - WORKLOAD + WORKLOAD, + BRANCH_RATIO }; struct traffic {