qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Benoît Canet" <benoit.canet@irqsave.net>
To: Gleb Natapov <gleb@redhat.com>
Cc: "Benoît Canet" <benoit.canet@irqsave.net>,
	"peter.maydell@linaro.org" <peter.maydell@linaro.org>,
	"viresh.kumar@linaro.org" <viresh.kumar@linaro.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"cpufreq@vger.kernel.org" <cpufreq@vger.kernel.org>,
	"Alexander Graf" <agraf@suse.de>, "rjw@sisk.pl" <rjw@sisk.pl>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] cpufreq and QEMU guests
Date: Mon, 16 Sep 2013 20:42:58 +0200	[thread overview]
Message-ID: <20130916184258.GO5105@irqsave.net> (raw)
In-Reply-To: <20130916155840.GE906@redhat.com>

Le Monday 16 Sep 2013 à 18:58:40 (+0300), Gleb Natapov a écrit :
> On Mon, Sep 16, 2013 at 05:46:04PM +0200, Benoît Canet wrote:
> > Le Monday 16 Sep 2013 à 18:32:39 (+0300), Gleb Natapov a écrit :
> > > On Mon, Sep 16, 2013 at 05:05:45PM +0200, Benoît Canet wrote:
> > > > Le Monday 16 Sep 2013 à 09:39:10 (-0500), Alexander Graf a écrit :
> > > > > 
> > > > > 
> > > > > Am 16.09.2013 um 07:15 schrieb Benoît Canet <benoit.canet@irqsave.net>:
> > > > > 
> > > > > > 
> > > > > > Hello,
> > > > > > 
> > > > > > I know a cloud provider worried about the fact that the /proc/cpuinfo of his
> > > > > > guests give a bogus frequency to his customer.
> > > > > > 
> > > > > > QEMU and the guests kernel currently have no way to reflect the host frequency
> > > > > > changes to the guests.
> > > > > > 
> > > > > > The customer compute intensive application then read this information and take
> > > > > > wrong decisions.
> > > > > 
> > > > > Why do they care about the frequency? Is it for scheduling workloads? The only other case I can think of would be the TSC and that should be fixed frequency these days.
> > > > > 
> > > > > If it's scheduling, you could maybe expose the unavailable compute time as steal time to the guest. Exposibg frequency in a virtual environment feels backwards.
> > > > 
> > > > The final customer have a compute intensive workload.
> > > > At startup the code retrieve the cpu cache topology, the cpu model, and various
> > > > informations including the guest cpu frequency before starting the compute job.
> > > > The QEMU instance typicaly use -cpu host.
> > > > 
> > > > The code inspects the cpu frequency has seen by the guests to choose the number
> > > > of vms to instanciate to compute the given task.
> > > I am not sure I understand. They look at guest cpu frequency to estimate
> > > guest's performance?
> > 
> > Yes they take guest cpu count, model and frequency to estimate the performance
> > of the guest.
> > Next they cluster enough guests to be able to compute the job in a given time by
> > using this estimate.
> > 
> They do it wrong. They should take guest cpu count, host cpu model and
> frequency, pcpu/vcpu over commit (if any), guest/host memory overcommit
> (if any) and estimate performance based on this. For pure computational
> performance guest core performance should be close to host core
> performance if there is not cpu/memory overcommit. With a lot of IO
> things become more complicated.

I ommited to write some details of the use case.

The cloud is a Amazon compatible one this means there is no guest agent in the
guest to help retrieve the host frequency and model.

Also the AWS APIs don't provide a way to communicate the host CPU infos to the
program responsible of the vm orchestrations.

So the only interface to access the host cpu info is QEMU and it's started with
-cpu host to passthrough the cpu model to the guest.

What hurt the final customer badly is that the guest /proc/cpuinfo see the
regular max frequency of the host cpu but won't see the turbo frequency or a
scaled down one.

Best regards

Benoît

> 
> --
> 			Gleb.
> 

  reply	other threads:[~2013-09-16 18:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-16 12:15 [Qemu-devel] cpufreq and QEMU guests Benoît Canet
2013-09-16 14:39 ` Alexander Graf
2013-09-16 15:05   ` Benoît Canet
2013-09-16 15:32     ` Gleb Natapov
2013-09-16 15:46       ` Benoît Canet
2013-09-16 15:58         ` Gleb Natapov
2013-09-16 18:42           ` Benoît Canet [this message]
2013-09-17  8:58             ` Gleb Natapov

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=20130916184258.GO5105@irqsave.net \
    --to=benoit.canet@irqsave.net \
    --cc=agraf@suse.de \
    --cc=cpufreq@vger.kernel.org \
    --cc=gleb@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rjw@sisk.pl \
    --cc=viresh.kumar@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).