|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/9] x86/intel_pstate: add new policy fields and a new driver interface
On 26/05/2015 21:00, Jan Beulich wrote
> >>> On 13.05.16 at 09:50, <wei.w.wang@xxxxxxxxx> wrote:
> > --- a/xen/drivers/cpufreq/utility.c
> > +++ b/xen/drivers/cpufreq/utility.c
> > @@ -456,6 +456,11 @@ int __cpufreq_set_policy(struct cpufreq_policy
> > *data,
> >
> > data->min = policy->min;
> > data->max = policy->max;
> > + data->min_perf_pct = policy->min_perf_pct;
> > + data->max_perf_pct = policy->max_perf_pct;
>
> Shouldn't you do similar sanity checks on them as are being done on
> ->min and ->max? (Admittedly they look a little strange, but I'm not
> asking you to copy what is there without sanity checking the original).
>
> > + if (cpufreq_driver->setpolicy)
>
> Also I wonder whether the additions shouldn't move into this if()'s body.
Will change it to the if()'s body:
if (cpufreq_driver->setpolicy) {
data->min_perf_pct = policy->min_perf_pct;
data->max_perf_pct = policy->max_perf_pct;
....
}
>
> > --- a/xen/include/acpi/cpufreq/cpufreq.h
> > +++ b/xen/include/acpi/cpufreq/cpufreq.h
> > @@ -52,6 +52,10 @@ struct cpufreq_policy {
> > unsigned int max; /* in kHz */
> > unsigned int cur; /* in kHz, only needed if cpufreq
> > * governors are used */
> > + int min_perf_pct; /* min performance in percentage */
> > + int max_perf_pct; /* max performance in percentage */
> > + int turbo_pct;
>
> Can any of these legitimately be negative? If not, they should be of unsigned
> int type.
I think we have to keep using "int". Though the expected pct value range is
0-100, it is possible that people may input a negative value. For example, if
the input value is "-1":
1) using int, the output value after clamp_t(0,100) will be 0;
2) using unsigned int, the output value after clamp_t(0,100) will be 100.
I think case 1) is what we need.
>
> > @@ -87,6 +91,12 @@ struct cpufreq_freqs {
> > * CPUFREQ GOVERNORS *
> >
> >
> **********************************************************
> ***********/
> >
> > +/* the four internal governors used in intel_pstate */
> > +#define CPUFREQ_POLICY_POWERSAVE (1)
> > +#define CPUFREQ_POLICY_PERFORMANCE (2)
> > +#define CPUFREQ_POLICY_USERSPACE (3)
> > +#define CPUFREQ_POLICY_ONDEMAND (4)
>
> Why are they being added in this header and at this point in the sequence of
> patches? If they're local to intel_pstate, they should go there. If they're
> needed by multiple files, they should be added when needed, so that one
> can easily judge whether their addition is indeed necessary.
Will change to add the 4 macros in the "main body of intel_pstate driver" patch
(6/9).
Can we keep them in this file? These are cpufreq related things.
Best,
Wei
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |