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

Re: [Xen-devel] [PATCH] full support of setting scheduler parameters on domain creation


  • To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
  • From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
  • Date: Mon, 21 May 2012 15:23:13 +0200
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 21 May 2012 13:23:35 +0000
  • Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:Message-ID:Date:From:Organization: User-Agent:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=CaxSWhGNSzKQRTlNvnunjo17dpqlTO+9wR6cnL6GRH1nMyyQMqGhxTOb spud2JKFrjGoXsoj1nAJWsIYBsRbOPayxvw9Qrk20ZaTxpoyMPcWiwMeD 9kuw7DMfqXiC3Y+jtuozVZdIAHu4MXi5yAmLgaWtOyysoWWE01NCP7U4X rW5KxUvblBajMXE4hyaCPS3si+JdCzURRSfAxjVL9Ko+XuiYDGpjKx1lk NhhlsBHEi+18h3abnaaQ9yfG9Qihy;
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

On 05/21/2012 02:07 PM, Ian Campbell wrote:
On Mon, 2012-05-21 at 12:46 +0100, Juergen Gross wrote:
Obtains current scheduler parameters before modifying any settings specified
via domain config. Only specified settings must be modified, of course!

I presume this will fix the
libxl: error: libxl.c:3208:libxl_sched_credit_domain_set: Cpu weight out
of range, valid values are within range from 1 to 65535
warning we are currently seeing? Thanks!

@@ -233,6 +233,14 @@ libxl_sched_params = Struct("sched_param
      ("slice",        integer),
      ("latency",      integer),
      ("extratime",    integer),
+    ("set_weight",       bool),
+    ("set_cap",          bool),
+    ("set_tslice_ms",    bool),
+    ("set_ratelimit_us", bool),
+    ("set_period",       bool),
+    ("set_slice",        bool),
+    ("set_latency",      bool),
+    ("set_extratime",    bool),
Rather than doing this it would be preferable to identify some specific
value which means "default" for each of these fields. Generally this
would be either 0 (preferred if possible) or ~0 or -1. You can then
describe this in the IDL using the "init_val" property on each field.
e.g.:

@@ -225,7 +225,7 @@ libxl_domain_create_info = Struct("domai
  MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT")

  libxl_sched_params = Struct("sched_params",[
-    ("weight",       integer),
+    ("weight",       integer, {'init_val': -1}),
      ("cap",          integer),
      ("tslice_ms",    integer),
      ("ratelimit_us", integer),

(just as an illustration of a non-zero default, I suspect 0 would
actually be a fine default value for weight, and 0 is the default
init_val)

Then libxl_sched_params_init, which xl must call (perhaps indirectly,
e.g. via libxl_domain_build_info_init) would set these defaults and xl
would override them from the config and libxl would only set those which
were non-default.

Hmm. Scheduling parameters are handled in the hypervisor. I don't want to
export the knowledge about semantics to the tools. If this is no problem,
why can't I just set the defaults in the tools and omit asking the
hypervisor for the current settings?

Additionally there are parameters (well, one parameter) which apply to
multiple schedulers. Just by chance -1 would be invalid for all of them,
but I don't like to hard code this coincidence.


Juergen

--
Juergen Gross                 Principal Developer Operating Systems
PDG ES&S SWE OS6                       Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions              e-mail: juergen.gross@xxxxxxxxxxxxxx
Domagkstr. 28                           Internet: ts.fujitsu.com
D-80807 Muenchen                 Company details: ts.fujitsu.com/imprint.html


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


 


Rackspace

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