All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Ingo Molnar <mingo@kernel.org>,
	Li Zhong <zhong@linux.vnet.ibm.com>,
	Namhyung Kim <namhyung.kim@lge.com>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Tony Luck <tony.luck@intel.com>,
	Fenghua Yu <fenghua.yu@intel.com>
Subject: Re: [PATCH 0/7] cputime: Full dynticks task/cputime accounting v5
Date: Fri, 25 Jan 2013 15:27:40 -0800	[thread overview]
Message-ID: <20130125232740.GA2296@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130125174247.GQ6395@linux.vnet.ibm.com>

Right...  Replied to the wrong email.  :-/

I queued "context_tracking: Add comments on interface and internals".

							Thanx, Paul

On Fri, Jan 25, 2013 at 09:42:47AM -0800, Paul E. McKenney wrote:
> On Thu, Jan 17, 2013 at 02:24:28PM +0100, Frederic Weisbecker wrote:
> > Hi,
> > 
> > This patchset was formerly called "Generic virtual based cputime accounting"  
> > but I changed the name to better reflect what it's all about.
> > 
> > This is	the part of the	full dynticks patchset that handles the	task and CPU
> > time accounting	without	the tick.
> > 
> > It's available at:
> > 
> > git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> > 	vtime/generic-v5
> > 
> > There have been a lot of changes since latest full dynticks patchset:
> > 
> > - Use sched_clock() instead of jiffies for better precision. And because
> > jiffies	granularity was requiring too much dirty hacks to make it working.
> > (Thanks	Steven for the suggestion).
> > 
> > - To fully support sched_clock(), use a	per nanosec granularity	in cputime_t
> > 
> > - Fix a	deadlock with tsacct
> > 
> > - Better description of the Kconfig
> > 
> > - Don't	scale generic vtime accounting against CFS precise task	time accounting.
> > Now that we use	sched_clock() we should have precise enough statistics.
> > 
> > - Consolidate some code in the reader side
> > 
> > - Make the reader irqsafe (fix potential deadlock against writers)
> > 
> > 
> > Most of the work is done. There are just a few small things I need to care about
> > to complete the full cputime support:
> > 
> > * Also handle dynticks guest time accounting (p->gtime and p->utime). This
> > require to bring a new accessor: task_gtime() and to add guest_enter() and
> > guest_exit() on the context tracking subsystem. Then make the same treatment
> > than with utime and stime. No big deal.
> > 
> > * New tasks start their cputime accounting from schedule() on sched-in time
> > (see arch_vtime_task_switch()). But I fear that idle tasks don't fall into this
> > category. That's a small detail but I hope I can find some generic way to handle it.
> > The boot init idle task is however handled.
> > 
> > * Per nsec granularity requires that cputime_t directly maps to cputime64_t. This
> > is fine on 64 bits archs and mostly fine in 32 bits archs as well because readers
> > use seqlock to synchronize against writers. But reading struct kernel_cputstat
> > is not protected. Not sure yet how to solve that.
> > 
> > So I'll likely focus on these items on the next version. Let's hope we can make
> > it ready for the next merge window.
> 
> Queued for 3.9, thank you!
> 
> 							Thanx, Paul
> 
> > Thanks.
> > 
> > ---
> > Frederic Weisbecker (7):
> >       context_tracking: Export context state for generic vtime
> >       cputime: Librarize per nsecs resolution cputime definitions
> >       cputime: Move default nsecs_to_cputime() to jiffies based cputime file
> >       cputime: Generic on-demand virtual cputime accounting
> >       cputime: Allow dynamic switch between tick/virtual based cputime accounting
> >       cputime: Use accessors to read task cputime stats
> >       cputime: Safely read cputime of full dynticks CPUs
> > 
> > 
> >  arch/alpha/kernel/osf_sys.c                  |    6 +-
> >  arch/ia64/include/asm/cputime.h              |   92 +----------
> >  arch/ia64/include/asm/thread_info.h          |    4 +-
> >  arch/ia64/include/asm/xen/minstate.h         |    2 +-
> >  arch/ia64/kernel/asm-offsets.c               |    2 +-
> >  arch/ia64/kernel/entry.S                     |   16 +-
> >  arch/ia64/kernel/fsys.S                      |    4 +-
> >  arch/ia64/kernel/head.S                      |    4 +-
> >  arch/ia64/kernel/ivt.S                       |    8 +-
> >  arch/ia64/kernel/minstate.h                  |    2 +-
> >  arch/ia64/kernel/time.c                      |    4 +-
> >  arch/powerpc/configs/chroma_defconfig        |    2 +-
> >  arch/powerpc/configs/corenet64_smp_defconfig |    2 +-
> >  arch/powerpc/configs/pasemi_defconfig        |    2 +-
> >  arch/powerpc/include/asm/cputime.h           |    6 +-
> >  arch/powerpc/include/asm/lppaca.h            |    2 +-
> >  arch/powerpc/include/asm/ppc_asm.h           |    4 +-
> >  arch/powerpc/kernel/entry_64.S               |    4 +-
> >  arch/powerpc/kernel/time.c                   |    4 +-
> >  arch/powerpc/platforms/pseries/dtl.c         |    6 +-
> >  arch/powerpc/platforms/pseries/setup.c       |    6 +-
> >  arch/s390/kernel/vtime.c                     |    6 +-
> >  arch/x86/kernel/apm_32.c                     |   11 +-
> >  drivers/isdn/mISDN/stack.c                   |    7 +-
> >  fs/binfmt_elf.c                              |    8 +-
> >  fs/binfmt_elf_fdpic.c                        |    7 +-
> >  include/asm-generic/cputime.h                |   66 +-------
> >  include/asm-generic/cputime_jiffies.h        |   72 +++++++++
> >  include/asm-generic/cputime_nsecs.h          |  104 ++++++++++++
> >  include/linux/context_tracking.h             |   28 ++++
> >  include/linux/hardirq.h                      |    4 +-
> >  include/linux/init_task.h                    |   11 ++
> >  include/linux/kernel_stat.h                  |    2 +-
> >  include/linux/sched.h                        |   34 ++++
> >  include/linux/tsacct_kern.h                  |    3 +
> >  include/linux/vtime.h                        |   51 ++++--
> >  init/Kconfig                                 |   23 +++-
> >  kernel/acct.c                                |    6 +-
> >  kernel/context_tracking.c                    |   22 +--
> >  kernel/cpu.c                                 |    4 +-
> >  kernel/delayacct.c                           |    7 +-
> >  kernel/exit.c                                |    6 +-
> >  kernel/fork.c                                |   14 ++
> >  kernel/posix-cpu-timers.c                    |   28 +++-
> >  kernel/sched/cputime.c                       |  219 +++++++++++++++++++++++---
> >  kernel/signal.c                              |   12 +-
> >  kernel/softirq.c                             |    6 +-
> >  kernel/time/tick-sched.c                     |    5 +-
> >  kernel/tsacct.c                              |   44 ++++--
> >  49 files changed, 696 insertions(+), 296 deletions(-)
> >  create mode 100644 include/asm-generic/cputime_jiffies.h
> >  create mode 100644 include/asm-generic/cputime_nsecs.h
> > 
> > -- 
> > 1.7.5.4
> > 


  reply	other threads:[~2013-01-25 23:27 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-17 13:24 [PATCH 0/7] cputime: Full dynticks task/cputime accounting v5 Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 1/7] context_tracking: Export context state for generic vtime Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 2/7] cputime: Librarize per nsecs resolution cputime definitions Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 3/7] cputime: Move default nsecs_to_cputime() to jiffies based cputime file Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 4/7] cputime: Generic on-demand virtual cputime accounting Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 5/7] cputime: Allow dynamic switch between tick/virtual based " Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 6/7] cputime: Use accessors to read task cputime stats Frederic Weisbecker
2013-01-17 13:24 ` [PATCH 7/7] cputime: Safely read cputime of full dynticks CPUs Frederic Weisbecker
2013-01-25 17:42 ` [PATCH 0/7] cputime: Full dynticks task/cputime accounting v5 Paul E. McKenney
2013-01-25 23:27   ` Paul E. McKenney [this message]
2013-01-25 23:31     ` Frederic Weisbecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130125232740.GA2296@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=fenghua.yu@intel.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung.kim@lge.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=zhong@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.