Re: [RFC GIT PULL] nohz: Basic cputime accounting for adaptivetickless

From: Ingo Molnar
Date: Fri Jun 15 2012 - 08:13:26 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> On Thu, Jun 14, 2012 at 04:36:33PM +0200, Ingo Molnar wrote:
> >
> > * Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
> >
> > > > > > > > I'll try something with that.
> > > > > > >
> > > > > > > Maybe sanitize all the variants under a single set of
> > > > > > > wrappers/callbacks?
> > > > > >
> > > > > > Yes, please!
> > > > >
> > > > > Sure, I'm working in it.
> > > >
> > > > Please keep me in the loop, I want to avoid that things
> > > > break on s390. Thanks.
> > >
> > > Well, I realize I can't consolidate much between ia64, s390
> > > and ppc because they all handle virtual cpu time accounting
> > > very differently. I'm also not what the virtual timer is for.
> >
> > As a first step I'd suggest to create a superset of all existing
> > and relied-upon wrappers/callbacks, into a single obvious
> > sched_*() or time_*() namespace, without breaking functionality.
>
> But the API is already well defined. The arch just need to
> implement account_system_vtime() and account_process_tick()
> and record the time on the kernel boundaries. This is pretty
> well contained in ppc entry.S where it is implemented through
> ACCOUNT_CPU_USER_ENTRY/EXIT macros (although I see the time
> accounted on syscall boundaries but not in exceptions), it's
> more complicated in ia64 as the virt accounting is spread here
> and there in entry.S and it's always on in s390.
>
> May be we could standardize a bit the way we save and account
> the time. This require some non-trivial asm surgery on archs I
> don't know much about though.

Yeah, account_*() is a fine API too - as long as it's a
unification of all time accounting functionality.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/