From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Hunt, David" Subject: Re: [PATCH v4 1/2] lib/librte_power: traffic pattern aware power control Date: Tue, 11 Sep 2018 10:19:17 +0100 Message-ID: <6a62972e-ddf4-c45a-88f9-170bc904e7f3@intel.com> References: <1529505898-6458-2-git-send-email-liang.j.ma@intel.com> <1530013217-22300-1-git-send-email-radu.nicolau@intel.com> <014ba7a7-c9a7-86da-e705-a688e53b83b3@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit To: Kevin Traynor , Radu Nicolau , dev@dpdk.org, liang.j.ma@intel.com Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id D9A764C91 for ; Tue, 11 Sep 2018 11:19:20 +0200 (CEST) In-Reply-To: <014ba7a7-c9a7-86da-e705-a688e53b83b3@redhat.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Kevin, On 27/6/2018 6:33 PM, Kevin Traynor wrote: > On 06/26/2018 12:40 PM, Radu Nicolau wrote: >> From: Liang Ma >> >> 1. Abstract --snip-- >> 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. >> > This is requiring an application to sit for 5 secs in order to train and > align poll numbers with states? That doesn't seem realistic to me. Thanks for the discussion at DPDK Userspace conference. Since we got back, Liang and I have discussed the feedback we received, and we have a proposal. We can split out the training phase into a separate run of the application which does the training, spits out the threshold numbers, and then the actual runs will start instantly once the threshold parameters are provided on the command line, or falls back to hard-coded defaults if no command line parameters are given. So there are three ways of running the app   1. Run without any threshold parameters, in which case the algorithm       runs with default numbers calculated based on the min and max available frequency.   2. Run with --train option, which requires no traffic on the NICS, and       runs the training algorithm, prints out the thresholds for the host CPU, and exits.   3. Take the output of the train phase, and provide the thresholds on the command       line, and the app runs with the best fit to the running CPU. That would eliminate the training period at startup, unless the user wanted to fine-tune for a particular host CPU. Would that be an adequate solution to the training period concerns? Regards, Dave.