mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
x86/time: slightly streamline __update_vcpu_system_time()
Fold two if()-s using the same condition, converting the memset() so far separating them to a simple initializer. Move common assignments out of the conditional. Drop an unnecessary initializer. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
941cd44324
commit
838eefd6eb
1 file changed
+8
-15
+8
-15
@@ -790,9 +790,9 @@ uint64_t tsc_ticks2ns(uint64_t ticks)
|
||||
static void __update_vcpu_system_time(struct vcpu *v, int force)
|
||||
{
|
||||
struct cpu_time *t;
|
||||
struct vcpu_time_info *u, _u;
|
||||
struct vcpu_time_info *u, _u = {};
|
||||
struct domain *d = v->domain;
|
||||
s_time_t tsc_stamp = 0;
|
||||
s_time_t tsc_stamp;
|
||||
|
||||
if ( v->vcpu_info == NULL )
|
||||
return;
|
||||
@@ -816,28 +816,21 @@ static void __update_vcpu_system_time(struct vcpu *v, int force)
|
||||
}
|
||||
else
|
||||
tsc_stamp = gtime_to_gtsc(d, stime);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsc_stamp = t->local_tsc_stamp;
|
||||
}
|
||||
|
||||
memset(&_u, 0, sizeof(_u));
|
||||
|
||||
if ( d->arch.vtsc )
|
||||
{
|
||||
_u.tsc_timestamp = tsc_stamp;
|
||||
_u.system_time = t->stime_local_stamp;
|
||||
_u.tsc_to_system_mul = d->arch.vtsc_to_ns.mul_frac;
|
||||
_u.tsc_shift = d->arch.vtsc_to_ns.shift;
|
||||
}
|
||||
else
|
||||
{
|
||||
_u.tsc_timestamp = t->local_tsc_stamp;
|
||||
_u.system_time = t->stime_local_stamp;
|
||||
tsc_stamp = t->local_tsc_stamp;
|
||||
|
||||
_u.tsc_to_system_mul = t->tsc_scale.mul_frac;
|
||||
_u.tsc_shift = (s8)t->tsc_scale.shift;
|
||||
}
|
||||
|
||||
_u.tsc_timestamp = tsc_stamp;
|
||||
_u.system_time = t->stime_local_stamp;
|
||||
|
||||
if ( is_hvm_domain(d) )
|
||||
_u.tsc_timestamp += v->arch.hvm_vcpu.cache_tsc_offset;
|
||||
|
||||
|
||||