All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Dongxiao Xu <dongxiao.xu@intel.com>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: Xen Platform QoS design discussion
Date: Mon, 19 May 2014 13:13:42 +0100	[thread overview]
Message-ID: <5379F576.4050108@eu.citrix.com> (raw)
In-Reply-To: <537A0B17020000780001390F@mail.emea.novell.com>

On 05/19/2014 12:45 PM, Jan Beulich wrote:
>>>> On 19.05.14 at 13:28, <George.Dunlap@eu.citrix.com> wrote:
>> But in reality, all we need the daemon for is a place to store the
>> information to query.  The idea we came up with was to allocate memory
>> *inside the hypervisor* to store the information.  The idea is that
>> we'd have a sysctl to prompt Xen to *collect* the data into some
>> memory buffers inside of Xen, and then a domctl that would allow you
>> query the data on a per-domain basis.
>>
>> That should be a good balance -- it's not quite as good as having as
>> separate daemon, but it's a pretty good compromise.
> Which all leaves aside the suggested alternative of making available
> a couple of simple operations allowing an eventual daemon to do the
> MSR accesses without the hypervisor being concerned about where
> to store the data and how to make it accessible to the consumer.

 From a libxl perspective, if we provide "libxl_qos_refresh()" (or 
"libxl_qos_freshness_set()") and "libxl_qos_domain_query()" (or 
something like it), it doesn't matter whether it's backed by memory 
stored in Xen via hypercall or by a daemon.

What I was actually envisioning was an option to either query them by a 
domctl hypercall, or by having a daemon map the pages and read them 
directly.  That way we have the daemon available for those who want it 
(say, maybe xapi, or a future libxl daemon / stat collector), but we can 
get a basic level implemented right now without a terrible amount of 
architectural work.

>> There are a couple of options regarding collecting the data.  One is
>> to simply require the caller to do a "poll" sysctl every time they
>> want to refresh the data.  Another possibility would be to have a
>> sysctl "freshness" knob: you could say, "Please make sure the data is
>> no more than 1000ms old"; Xen could then automatically do a refresh
>> when necessary.
>>
>> The advantage of the "poll" method is that you could get a consistent
>> snapshot across all domains; but you'd have to add in code to do the
>> refresh.  (An xl command querying an individual domain would
>> undoubtedly end up calling the poll on each execution, for instance.)
>>
>> An advantage of the "freshness" knob, on the other hand, is that you
>> automatically get coalescing without having to do anything special
>> with the interface.
> With the clear disadvantage of potentially doing work the results of
> which is never going to be looked at by anyone.

Jan, when you make a criticism it needs to be clear what alternate you 
are suggesting.

AFAICT, regarding "collection" of the data, we have exactly three options:
A. Implement a "collect for all domains" option (with an additional 
"query data for a single domain" mechanism; either by daemon or hypercall).
B. Implement a "collect information for a single domain at a time" option
C. Implement both options.

"Doing work that is never looked at by anyone" will always be a 
potential problem if we choose A, whether we use a daemon, or use the 
polling method, or use the automatic "freshness" knob.  The only way to 
avoid that is to do B or C.

We've already said that we expect the common case we expect is for a 
toolstack to want to query all domains anyway.  If we think that's true, 
"make the common case fast and the uncommon case correct" would dictate 
against B.

So are you suggesting B (disputing the expected use case)?  Or are you 
suggesting C?  Or are you just finding fault without thinking things 
through?

  -George

  reply	other threads:[~2014-05-19 12:13 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-30 16:47 Xen Platform QoS design discussion Xu, Dongxiao
2014-04-30 17:02 ` Ian Campbell
2014-05-01  0:56   ` Xu, Dongxiao
2014-05-02  9:23     ` Jan Beulich
2014-05-02 12:30       ` Xu, Dongxiao
2014-05-02 12:40         ` Jan Beulich
2014-05-04  0:46           ` Xu, Dongxiao
2014-05-06  9:10             ` Ian Campbell
2014-05-06  1:40           ` Xu, Dongxiao
2014-05-06  7:55             ` Jan Beulich
2014-05-06 10:06             ` Andrew Cooper
2014-05-07  2:08               ` Xu, Dongxiao
2014-05-07  9:10                 ` Ian Campbell
2014-05-07 13:26               ` George Dunlap
2014-05-07 21:18                 ` Andrew Cooper
2014-05-08  5:21                   ` Xu, Dongxiao
2014-05-08 11:25                     ` Andrew Cooper
2014-05-09  2:41                       ` Xu, Dongxiao
2014-05-13  1:53                       ` Xu, Dongxiao
2014-05-16  5:11                       ` Xu, Dongxiao
2014-05-19 11:28                         ` George Dunlap
2014-05-19 11:45                           ` Jan Beulich
2014-05-19 12:13                             ` George Dunlap [this message]
2014-05-19 12:41                               ` Jan Beulich
2014-05-22  8:19                                 ` Xu, Dongxiao
2014-05-22  8:39                                   ` Jan Beulich
2014-05-22  9:27                                     ` George Dunlap
2014-05-26  0:51                                       ` Xu, Dongxiao
2014-05-29  0:45                                       ` Xu, Dongxiao
2014-05-29  7:01                                         ` Jan Beulich
2014-05-29  7:31                                           ` Xu, Dongxiao
2014-05-29  9:11                                             ` Jan Beulich
2014-05-30  9:10                                               ` Ian Campbell
2014-05-30 11:17                                                 ` Jan Beulich
2014-05-30 12:33                                                   ` Ian Campbell
2014-06-05  0:48                                                   ` Xu, Dongxiao
2014-06-05 10:43                                                     ` George Dunlap
2014-05-29  9:13                                             ` Andrew Cooper
2014-05-30  1:07                                               ` Xu, Dongxiao
2014-05-30  6:23                                                 ` Jan Beulich
2014-05-30  7:51                                                   ` Xu, Dongxiao
2014-05-30 11:15                                                     ` Jan Beulich
2014-05-02 12:50         ` Andrew Cooper
2014-05-04  2:34           ` Xu, Dongxiao
2014-05-06  9:12             ` Ian Campbell
2014-05-06 10:00             ` Andrew Cooper

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=5379F576.4050108@eu.citrix.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=dongxiao.xu@intel.com \
    --cc=xen-devel@lists.xen.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.