linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "tip-bot2 for Thomas Gleixner" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Frederic Weisbecker <frederic@kernel.org>,
	Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>,
	linux-kernel@vger.kernel.org
Subject: [tip: timers/core] posix-cpu-timers: Rename thread_group_cputimer() and make it static
Date: Wed, 28 Aug 2019 10:16:21 -0000	[thread overview]
Message-ID: <156698738168.5705.3770894138948288106.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20190821192919.869350319@linutronix.de>

The following commit has been merged into the timers/core branch of tip:

Commit-ID:     c506bef424ca282f2ad357e86fee940c69018974
Gitweb:        https://git.kernel.org/tip/c506bef424ca282f2ad357e86fee940c69018974
Author:        Thomas Gleixner <tglx@linutronix.de>
AuthorDate:    Wed, 21 Aug 2019 21:08:54 +02:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Wed, 28 Aug 2019 11:50:27 +02:00

posix-cpu-timers: Rename thread_group_cputimer() and make it static

thread_group_cputimer() is a complete misnomer. The function does two things:

 - For arming process wide timers it makes sure that the atomic time
   storage is up to date. If no cpu timer is armed yet, then the atomic
   time storage is not updated by the scheduler for performance reasons.

   In that case a full summing up of all threads needs to be done and the
   update needs to be enabled.

- Samples the current time into the caller supplied storage.

Rename it to thread_group_start_cputime(), make it static and fixup the
callsite.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lkml.kernel.org/r/20190821192919.869350319@linutronix.de

---
 include/linux/sched/cputime.h  |  1 -
 kernel/time/posix-cpu-timers.c | 17 +++++++++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/include/linux/sched/cputime.h b/include/linux/sched/cputime.h
index 6de7b38..2638fd0 100644
--- a/include/linux/sched/cputime.h
+++ b/include/linux/sched/cputime.h
@@ -61,7 +61,6 @@ extern void cputime_adjust(struct task_cputime *curr, struct prev_cputime *prev,
  * Thread group CPU time accounting.
  */
 void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times);
-void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times);
 void thread_group_sample_cputime(struct task_struct *tsk, struct task_cputime *times);
 
 /*
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
index cb73678..def225a 100644
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
@@ -253,7 +253,20 @@ void thread_group_sample_cputime(struct task_struct *tsk,
 	sample_cputime_atomic(times, &cputimer->cputime_atomic);
 }
 
-void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times)
+/**
+ * thread_group_start_cputime - Start cputime and return a sample
+ * @tsk:	Task for which cputime needs to be started
+ * @iimes:	Storage for time samples
+ *
+ * The thread group cputime accouting is avoided when there are no posix
+ * CPU timers armed. Before starting a timer it's required to check whether
+ * the time accounting is active. If not, a full update of the atomic
+ * accounting store needs to be done and the accounting enabled.
+ *
+ * Updates @times with an uptodate sample of the thread group cputimes.
+ */
+static void
+thread_group_start_cputime(struct task_struct *tsk, struct task_cputime *times)
 {
 	struct thread_group_cputimer *cputimer = &tsk->signal->cputimer;
 	struct task_cputime sum;
@@ -536,7 +549,7 @@ static int cpu_timer_sample_group(const clockid_t which_clock,
 {
 	struct task_cputime cputime;
 
-	thread_group_cputimer(p, &cputime);
+	thread_group_start_cputime(p, &cputime);
 	switch (CPUCLOCK_WHICH(which_clock)) {
 	default:
 		return -EINVAL;

  parent reply	other threads:[~2019-08-28 10:18 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-21 19:08 [patch V2 00/38] posix-cpu-timers: Cleanup and consolidation Thomas Gleixner
2019-08-21 19:08 ` [patch V2 01/38] posix-cpu-timers: Provide task validation functions Thomas Gleixner
2019-08-21 22:33   ` Frederic Weisbecker
2019-08-21 23:03     ` Frederic Weisbecker
2019-08-23 15:33       ` Thomas Gleixner
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 02/38] posix-cpu-timers: Use common permission check in posix_cpu_clock_get() Thomas Gleixner
2019-08-21 23:40   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-29 11:00     ` kbuild test robot
2019-08-29 11:21       ` Thomas Gleixner
2019-08-30  1:08         ` [kbuild-all] " Philip Li
2019-08-29 11:23     ` kbuild test robot
2019-08-21 19:08 ` [patch V2 03/38] posix-cpu-timers: Use common permission check in posix_cpu_timer_create() Thomas Gleixner
2019-08-21 23:49   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 04/38] posix-cpu-timers: Provide quick sample function for itimer Thomas Gleixner
2019-08-22 12:13   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 05/38] itimers: Use quick sample function Thomas Gleixner
2019-08-22 12:15   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-29 23:47     ` kbuild test robot
2019-08-30  6:01       ` Thomas Gleixner
2019-08-21 19:08 ` [patch V2 06/38] posix-cpu-timers: Sample directly in timer check Thomas Gleixner
2019-08-22 12:30   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 07/38] posix-cpu-timers: Rename thread_group_cputimer() and make it static Thomas Gleixner
2019-08-22 12:41   ` Frederic Weisbecker
2019-08-28 10:16   ` tip-bot2 for Thomas Gleixner [this message]
2019-08-21 19:08 ` [patch V2 08/38] posix-cpu-timers: Consolidate thread group sample code Thomas Gleixner
2019-08-22 13:49   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 09/38] posix-cpu-timers: Use clock ID in posix_cpu_timer_set() Thomas Gleixner
2019-08-22 13:58   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 10/38] posix-cpu-timers: Use clock ID in posix_cpu_timer_get() Thomas Gleixner
2019-08-22 14:07   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 11/38] posix-cpu-timers: Use clock ID in posix_cpu_timer_rearm() Thomas Gleixner
2019-08-22 14:12   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:08 ` [patch V2 12/38] posix-cpu-timers: Remove pointless return value check Thomas Gleixner
2019-08-22 14:15   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 13/38] posix-cpu-timers: Simplify sample functions Thomas Gleixner
2019-08-22 14:20   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 14/38] posix-cpu-timers: Get rid of pointer indirection Thomas Gleixner
2019-08-22 14:41   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 15/38] posix-cpu-timers: Sample task times once in expiry check Thomas Gleixner
2019-08-22 15:00   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 16/38] posix-cpu-timers: Move prof/virt_ticks into caller Thomas Gleixner
2019-08-22 15:05   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 17/38] posix-cpu-timers: Create a container struct Thomas Gleixner
2019-08-22 15:32   ` Frederic Weisbecker
2019-08-23 15:34     ` Thomas Gleixner
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 19/38] posix-cpu-timers: Move expiry cache into struct posix_cputimers Thomas Gleixner
2019-08-22 16:29   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 20/38] posix-cpu-timers: Provide array based access to expiry cache Thomas Gleixner
2019-08-23 17:33   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 21/38] posix-cpu-timers: Simplify timer queueing Thomas Gleixner
2019-08-23 17:51   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 22/38] posix-cpu-timers: Simplify set_process_cpu_timer() Thomas Gleixner
2019-08-23 18:00   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 23/38] posix-cpu-timers: Switch check_*_timers() to array cache Thomas Gleixner
2019-08-23 18:13   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 24/38] posix-cpu-timers: Remove the odd field rename defines Thomas Gleixner
2019-08-23 18:36   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 25/38] posix-cpu-timers: Provide array based sample functions Thomas Gleixner
2019-08-23 22:08   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 26/38] posix-cpu-timers: Make expiry checks array based Thomas Gleixner
2019-08-23 22:44   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 27/38] posix-cpu-timers: Remove cputime_expires Thomas Gleixner
2019-08-23 22:50   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 28/38] posix-cpu-timers: Restructure expiry array Thomas Gleixner
2019-08-26 16:32   ` Frederic Weisbecker
2019-08-26 18:16     ` Thomas Gleixner
2019-08-26 18:22       ` [patch V3 " Thomas Gleixner
2019-08-26 19:45         ` Frederic Weisbecker
2019-08-28 10:16         ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-26 21:06   ` [patch V2 28/38] " Frederic Weisbecker
2019-08-26 21:46     ` Thomas Gleixner
2019-08-21 19:09 ` [patch V2 29/38] posix-cpu-timers: Switch thread group sampling to array Thomas Gleixner
2019-08-26 21:12   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 30/38] posix-cpu-timers: Respect INFINITY for hard RTTIME limit Thomas Gleixner
2019-08-26 21:19   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 31/38] rlimit: Rewrite non-sensical RLIMIT_CPU comment Thomas Gleixner
2019-08-26 21:41   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 32/38] posix-cpu-timers: Get rid of zero checks Thomas Gleixner
2019-08-26 21:57   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 33/38] posix-cpu-timers: Consolidate timer expiry further Thomas Gleixner
2019-08-26 22:29   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 34/38] posix-cpu-timers: Get rid of 64bit divisions Thomas Gleixner
2019-08-26 22:51   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 35/38] posix-cpu-timers: Remove pointless comparisons Thomas Gleixner
2019-08-26 22:59   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 36/38] posix-cpu-timers: Deduplicate rlimit handling Thomas Gleixner
2019-08-26 23:13   ` Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 37/38] posix-cpu-timers: Move state tracking to struct posix_cputimers Thomas Gleixner
2019-08-26 23:28   ` Frederic Weisbecker
2019-08-26 23:33     ` Thomas Gleixner
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-21 19:09 ` [patch V2 38/38] posix-cpu-timers: Utilize timerqueue for storage Thomas Gleixner
2019-08-27  0:48   ` Frederic Weisbecker
2019-08-27  6:08     ` Thomas Gleixner
2019-08-27 13:17       ` Frederic Weisbecker
2019-08-27 13:46         ` Thomas Gleixner
2019-08-27 19:31           ` [patch V3 " Thomas Gleixner
2019-08-27 22:23             ` Frederic Weisbecker
2019-08-28 10:16             ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2019-08-22  0:54 ` [patch V2 00/38] posix-cpu-timers: Cleanup and consolidation Christoph Hellwig
2019-08-22  1:02   ` Frederic Weisbecker
2019-08-22  1:02     ` Christoph Hellwig
     [not found] ` <20190821192920.909530418@linutronix.de>
2019-08-22 16:06   ` [patch V2 18/38] sched: Move struct task_cputime to types.h Frederic Weisbecker
2019-08-28 10:16   ` [tip: timers/core] " tip-bot2 for Thomas Gleixner

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=156698738168.5705.3770894138948288106.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=bp@alien8.de \
    --cc=frederic@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).