[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 11/11] tools: enable xenpm to control the intel_pstate driver



On 07/07/2015 20:14, Wei Liu wrote:
> On Tue, Jul 07, 2015 at 01:05:21PM +0100, Jan Beulich wrote:
> > >>> On 07.07.15 at 10:55, <wei.liu2@xxxxxxxxxx> wrote:
> > > On Thu, Jun 25, 2015 at 07:19:05PM +0800, Wei Wang wrote:
> > >> --- a/tools/libxc/include/xenctrl.h
> > >> +++ b/tools/libxc/include/xenctrl.h
> > >> @@ -2266,8 +2266,18 @@ struct xc_get_cpufreq_para {
> > >>      uint32_t scaling_cur_freq;
> > >>
> > >>      char scaling_governor[CPUFREQ_NAME_LEN];
> > >> -    uint32_t scaling_max_freq;
> > >> -    uint32_t scaling_min_freq;
> > >> +
> > >> +    union {
> > >> +        uint32_t freq;
> > >> +        uint32_t pct;
> > >> +    } scaling_max;
> > >> +
> > >> +    union {
> > >> +        uint32_t freq;
> > >> +        uint32_t  pct;
> > >> +    } scaling_min;
> > >> +
> > >
> > > Don't you need struct? I don't see how union would work for you, you
> > > clearly need bot freq and pct at the same time.
> >
> > Why? The current driver uses freq; intel_pstate uses pct. What looks
> > wrong is the code below using both fields at once.
> >
> 
> I only looked at this single patch.
> 
> I got that impression from here:
> 
> +        user_para->scaling_max.freq             = sys_para->scaling_max.freq;
> +        user_para->scaling_min.freq             = sys_para->scaling_min.freq;
> +        user_para->scaling_max.pct              = sys_para->scaling_max.pct;
> +        user_para->scaling_min.pct              = sys_para->scaling_min.pct;
> 
> So using union is OK, just the code is confusing.

This actually functions well, we just have a redundant copy here. For example:
user_para->scaling_max.freq             = sys_para->scaling_max.freq;
user_para->scaling_max.pct               = sys_para->scaling_max.pct;

The two sentences are doing the same thing (the memory location is the same for 
freq and pct, it just depends on the driver to put what kind of value (freq or 
pct) into the memory).

If this causes some confusion, how about removing the 
"user_para->scaling_max.pct               = sys_para->scaling_max.pct;"  ?


Best,
Wei




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.