From: Ingo Molnar <mingo@kernel.org>
To: Frederic Weisbecker <fweisbec@gmail.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
linux-s390@vger.kernel.org
Cc: LKML <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Steven Rostedt <rostedt@goodmis.org>,
Paul Gortmaker <paul.gortmaker@windriver.com>
Subject: Re: [PATCH 2/5] vtime: Provide an irq safe version of vtime_account_system()
Date: Thu, 25 Oct 2012 09:48:15 +0200 [thread overview]
Message-ID: <20121025074815.GC3712@gmail.com> (raw)
In-Reply-To: <1351126313-17804-3-git-send-email-fweisbec@gmail.com>
I've Cc:-ed the S390 folks - patch is quoted below.
Thanks,
Ingo
* Frederic Weisbecker <fweisbec@gmail.com> wrote:
> vtime_account_system() currently has only one caller with
> vtime_account() that is irq safe.
>
> Now we are going to call it from other places like kvm, so
> let's provide an irqsafe version.
>
> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Steven Rostedt <rostedt@goodmis.org>
> Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> arch/s390/kernel/vtime.c | 4 ++++
> include/linux/vtime.h | 2 ++
> kernel/sched/cputime.c | 9 +++++++++
> 3 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
> index 7903344..80d1dbc 100644
> --- a/arch/s390/kernel/vtime.c
> +++ b/arch/s390/kernel/vtime.c
> @@ -140,6 +140,10 @@ void vtime_account(struct task_struct *tsk)
> }
> EXPORT_SYMBOL_GPL(vtime_account);
>
> +void vtime_account_system(struct task_struct *tsk)
> +__attribute__((alias("vtime_account")));
> +EXPORT_SYMBOL_GPL(vtime_account_system);
> +
> void __kprobes vtime_stop_cpu(void)
> {
> struct s390_idle_data *idle = &__get_cpu_var(s390_idle);
> diff --git a/include/linux/vtime.h b/include/linux/vtime.h
> index 7199c24..57f290e 100644
> --- a/include/linux/vtime.h
> +++ b/include/linux/vtime.h
> @@ -6,9 +6,11 @@ struct task_struct;
> #ifdef CONFIG_VIRT_CPU_ACCOUNTING
> extern void vtime_task_switch(struct task_struct *prev);
> extern void vtime_account_system(struct task_struct *tsk);
> +extern void vtime_account_system_irqsafe(struct task_struct *tsk);
> extern void vtime_account_idle(struct task_struct *tsk);
> #else
> static inline void vtime_task_switch(struct task_struct *prev) { }
> +static inline void vtime_account_system_irqsafe(struct task_struct *tsk) { }
> #endif
>
> #if !defined(CONFIG_VIRT_CPU_ACCOUNTING) && !defined(CONFIG_IRQ_TIME_ACCOUNTING)
> diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
> index 81b763b..3ccbea0 100644
> --- a/kernel/sched/cputime.c
> +++ b/kernel/sched/cputime.c
> @@ -433,6 +433,15 @@ void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *st)
> *st = cputime.stime;
> }
>
> +void vtime_account_system_irqsafe(struct task_struct *tsk)
> +{
> + unsigned long flags;
> +
> + local_irq_save(flags);
> + vtime_account_system(tsk);
> + local_irq_restore(flags);
> +}
> +
> /*
> * Archs that account the whole time spent in the idle task
> * (outside irq) as idle time can rely on this and just implement
> --
> 1.7.5.4
>
next prev parent reply other threads:[~2012-10-25 7:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-25 0:51 [PATCH 0/5] cputime: Moar cleanups / enhancements v2 Frederic Weisbecker
2012-10-25 0:51 ` [PATCH 1/5] vtime: Gather vtime declarations to their own header file Frederic Weisbecker
2012-10-25 0:51 ` [PATCH 2/5] vtime: Provide an irq safe version of vtime_account_system() Frederic Weisbecker
2012-10-25 7:48 ` Ingo Molnar [this message]
2012-10-25 0:51 ` [PATCH 3/5] kvm: Directly account vtime to system on guest switch Frederic Weisbecker
2012-10-25 7:51 ` Christian Borntraeger
2012-10-25 7:56 ` Frederic Weisbecker
2012-10-25 7:59 ` Christian Borntraeger
2012-10-25 0:51 ` [PATCH 4/5] cputime: Specialize irq vtime hooks Frederic Weisbecker
2012-10-25 0:51 ` [PATCH 5/5] cputime: Separate irqtime accounting from generic vtime 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=20121025074815.GC3712@gmail.com \
--to=mingo@kernel.org \
--cc=fweisbec@gmail.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=paul.gortmaker@windriver.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=schwidefsky@de.ibm.com \
--cc=tglx@linutronix.de \
/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.