|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/arm: copy cpu clock-frequency to CPU DT node.
On Tue, 2013-11-05 at 14:54 -0500, Jon Fraser wrote:
> On Tue, 2013-11-05 at 10:04 +0000, Ian Campbell wrote:
> > On Tue, 2013-11-05 at 09:56 +0000, Ian Campbell wrote:
> > > On Mon, 2013-11-04 at 13:35 -0500, Jon Fraser wrote:
> > > > On Mon, 2013-11-04 at 17:12 +0000, Ian Campbell wrote:
> > > > > On Fri, 2013-11-01 at 16:58 -0400, Jon Fraser wrote:
> > > > > > When creating the CPU DT node, copy the clock-frequency if present.
> > > > > >
> > > > ...
> > > > > Julien's the expert but I think you need to use dt_property_read_u32
> > > > > here, to get the correct endianness conversion (as well as for pure
> > > > > forms sake of using the correct API for the job).
> > > > >
> > > > I'll fix that.
> > > >
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > @@ -457,6 +459,12 @@ static int make_cpus_node(const struct domain
> > > > > > *d, void *fdt,
> > > > > > if ( res )
> > > > > > return res;
> > > > > >
> > > > > > + if (clock_frequency) {
> > > > > > + res = fdt_property_cell(fdt, "clock-frequency", *(u32
> > > > > > *)clock_frequency);
> > > > >
> > > > > I suppose there ought to be some API for this side of things too, but
> > > > > I
> > > > > can't see it right now...
> > > > >
> > > > > Note that fdt_property_cell contains a cpu_to_fdt32 so it is
> > > > > converting
> > > > > while the read of the property not, so I think the code is broken as
> > > > > is?
> > > >
> > > > Yesss, it is broken. When I checked the property in /proc/device-tree,
> > > > I failed to realize it was endian swapped.
> > >
> > > I guess nothing much critical is relying on this value. What is it
> > > supposed to be used for?
> > > linux/Documentation/devicetree/booting-without-of.txt seems to imply it
> > > is mostly optional for non-PPC.
> >
> > BTW, I'm asking because I'm not sure if exposing the underlying clock
> > speed to the guest VCPU is the right thing to do. It can vary across
> > pCPUs (e.g. big.LITTLE) and with power control etc.
> >
> > Ian.
>
> As far as I can tell, it is intended to be used for load balancing
> for the case of differing cpu capabilities. Looking down the road,
> if I was doing Power Management in Dom0, I would want to know
> the cpu topology and cpu speeds, but that info is probably available by
> other means.
>
> I just wanted to squelch the annoying linux kernel error messages.
>
> /cpus/cpu@0 missing clock-frequency property
> /cpus/cpu@1 missing clock-frequency property
> /cpus/cpu@2 missing clock-frequency property
> /cpus/cpu@3 missing clock-frequency property
Ah, I started noticing them too recently but didn't connect them with
this patch.
> Do you foresee, at this point, any problem with giving all the guest
> VCPUs the same clock frequency setting?
Do you mean same as in give all VCPUs a static hardcoded frequency or
what you did here passing through something real?
I think in general I would prefer to passthrough something real as you
have done. I'm always a little bit wary of accidentally creating an ABI
which we end up forced to support. Adding a hardcoded value could be
seen to do that, whereas passing through is going to naturally vary. One
would hope noone would ever rely on a hardcoded clock-frequency anyway.
I'm not sure what to do about domU, since I don't think the physical CPU
frequency is necessarily easily available to the toolstack. We have a
similar issue with the CPU compatiblity string. I guess that all needs
to be plumbed up. :-( (not your problem here though, so don't worry!)
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |