George Dunlap
2010-Dec-09 17:53 UTC
[Xen-devel] [PATCH 0 of 3] credit2: Miscelaneous updates
Miscellaneous fixes / tweaks to credit2 code. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
George Dunlap
2010-Dec-09 17:53 UTC
[Xen-devel] [PATCH 1 of 3] credit2: Putting a vcpu to sleep also removes the delayed_runq_add flag
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
diff -r 49d2aa5cee4e -r 9c5960826cd6 xen/common/sched_credit2.c
--- a/xen/common/sched_credit2.c Thu Dec 09 16:17:33 2010 +0000
+++ b/xen/common/sched_credit2.c Thu Dec 09 17:50:54 2010 +0000
@@ -668,6 +668,8 @@
cpu_raise_softirq(vc->processor, SCHEDULE_SOFTIRQ);
else if ( __vcpu_on_runq(svc) )
__runq_remove(svc);
+ else if ( test_bit(__CSFLAG_delayed_runq_add, &svc->flags) )
+ clear_bit(__CSFLAG_delayed_runq_add, &svc->flags);
}
static void
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
George Dunlap
2010-Dec-09 17:53 UTC
[Xen-devel] [PATCH 2 of 3] credit2: Use vcpu processor explicitly
No functional changes.
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
diff -r 9c5960826cd6 -r 61d80662cc5f xen/common/sched_credit2.c
--- a/xen/common/sched_credit2.c Thu Dec 09 17:50:54 2010 +0000
+++ b/xen/common/sched_credit2.c Thu Dec 09 17:50:54 2010 +0000
@@ -676,7 +676,6 @@
csched_vcpu_wake(const struct scheduler *ops, struct vcpu *vc)
{
struct csched_vcpu * const svc = CSCHED_VCPU(vc);
- const unsigned int cpu = vc->processor;
s_time_t now = 0;
/* Schedule lock should be held at this point. */
@@ -686,7 +685,7 @@
BUG_ON( is_idle_vcpu(vc) );
/* Make sure svc priority mod happens before runq check */
- if ( unlikely(per_cpu(schedule_data, cpu).curr == vc) )
+ if ( unlikely(per_cpu(schedule_data, vc->processor).curr == vc) )
{
goto out;
}
@@ -710,8 +709,8 @@
now = NOW();
/* Put the VCPU on the runq */
- runq_insert(ops, cpu, svc);
- runq_tickle(ops, cpu, svc, now);
+ runq_insert(ops, vc->processor, svc);
+ runq_tickle(ops, vc->processor, svc, now);
out:
d2printk("w-\n");
@@ -722,6 +721,7 @@
csched_context_saved(const struct scheduler *ops, struct vcpu *vc)
{
struct csched_vcpu * const svc = CSCHED_VCPU(vc);
+ s_time_t now = NOW();
vcpu_schedule_lock_irq(vc);
@@ -738,14 +738,11 @@
*/
if ( test_bit(__CSFLAG_delayed_runq_add, &svc->flags) )
{
- const unsigned int cpu = vc->processor;
-
+ BUG_ON(__vcpu_on_runq(svc));
clear_bit(__CSFLAG_delayed_runq_add, &svc->flags);
- BUG_ON(__vcpu_on_runq(svc));
-
- runq_insert(ops, cpu, svc);
- runq_tickle(ops, cpu, svc, NOW());
+ runq_insert(ops, vc->processor, svc);
+ runq_tickle(ops, vc->processor, svc, now);
}
vcpu_schedule_unlock_irq(vc);
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
George Dunlap
2010-Dec-09 17:53 UTC
[Xen-devel] [PATCH 3 of 3] credit2: Trace rdtsc value with some more records
Makes the traces slightly larger, but easier to analyze.
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
diff -r 61d80662cc5f -r 93bf801bd87a xen/common/sched_credit2.c
--- a/xen/common/sched_credit2.c Thu Dec 09 17:50:54 2010 +0000
+++ b/xen/common/sched_credit2.c Thu Dec 09 17:50:54 2010 +0000
@@ -383,7 +383,7 @@
d.dom = cur->vcpu->domain->domain_id;
d.vcpu = cur->vcpu->vcpu_id;
d.credit = cur->credit;
- trace_var(TRC_CSCHED2_TICKLE_CHECK, 0,
+ trace_var(TRC_CSCHED2_TICKLE_CHECK, 1,
sizeof(d),
(unsigned char *)&d);
}
@@ -445,7 +445,7 @@
d.vcpu = svc->vcpu->vcpu_id;
d.credit_start = start_credit;
d.credit_end = svc->credit;
- trace_var(TRC_CSCHED2_CREDIT_RESET, 0,
+ trace_var(TRC_CSCHED2_CREDIT_RESET, 1,
sizeof(d),
(unsigned char *)&d);
}
@@ -494,7 +494,7 @@
d.vcpu = svc->vcpu->vcpu_id;
d.credit = svc->credit;
d.delta = delta;
- trace_var(TRC_CSCHED2_CREDIT_BURN, 0,
+ trace_var(TRC_CSCHED2_CREDIT_BURN, 1,
sizeof(d),
(unsigned char *)&d);
}
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel