From patchwork Mon May 8 09:30:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tadhg Kearney X-Patchwork-Id: 126756 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 59E8D42A97; Mon, 8 May 2023 11:30:48 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57105411F3; Mon, 8 May 2023 11:30:48 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 6DA1840685 for ; Mon, 8 May 2023 11:30:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683538246; x=1715074246; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ylrYSkgBZUnWsk4I/6rz5iuP0ftFkZq6WAXH7Zd459I=; b=YiYzWw1L+5MCjS9C1yAK/EatfLxcRePFrSaArdHAI6fCqXFyGwtudR0n vmdpXw3Q8vS+6zhZA3w+ihhMf0xqoZZ9nZMh2+FIqvXQqkGvLMEZql7a2 OsIfFfrmmpcSO4WwKAvntYbCSj/2PFWqKgheekHi1x4agghJtcS0ImB77 gzbLrIyhfyrt0hMVSDhX4IlSh92UPEz1k8ZNSii8aqUFUWzv5U0mdMEzg Y5KIkfOYhPOfZ6+1FzfigOSe2yPFhaROISFEPMeg1BTWYB7gF1xk4T7xN kAn2Y7HD0WILgEeXlH+47BH5hNsnDOckrA9Y1w6Y7g6fbnp/Iegqsf2N4 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10703"; a="348426536" X-IronPort-AV: E=Sophos;i="5.99,258,1677571200"; d="scan'208";a="348426536" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2023 02:30:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10703"; a="872731358" X-IronPort-AV: E=Sophos;i="5.99,258,1677571200"; d="scan'208";a="872731358" Received: from silpixa00401183.ir.intel.com ([10.55.129.127]) by orsmga005.jf.intel.com with ESMTP; 08 May 2023 02:30:44 -0700 From: Tadhg Kearney To: dts@dpdk.org Cc: reshma.pattan@intel.com, karen.kelly@intel.com, Tadhg Kearney Subject: [dts][PATCH v2 1/2] test_plan/power_empty_poll: remove power_empty_poll test_plan Date: Mon, 8 May 2023 09:30:40 +0000 Message-Id: <20230508093041.656981-2-tadhg.kearney@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230508093041.656981-1-tadhg.kearney@intel.com> References: <20230508093041.656981-1-tadhg.kearney@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Removing test_plan index and file, power_empty_poll test has already been removed. Signed-off-by: Tadhg Kearney Acked-by: Reshma Pattan --- test_plans/index.rst | 1 - test_plans/power_empty_poll_test_plan.rst | 115 ---------------------- 2 files changed, 116 deletions(-) delete mode 100644 test_plans/power_empty_poll_test_plan.rst diff --git a/test_plans/index.rst b/test_plans/index.rst index a0c056cd..5f81951f 100644 --- a/test_plans/index.rst +++ b/test_plans/index.rst @@ -211,7 +211,6 @@ The following are the test plans for the DPDK DTS automated test system. vm_pw_mgmt_policy_test_plan power_bidirection_channel_test_plan power_branch_ratio_test_plan - power_empty_poll_test_plan power_pbf_test_plan power_pmd_test_plan power_pstate_test_plan diff --git a/test_plans/power_empty_poll_test_plan.rst b/test_plans/power_empty_poll_test_plan.rst deleted file mode 100644 index 70784092..00000000 --- a/test_plans/power_empty_poll_test_plan.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. SPDX-License-Identifier: BSD-3-Clause - Copyright(c) 2010-2019 Intel Corporation - -========================= -Power Lib Empty Poll Test -========================= - -Inband Policy Control -===================== - -For packet processing workloads such as DPDK polling is continuous. This means -CPU cores always show 100% busy independent of how much work those cores are -doing. It is critical to accurately determine how busy a core is hugely -important for the following reasons: - - * No indication of overload conditions - - * User do not know how much real load is on a system meaning resulted in - wasted energy as no power management is utilized - -Tried and failed schemes include calculating the cycles required from the load -on the core, in other words the busyness. For example, how many cycles it costs -to handle each packet and determining the frequency cost per core. Due to the -varying nature of traffic, types of frames and cost in cycles to process, this -mechanism becomes complex quickly where a simple scheme is required to solve -the problems. - -For all polling mechanism, the proposed solution focus on how many times empty -poll executed instead of calculating how many cycles it cost to handle each -packet. The less empty poll number means current core is busy with processing -workload, therefore, the higher frequency is needed. The high empty poll -number indicate current core has lots spare time, therefore, we can lower the -frequency. - -2.1 Power state definition: - -LOW: the frequency is used for purge mode. - -MED: the frequency is used to process modest traffic workload. - -HIGH: the frequency is used to process busy traffic workload. - -2.2 There are two phases to establish the power management system: - -a.Initialization/Training phase. There is no traffic pass-through, the system -will test average empty poll numbers with LOW/MED/HIGH power state. Those -average empty poll numbers will be the baseline for the normal phase. The -system will collect all core's counter every 100ms. The Training phase will -take 5 seconds. - -b.Normal phase. When the real traffic pass-though, the system will compare -run-time empty poll moving average value with base line then make decision to -move to HIGH power state of MED power state. The system will collect all -core's counter every 10ms. - -``training_flag`` : optional, enable/disable training mode. Default value is 0. - If the training_flag is set as 1(true), then the application will start in - training mode and print out the trained threshold values. If the training_flag - is set as 0(false), the application will start in normal mode, and will use - either the default thresholds or those supplied on the command line. The - trained threshold values are specific to the user’s system, may give a better - power profile when compared to the default threshold values. - -``med_threshold`` : optional, sets the empty poll threshold of a modestly busy -system state. If this is not supplied, the application will apply the default -value of 350000. - -``high_threshold`` : optional, sets the empty poll threshold of a busy system -state. If this is not supplied, the application will apply the default value of -580000. - - -Preparation Work for Settings -============================= -BIOS setting:: - - 1. Turn on Speedstep option in BIOS - 2. Turn on Turbo in BIOS - 3. Turn off Hyper Threading - -Linux setting:: - - 1. Use intel_pstate driver for CPU frequency control - 2. modprobe msr - -sys_min=/sys/devices/system/cpu/cpu{}/cpufreq/cpuinfo_min_freq -sys_max=/sys/devices/system/cpu/cpu{}/cpufreq/cpuinfo_max_freq -no_turbo_max=$(rdmsr -p 1 0x0CE -f 15:8 -d)00000 - -cur_min=/sys/devices/system/cpu/cpu{}/cpufreq/scaling_min_freq -cur_max=/sys/devices/system/cpu/cpu{}/cpufreq/scaling_max_freq - - -Test Case1 : Basic Training mode test based on one NIC with l3fwd-power -======================================================================= -Step 1. Bind One NIC to DPDK driver, launch l3fwd-power with empty-poll enabled - - .//examples/dpdk-l3fwd-power -l 1-2 -n 4 -- -p 0x1 -P --config="(0,0,2)" --empty-poll="1,0,0" -l 10 -m 6 -h 1 - -Step 2. Check the log also when changing the inject packet rate as following: - - Injected Rate(1024B, dst_ip=1.1.1.1): 10G -> 0.1G -> 10G -> 0.1G -> 10G -> - 0.1G The frequency will be set to MED when we inject 0.1G and return to HGH - when inject 10G Rate, check the frequency of the forwarding core(core 2) - When traffic is 10G: cur_min=cur_max=no_turbo_max - When traffic is 0.1G: cur_min=cur_max=[no_turbo_max-500000] - - -Test Case2: No-Training mode test based on one NIC with l3fwd-power -=================================================================== -Step 1. Bind One NIC to DPDK driver, launch l3fwd-power with empty-poll enabled - - .//examples/dpdk-l3fwd-power -l 1-2 -n 4 -- -p 0x1 -P --config="(0,0,2)" --empty-poll="0,350000,500000" -l 10 -m 6 -h 1 - -Step 2. Check no training steps are executed in sample's launch log.