All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yang, Xiaowei" <xiaowei.yang@intel.com>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: 'George Dunlap' <George.Dunlap@eu.citrix.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: [PATCH] Add migration_cost option to scheduler
Date: Tue, 10 Mar 2009 18:56:42 +0800	[thread overview]
Message-ID: <49B6476A.6040401@intel.com> (raw)
In-Reply-To: <49B5E046.7090406@intel.com>

[-- Attachment #1: Type: text/plain, Size: 1148 bytes --]



Yang, Xiaowei wrote:
> Tian, Kevin wrote:
>>> From: George Dunlap
>>> Sent: Monday, March 09, 2009 8:56 PM
>>>
>>> Hmm, I think this patch may not be exactly what we want.  It looks
>>> like it checks for how long a vcpu has been in its current stat, not
>>> how recently it has been running.  So if a vcpu sleeps for a long time
>>> on a cpu that's running other workloads, then wakes up
>>> (blocked->runnable), the cache is by no means "hot".  But since it has
>>> only been in the "runnable" state for a few hundred cycles, it won't
>>> be migrated, even though there's little cost.
>> Then to add a per-vcpu last_running_timestamp which is recorded when 
>> vcpu is scheduled out, could hit the purpose here?
> Yes, it's more reasonable. I can make a patch.
> 

The patch is attached. Had a quick test using the previous config and 
saw no obvious different result with it. May be explained by the fact 
that the benchmarks has no many IO operations - db and logfile are put 
to ramdisk for sysbench test. Anyway it's closer to what we really want. 
Thanks both of you!

Signed-off-by: Xiaowei Yang <xiaowei.yang@intel.com>

Thanks,
xiaowei

[-- Attachment #2: cache_hot.patch --]
[-- Type: text/x-patch, Size: 1440 bytes --]

diff -r 115c97f32dc6 xen/common/sched_credit.c
--- a/xen/common/sched_credit.c	Tue Mar 10 00:18:39 2009 +0800
+++ b/xen/common/sched_credit.c	Tue Mar 10 03:09:44 2009 +0800
@@ -328,7 +328,7 @@ static inline int
 static inline int
 __csched_vcpu_is_cache_hot(struct vcpu *v)
 {
-    int hot = ((NOW() - v->runstate.state_entry_time) <
+    int hot = ((NOW() - v->last_run_time) <
                ((uint64_t)vcpu_migration_delay * 1000u));
 
     if ( hot )
diff -r 115c97f32dc6 xen/common/schedule.c
--- a/xen/common/schedule.c	Tue Mar 10 00:18:39 2009 +0800
+++ b/xen/common/schedule.c	Tue Mar 10 03:00:36 2009 +0800
@@ -836,6 +836,7 @@ static void schedule(void)
         (test_bit(_VPF_blocked, &prev->pause_flags) ? RUNSTATE_blocked :
          (vcpu_runnable(prev) ? RUNSTATE_runnable : RUNSTATE_offline)),
         now);
+    prev->last_run_time = now;
 
     ASSERT(next->runstate.state != RUNSTATE_running);
     vcpu_runstate_change(next, RUNSTATE_running, now);
diff -r 115c97f32dc6 xen/include/xen/sched.h
--- a/xen/include/xen/sched.h	Tue Mar 10 00:18:39 2009 +0800
+++ b/xen/include/xen/sched.h	Tue Mar 10 02:59:15 2009 +0800
@@ -102,6 +102,9 @@ struct vcpu
     } runstate_guest; /* guest address */
 #endif
 
+    /* last time when vCPU is scheduled out */
+    uint64_t last_run_time;
+
     /* Has the FPU been initialised? */
     bool_t           fpu_initialised;
     /* Has the FPU been used since it was last saved? */

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

      reply	other threads:[~2009-03-10 10:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-09  8:18 [PATCH] Add migration_cost option to scheduler Yang, Xiaowei
2009-03-09 12:55 ` George Dunlap
2009-03-09 13:08   ` Tian, Kevin
2009-03-10  3:36     ` Yang, Xiaowei
2009-03-10 10:56       ` Yang, Xiaowei [this message]

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=49B6476A.6040401@intel.com \
    --to=xiaowei.yang@intel.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=keir.fraser@eu.citrix.com \
    --cc=kevin.tian@intel.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 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.