[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] remove blocked time accounting from xen "clockchip"
>>> On 18.10.11 at 22:42, Laszlo Ersek <lersek@xxxxxxxxxx> wrote: > ... because the "clock_event_device framework" already accounts for idle > time through the "event_handler" function pointer in > xen_timer_interrupt(). As event_handler is being checked to be non-zero, shouldn't the code you remove simply become conditional (upon event_handler being zero)? Jan > The patch is intended as the completion of [1]. It should fix the double > idle times seen in PV guests' /proc/stat [2]. It should be orthogonal to > stolen time accounting (the removed code seems to be isolated). > > The approach may be completely misguided. > > [1] https://lkml.org/lkml/2011/10/6/10 > [2] http://lists.xensource.com/archives/html/xen-devel/2010-08/msg01068.html > > Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> > --- > arch/x86/xen/time.c | 17 ++--------------- > 1 files changed, 2 insertions(+), 15 deletions(-) > > diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c > index 163b467..377f6ae 100644 > --- a/arch/x86/xen/time.c > +++ b/arch/x86/xen/time.c > @@ -36,9 +36,8 @@ static DEFINE_PER_CPU(struct vcpu_runstate_info, > xen_runstate); > /* snapshots of runstate info */ > static DEFINE_PER_CPU(struct vcpu_runstate_info, xen_runstate_snapshot); > > -/* unused ns of stolen and blocked time */ > +/* unused ns of stolen time */ > static DEFINE_PER_CPU(u64, xen_residual_stolen); > -static DEFINE_PER_CPU(u64, xen_residual_blocked); > > /* return an consistent snapshot of 64-bit time/counter value */ > static u64 get64(const u64 *p) > @@ -115,7 +114,7 @@ static void do_stolen_accounting(void) > { > struct vcpu_runstate_info state; > struct vcpu_runstate_info *snap; > - s64 blocked, runnable, offline, stolen; > + s64 runnable, offline, stolen; > cputime_t ticks; > > get_runstate_snapshot(&state); > @@ -125,7 +124,6 @@ static void do_stolen_accounting(void) > snap = &__get_cpu_var(xen_runstate_snapshot); > > /* work out how much time the VCPU has not been runn*ing* */ > - blocked = state.time[RUNSTATE_blocked] - snap->time[RUNSTATE_blocked]; > runnable = state.time[RUNSTATE_runnable] - > snap->time[RUNSTATE_runnable]; > offline = state.time[RUNSTATE_offline] - snap->time[RUNSTATE_offline]; > > @@ -141,17 +139,6 @@ static void do_stolen_accounting(void) > ticks = iter_div_u64_rem(stolen, NS_PER_TICK, &stolen); > __this_cpu_write(xen_residual_stolen, stolen); > account_steal_ticks(ticks); > - > - /* Add the appropriate number of ticks of blocked time, > - including any left-overs from last time. */ > - blocked += __this_cpu_read(xen_residual_blocked); > - > - if (blocked < 0) > - blocked = 0; > - > - ticks = iter_div_u64_rem(blocked, NS_PER_TICK, &blocked); > - __this_cpu_write(xen_residual_blocked, blocked); > - account_idle_ticks(ticks); > } > > /* Get the TSC speed from Xen */ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |