Thread (24 messages) 24 messages, 5 authors, 2018-12-22

Re: [PATCH 4/6] psi: introduce state_mask to represent stalled psi states

From: Peter Zijlstra <peterz@infradead.org>
Date: 2018-12-17 15:55:42
Also in: cgroups, linux-mm, lkml

On Fri, Dec 14, 2018 at 09:15:06AM -0800, Suren Baghdasaryan wrote:
quoted hunk ↗ jump to hunk
The psi monitoring patches will need to determine the same states as
record_times(). To avoid calculating them twice, maintain a state mask
that can be consulted cheaply. Do this in a separate patch to keep the
churn in the main feature patch at a minimum.

Signed-off-by: Suren Baghdasaryan <surenb@google.com>
---
 include/linux/psi_types.h |  3 +++
 kernel/sched/psi.c        | 29 +++++++++++++++++++----------
 2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h
index 2cf422db5d18..2c6e9b67b7eb 100644
--- a/include/linux/psi_types.h
+++ b/include/linux/psi_types.h
@@ -53,6 +53,9 @@ struct psi_group_cpu {
 	/* States of the tasks belonging to this group */
 	unsigned int tasks[NR_PSI_TASK_COUNTS];
 
+	/* Aggregate pressure state derived from the tasks */
+	u32 state_mask;
+
 	/* Period time sampling buckets for each state of interest (ns) */
 	u32 times[NR_PSI_STATES];
 
Since we spend so much time counting space in that line, maybe add a
note to the Changlog about how this fits.

Also, since I just had to re-count, you might want to add explicit
numbers to the psi_res and psi_states enums.
+		if (state_mask & (1 << s))
We have the BIT() macro, but I'm honestly not sure that will improve
things.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help