|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/3] xen: sched RTDS: use uint64_t for tracing time values
such as deadline and budget. Packing is necessary to make
it possible for xentrace_format to properly interpreet the
records.
Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
---
Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
Cc: Meng Xu <mengxu@xxxxxxxxxxxxx>
---
xen/common/sched_rt.c | 30 +++++++++++-------------------
1 file changed, 11 insertions(+), 19 deletions(-)
diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c
index bfed2e2..8e51abe 100644
--- a/xen/common/sched_rt.c
+++ b/xen/common/sched_rt.c
@@ -361,17 +361,14 @@ rt_update_deadline(s_time_t now, struct rt_vcpu *svc)
/* TRACE */
{
- struct {
+ struct __packed {
unsigned vcpu:16, dom:16;
- unsigned cur_deadline_lo, cur_deadline_hi;
- unsigned cur_budget_lo, cur_budget_hi;
+ uint64_t cur_deadline, cur_budget;
} d;
d.dom = svc->vcpu->domain->domain_id;
d.vcpu = svc->vcpu->vcpu_id;
- d.cur_deadline_lo = (unsigned) svc->cur_deadline;
- d.cur_deadline_hi = (unsigned) (svc->cur_deadline >> 32);
- d.cur_budget_lo = (unsigned) svc->cur_budget;
- d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32);
+ d.cur_deadline = (uint64_t) svc->cur_deadline;
+ d.cur_budget = (uint64_t) svc->cur_budget;
trace_var(TRC_RTDS_BUDGET_REPLENISH, 1,
sizeof(d),
(unsigned char *) &d);
@@ -711,16 +708,14 @@ burn_budget(const struct scheduler *ops, struct rt_vcpu
*svc, s_time_t now)
/* TRACE */
{
- struct {
+ struct __packed {
unsigned vcpu:16, dom:16;
- unsigned cur_budget_lo;
- unsigned cur_budget_hi;
+ uint64_t cur_budget;
int delta;
} d;
d.dom = svc->vcpu->domain->domain_id;
d.vcpu = svc->vcpu->vcpu_id;
- d.cur_budget_lo = (unsigned) svc->cur_budget;
- d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32);
+ d.cur_budget = (uint64_t) svc->cur_budget;
d.delta = delta;
trace_var(TRC_RTDS_BUDGET_BURN, 1,
sizeof(d),
@@ -763,17 +758,14 @@ __runq_pick(const struct scheduler *ops, const cpumask_t
*mask)
{
if( svc != NULL )
{
- struct {
+ struct __packed {
unsigned vcpu:16, dom:16;
- unsigned cur_deadline_lo, cur_deadline_hi;
- unsigned cur_budget_lo, cur_budget_hi;
+ uint64_t cur_deadline, cur_budget;
} d;
d.dom = svc->vcpu->domain->domain_id;
d.vcpu = svc->vcpu->vcpu_id;
- d.cur_deadline_lo = (unsigned) svc->cur_deadline;
- d.cur_deadline_hi = (unsigned) (svc->cur_deadline >> 32);
- d.cur_budget_lo = (unsigned) svc->cur_budget;
- d.cur_budget_hi = (unsigned) (svc->cur_budget >> 32);
+ d.cur_deadline = (uint64_t) svc->cur_deadline;
+ d.cur_budget = (uint64_t) svc->cur_budget;
trace_var(TRC_RTDS_RUNQ_PICK, 1,
sizeof(d),
(unsigned char *) &d);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |