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

Re: [Xen-devel] CPU frequency throttling based on the temperature



On Thu, Jul 25, 2019 at 02:31:40PM +0000, Jan Beulich wrote:
> On 25.07.2019 16:17, Roger Pau Monné  wrote:
> > On Thu, Jul 25, 2019 at 01:59:22PM +0000, Jan Beulich wrote:
> >> On 25.07.2019 15:47, Roger Pau Monné  wrote:
> >>> On Thu, Jul 25, 2019 at 09:29:01AM -0400, Fredy P. wrote:
> >>>> On Thu, 2019-07-25 at 15:13 +0200, Roger Pau Monné wrote:
> >>>>> On Thu, Jul 25, 2019 at 12:54:46PM +0000, Jan Beulich wrote:
> >>>>>> On 25.07.2019 14:44,  Fredy P.  wrote:
> >>>>>>> On Wed, 2019-07-24 at 17:41 +0200, Roger Pau Monné wrote:
> >>>>>>>>>> What hardware interface does thermald (or the driver in
> >>>>>>>>>> Linux if
> >>>>>>>>>> there's one) use to get the temperature data?
> >>>>>>>
> >>>>>>> In our initial POC using Xen 4.8.x we where using Linux coretemp
> >>>>>>> driver
> >>>>>>> reading by example /class/sys/hwmon/hwmon0/temp3_input but it got
> >>>>>>> deprecated at commit 72e038450d3d5de1a39f0cfa2d2b0f9b3d43c6c6
> >>>>>>
> >>>>>> Hmm, I wouldn't call this deprecation, but a regression. I would
> >>>>>> say we want to re-expose this leaf to Dom0, the more that the
> >>>>>> commit also only mentions unprivileged domains. Andrew?
> >>>>>
> >>>>> AFAICT from the documents provided by Fredy the temperature is read
> >>>>> from a MSR that reports the current temperature of the core on which
> >>>>> the MSR is read from. When running on Xen this will only work
> >>>>> correctly if dom0 is given the same vCPUs as pCPUs and those are
> >>>>> identity pinned.
> >>>>
> >>>> I just want to be sure I got it correctly, by saying "When running on
> >>>> Xen this will only work correctly if ..." means in a future
> >>>> implementation or that right now could work if I pin this v/pCPUS?
> >>>
> >>> No, right now there's no way to get this data from dom0, regardless of
> >>> the pinning.
> >>
> >> Of course you can, using the MSR "device" Linux optionally
> >> provides (plus perhaps the rdmsr utility from the msr-tools
> >> package).
> > 
> > But you won't get coherent results, since the vCPU might be jumping
> > from pCPU to pCPU, thus returning values from multiple different pCPUs
> > regardless of whether all rdmsr have been executed from the same vCPU
> > from dom0 PoV.
> 
> I don't understand. Earlier you said "regardless of the pinning".
> That's what my response was to, i.e. I was implying vCPU-s to be
> pinned.

Oh sorry, that was me not taking into account the earlier context, you
are right. To summarize and make things easier for Fredy I think the
options are:

 - Create dom0 with vCPUs == pCPUs and identity pin them. Then you
   *could* expose CPUID leaf 6 to dom0 and things should be OK IMO,
   either when using the Linux driver or when reading values directly
   from user-space using the MSR device pointed out by Jan.

 - Modify the Linux thermal driver to report the temperature for all
   pCPUs (which might be different than dom0 vCPUs) using
   XENPF_resource_op and XEN_RESOURCE_OP_MSR_READ. AFAICT you will
   also need to expose CPUID leaf 6 to dom0 so that the thermal driver
   attaches.

 - Import a thermal driver into Xen and expose the thermal data
   somewhere, ie: a XENPF hypercall maybe.

Maybe someone can come up with more ideas, but there's likely some
coding to be done in order to get this working.

Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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