[dpdk-dev] [PATCH v4 1/2] lib/librte_power: traffic pattern aware power control

Kevin Traynor ktraynor at redhat.com
Thu Sep 13 11:46:10 CEST 2018


On 09/11/2018 10:19 AM, Hunt, David wrote:
> Hi Kevin,
> 

Hi Dave,

> 
> On 27/6/2018 6:33 PM, Kevin Traynor wrote:
>> On 06/26/2018 12:40 PM, Radu Nicolau wrote:
>>> From: Liang Ma <liang.j.ma at intel.com>
>>>
>>> 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?
> 

Thanks for following up. It's allowing it to run without a training
phase which is what I thought could be problematic from an application
view, so that's nice. I'm not sure if it's much less effective without
that training phase etc, but the comment was focused on having a forced
training phase, so that is resolved now as it is not required.

I'm still not sure I see the use cases for the options where there *is*
a training type phase but it's difficult to know and considering it's
experimental, if you feel there are some potential use cases and
justification to add it, then fine with me.

I have a few comments on the API, which I'll reply directly to the patch.

thanks,
Kevin.

> Regards,
> Dave.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 



More information about the dev mailing list