All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: "Fredy P." <fredy.pulido@savoirfairelinux.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [Xen-devel] CPU frequency throttling based on the temperature
Date: Thu, 25 Jul 2019 17:34:31 +0200	[thread overview]
Message-ID: <20190725153431.nc4wibss7ivvjvye@Air-de-Roger> (raw)
In-Reply-To: <659529bf-beb8-2a11-b21a-03069a66d530@suse.com>

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@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2019-07-25 15:36 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-24 14:01 [Xen-devel] CPU frequency throttling based on the temperature Fredy P.
2019-07-24 14:36 ` Roger Pau Monné
2019-07-24 14:47   ` Jan Beulich
2019-07-24 15:35     ` Roger Pau Monné
2019-07-24 15:51       ` Jan Beulich
2019-07-24 17:10       ` Fredy P.
2019-07-24 15:25   ` Fredy P.
2019-07-24 15:41     ` Roger Pau Monné
2019-07-25 12:44       ` Fredy P.
2019-07-25 12:54         ` Jan Beulich
2019-07-25 13:07           ` Fredy P.
2019-07-25 13:13           ` Roger Pau Monné
2019-07-25 13:29             ` Fredy P.
2019-07-25 13:47               ` Roger Pau Monné
2019-07-25 13:59                 ` Jan Beulich
2019-07-25 14:17                   ` Roger Pau Monné
2019-07-25 14:31                     ` Jan Beulich
2019-07-25 15:34                       ` Roger Pau Monné [this message]
2019-07-25 16:29                         ` Fredy P.
2019-07-25 13:43             ` Jan Beulich
2019-07-25 14:07               ` Roger Pau Monné
2019-07-25 14:27                 ` Fredy P.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190725153431.nc4wibss7ivvjvye@Air-de-Roger \
    --to=roger.pau@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=fredy.pulido@savoirfairelinux.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.