xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Jackson <ian.jackson@eu.citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: [OSSTEST PATCH 06/13] Planner: client side: New `!OK think noalloc' protocol
Date: Wed, 2 Sep 2015 16:45:12 +0100	[thread overview]
Message-ID: <1441208719-31336-7-git-send-email-ian.jackson@eu.citrix.com> (raw)
In-Reply-To: <1441208719-31336-1-git-send-email-ian.jackson@eu.citrix.com>

Introduce a way for the queue daemon to tell its client that it must
not allocate anything in this planning iteration.

In the client:
 * Advertise the new feature via set-info.
 * Accept the `noalloc' part of `!OK think noalloc';
 * Print that in our log message;
 * Honour it by passing it to $resourcecall.

And document the new protocol.  However, there is no server-side yet,
so this does not yet introduce any overall change to the system.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 Osstest/Executive.pm |    9 ++++++---
 README.planner       |    6 +++++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index f9be0a0..4f51d70 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -674,6 +674,7 @@ sub alloc_resources {
                 $set_info->('priority', $priority);
                 $set_info->('sub-priority',$ENV{OSSTEST_RESOURCE_SUBPRIORITY});
                 $set_info->('preinfo',     $ENV{OSSTEST_RESOURCE_PREINFO});
+		$set_info->('feature-noalloc', 1);
 
                 if (defined $waitstart) {
                     $set_info->('wait-start',$waitstart);
@@ -699,7 +700,9 @@ sub alloc_resources {
 
             logm("resource allocation: awaiting our slot...");
 
-            $_= <$qserv>;  defined && m/^\!OK think\s$/ or die "$_ ?";
+            $_= <$qserv>;
+	    defined && m/^\!OK think( noalloc)?\s$/ or die "$_ ?";
+	    my $noalloc = $1 // '';
 
             opendb_tests();
 
@@ -715,12 +718,12 @@ sub alloc_resources {
 		read($qserv, $jplan, $jplanlen) == $jplanlen or die $!;
 		my $jplanprint= $jplan;
 		chomp $jplanprint;
-		logm("resource allocation: obtained base plan.");
+		logm("resource allocation: obtained base plan$noalloc.");
 		$debugm->("base plan = ", $jplanprint);
 		$plan= from_json($jplan);
 	    }, sub {
 		if (!eval {
-		    ($ok, $bookinglist) = $resourcecall->($plan, 1);
+		    ($ok, $bookinglist) = $resourcecall->($plan, !$noalloc);
 		    1;
 		}) {
 		    warn "resourcecall $@";
diff --git a/README.planner b/README.planner
index b1247e7..24185ce 100644
--- a/README.planner
+++ b/README.planner
@@ -194,11 +194,15 @@ ms-queuedaemon commands
         > set-info sub-priority ...                  } queue adjustment
         > set-info wait-start-adjust ...             }
 
+        > set-info feature-noalloc 1
+	        The client understands `!OK think noalloc'.
+
 	> wait
 		I want to join the plan
 
-	< !OK think
+	< !OK think [noalloc]
 		Now is the time to add yourself to the plan
+                `noalloc' means client must not not actually allocate.
 
 		> get-plan
 		< OK get-plan BYTES
-- 
1.7.10.4

  parent reply	other threads:[~2015-09-02 15:51 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-02 15:45 [OSSTEST RFC PATCH 00/13] Planner: Performance improvement Ian Jackson
2015-09-02 15:45 ` [OSSTEST PATCH 01/13] Tcl: Use lshift instead of open-coding with lrange Ian Jackson
2015-09-03 10:44   ` Ian Campbell
2015-09-03 10:50     ` Ian Jackson
2015-09-02 15:45 ` [OSSTEST PATCH 02/13] Planner: docs: Minor fixes Ian Jackson
2015-09-03 10:47   ` Ian Campbell
2015-09-03 12:04     ` Ian Jackson
2015-09-02 15:45 ` [OSSTEST PATCH 03/13] Planner: docs: Document set-info command Ian Jackson
2015-09-03 10:48   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 04/13] Planner: Fix indefinite holdoff Ian Jackson
2015-09-03 10:51   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 05/13] Planner: client side: $mayalloc parameter to $resourcecall->() Ian Jackson
2015-09-03 10:52   ` Ian Campbell
2015-09-02 15:45 ` Ian Jackson [this message]
2015-09-03 10:53   ` [OSSTEST PATCH 06/13] Planner: client side: New `!OK think noalloc' protocol Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 07/13] Planner: ms-planner support -w option Ian Jackson
2015-09-03 11:25   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 08/13] Planner: ms-queuedaemon: Prep for multiple walkers Ian Jackson
2015-09-03 12:05   ` Ian Campbell
2015-09-03 15:42     ` Ian Jackson
2015-09-02 15:45 ` [OSSTEST PATCH 09/13] Planner: ms-queuedaemon: Synchronise thinking " Ian Jackson
2015-09-03 12:06   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 10/13] Planner: ms-queuedaemon: Break out queuerun-finished/<walker> Ian Jackson
2015-09-03 12:43   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 11/13] Planner: ms-queuedaemon: Break out notify-to-think Ian Jackson
2015-09-03 12:44   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 12/13] Planner: ms-queuedaemon: Make report-plan take output walker name Ian Jackson
2015-09-03 12:44   ` Ian Campbell
2015-09-02 15:45 ` [OSSTEST PATCH 13/13] Planner: ms-queuedaemon: Restart planning when resources become free Ian Jackson
2015-09-03 12:59   ` Ian Campbell
2015-09-03 11:49 ` [OSSTEST PATCH 14/13] Planning reports: Break out return-plan-to-client Ian Jackson
2015-09-03 11:49   ` [OSSTEST PATCH 15/13] Plan reporting: Provide get-last-plan queuedaemon command Ian Jackson
2015-09-03 13:05     ` Ian Campbell
2015-09-03 15:51       ` Ian Jackson
2015-09-03 15:52         ` Ian Jackson
2015-09-03 16:12           ` Ian Campbell
2015-09-03 13:01   ` [OSSTEST PATCH 14/13] Planning reports: Break out return-plan-to-client Ian Campbell

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=1441208719-31336-7-git-send-email-ian.jackson@eu.citrix.com \
    --to=ian.jackson@eu.citrix.com \
    --cc=ian.campbell@citrix.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 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).