Re: [RFC] psi: Add additional PSI counters for each type of memory pressure

From: Georgi Djakov
Date: Wed Nov 10 2021 - 11:46:01 EST



On 10.11.21 18:14, Peter Zijlstra wrote:
On Wed, Nov 10, 2021 at 07:36:37AM -0800, Georgi Djakov wrote:
@@ -21,7 +19,18 @@ enum psi_task_count {
* don't have to special case any state tracking for it.
*/
NR_ONCPU,
- NR_PSI_TASK_COUNTS = 4,
+ NR_BLK_CGROUP_THROTTLE,
+ NR_BIO,
+ NR_COMPACTION,
+ NR_THRASHING,
+ NR_CGROUP_RECLAIM_HIGH,
+ NR_CGROUP_RECLAIM_HIGH_SLEEP,
+ NR_CGROUP_TRY_CHARGE,
+ NR_DIRECT_COMPACTION,
+ NR_DIRECT_RECLAIM,
+ NR_READ_SWAPPAGE,
+ NR_KSWAPD,
+ NR_PSI_TASK_COUNTS = 16,
};

@@ -51,9 +80,20 @@ enum psi_states {
PSI_MEM_FULL,
PSI_CPU_SOME,
PSI_CPU_FULL,
+ PSI_BLK_CGROUP_THROTTLE,
+ PSI_BIO,
+ PSI_COMPACTION,
+ PSI_THRASHING,
+ PSI_CGROUP_RECLAIM_HIGH,
+ PSI_CGROUP_RECLAIM_HIGH_SLEEP,
+ PSI_CGROUP_TRY_CHARGE,
+ PSI_DIRECT_COMPACTION,
+ PSI_DIRECT_RECLAIM,
+ PSI_READ_SWAPPAGE,
+ PSI_KSWAPD,
/* Only per-CPU, to weigh the CPU in the global average: */
PSI_NONIDLE,
- NR_PSI_STATES = 7,
+ NR_PSI_STATES = 18,
};

Have you considered what this does to psi_group_cpu's size and layout
and the impact thereof on performance?

Thanks, i will definitely add some numbers in case there are no other
major arguments against this RFC patch.

BR,
Georgi