xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Dario Faggioli <dario.faggioli@citrix.com>
To: George Dunlap <george.dunlap@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <vlad.babchuk@gmail.com>
Cc: Artem_Mygaiev@epam.com, Julien Grall <julien.grall@arm.com>,
	xen-devel@lists.xensource.com,
	Andrii Anisov <andrii_anisov@epam.com>
Subject: Re: Notes on stubdoms and latency on ARM
Date: Thu, 20 Jul 2017 10:49:36 +0200	[thread overview]
Message-ID: <1500540576.20438.4.camel@citrix.com> (raw)
In-Reply-To: <d2a782a5-c610-4f25-ae84-847e5be8bbcc@citrix.com>


[-- Attachment #1.1: Type: text/plain, Size: 3006 bytes --]

On Mon, 2017-07-17 at 10:25 +0100, George Dunlap wrote:
> On 07/12/2017 07:14 AM, Dario Faggioli wrote:
> > 
> > That being said, I personally have never liked rate-limiting, it
> > always
> > looked to me like the wrong solution.
> 
> In fact, I *think* the only reason it may have been introduced is
> that
> there was a bug in the credit2 code at the time such that it always
> had
> a single runqueue no matter what your actual pcpu topology was.
> 
It has been introduced because SpecVirt perf were bad because, during
interrupt storms, the context-switch rate was really really high.

It was all about Credit1... Work on Credit2 was stalled at the time,
and there has been, AFAICR, no evaluation of Credit2 was involved:

https://wiki.xen.org/wiki/Credit_Scheduler#Context-Switch_Rate_Limiting
https://lists.xenproject.org/archives/html/xen-devel/2011-12/msg00897.html%7C

(And in fact, it was not implemented in Credit2, until something like
last year, Anshul wrote the code for that.)

SpecVirt performance were judged to be important enough (e.g., because
we've been told people was using that for comparing us with other virt.
solutions), that this was set to on by default. 

I don't know if that is still the case, as I've run many benchmarks,
but never had the chance to try SpecVirt first hand myself. Fact is
that Credit1 does not have any measure in place for limit/control
context-switch rate, and it has boosting, which means that rate-
limiting (as much as I may hate it :-P) is actually useful.

Whether we should have it disabled by default, and tell people (in
documentation) to enable it if they think they're seeing the system
going into trashing because of context switching, or the vice-versa,
it's one of those things which is rather hard to tell. Let's see...

In Credit2, we do have CSCHED2_MIN_TIMER (which is not equivalent to
ratelimiting, of course, but it at least is something that goes in the
direction of trying to avoid too frequent interruptions), and (much
more important, IMO) we don't have boosting... So, I think it would be
interesting to try figuring out the role that rate-limiting plays, when
Credit2 is in use (and then, maybe, if we find that there are
differences, find a way to have, as default, it enabled on Credit1 and
disabled on Credit2).

> > I'll think about it, and see if I'll be able to run some benchmarks
> > with it on and off.
> 
> Thanks.  FYI the main benchmark that was used to justify its
> inclusion
> (and on by default) was specvirt (I think).
> 
Yeah, I know. I'm not sure I will have the chance to run that soon,
though. I'll try a bunch of other workloads, and we'll see what I will
find. :-)

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  parent reply	other threads:[~2017-07-20  8:49 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-18 19:00 Notes on stubdoms and latency on ARM Stefano Stabellini
2017-05-19 19:45 ` Volodymyr Babchuk
2017-05-22 21:41   ` Stefano Stabellini
2017-05-26 19:28     ` Volodymyr Babchuk
2017-05-30 17:29       ` Stefano Stabellini
2017-05-30 17:33         ` Julien Grall
2017-06-01 10:28           ` Julien Grall
2017-06-17  0:17             ` Volodymyr Babchuk
2017-05-31  9:09         ` George Dunlap
2017-05-31 15:53           ` Dario Faggioli
2017-05-31 16:17             ` Volodymyr Babchuk
2017-05-31 17:45           ` Stefano Stabellini
2017-06-01 10:48             ` Julien Grall
2017-06-01 10:52             ` George Dunlap
2017-06-01 10:54               ` George Dunlap
2017-06-01 12:40               ` Dario Faggioli
2017-06-01 15:02                 ` George Dunlap
2017-06-01 18:27               ` Stefano Stabellini
2017-05-31 17:02       ` George Dunlap
2017-06-17  0:14         ` Volodymyr Babchuk
2017-06-19  9:37           ` George Dunlap
2017-06-19 17:54             ` Stefano Stabellini
2017-06-19 18:36               ` Volodymyr Babchuk
2017-06-20 10:11                 ` Dario Faggioli
2017-07-07 15:02                   ` Volodymyr Babchuk
2017-07-07 16:41                     ` Dario Faggioli
2017-07-07 17:03                       ` Volodymyr Babchuk
2017-07-07 21:12                         ` Stefano Stabellini
2017-07-12  6:14                           ` Dario Faggioli
2017-07-17  9:25                             ` George Dunlap
2017-07-17 10:04                               ` Julien Grall
2017-07-17 11:28                                 ` George Dunlap
2017-07-19 11:21                                   ` Julien Grall
2017-07-20  9:25                                     ` Dario Faggioli
2017-07-20  9:10                                   ` Dario Faggioli
2017-07-20  8:49                               ` Dario Faggioli [this message]
2017-07-08 14:26                         ` Dario Faggioli
2017-06-20 10:45                 ` Julien Grall
2017-06-20 16:23                   ` Volodymyr Babchuk
2017-06-21 10:38                     ` Julien Grall
2017-06-19 18:26             ` Volodymyr Babchuk
2017-06-20 10:00               ` Dario Faggioli
2017-06-20 10:30                 ` George Dunlap
2017-05-23  7:11   ` Dario Faggioli
2017-05-26 20:09     ` Volodymyr Babchuk
2017-05-27  2:10       ` Dario Faggioli
2017-05-23  9:08   ` George Dunlap
2017-05-26 19:43     ` Volodymyr Babchuk
2017-05-26 19:46       ` Volodymyr Babchuk

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=1500540576.20438.4.camel@citrix.com \
    --to=dario.faggioli@citrix.com \
    --cc=Artem_Mygaiev@epam.com \
    --cc=andrii_anisov@epam.com \
    --cc=george.dunlap@citrix.com \
    --cc=julien.grall@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=vlad.babchuk@gmail.com \
    --cc=xen-devel@lists.xensource.com \
    /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).