On Thu, Jul 21, 2022 at 12:04:39PM +0800, Chengming Zhou wrote: > diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h > index c124f7d186d0..195f123b1cd1 100644 > --- a/include/linux/psi_types.h > +++ b/include/linux/psi_types.h > @@ -47,7 +47,8 @@ enum psi_res { > PSI_IO, > PSI_MEM, > PSI_CPU, > - NR_PSI_RESOURCES = 3, > + PSI_IRQ, > + NR_PSI_RESOURCES = 4, > }; > > /* > @@ -63,9 +64,11 @@ enum psi_states { > PSI_MEM_FULL, > PSI_CPU_SOME, > PSI_CPU_FULL, > + PSI_IRQ_SOME, > + PSI_IRQ_FULL, > /* Only per-CPU, to weigh the CPU in the global average: */ > PSI_NONIDLE, > - NR_PSI_STATES = 7, > + NR_PSI_STATES = 9, > }; > > enum psi_aggregators { $ pahole -EC psi_group_cpu defconfig-build/kernel/sched/build_utility.o struct psi_group_cpu { /* typedef seqcount_t */ struct seqcount { unsigned int sequence; /* 0 4 */ } seq __attribute__((__aligned__(64))); /* 0 4 */ unsigned int tasks[5]; /* 4 20 */ /* typedef u32 -> __u32 */ unsigned int state_mask; /* 24 4 */ /* typedef u32 -> __u32 */ unsigned int times[7]; /* 28 28 */ /* typedef u64 -> __u64 */ long long unsigned int state_start; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* typedef u32 -> __u32 */ unsigned int times_prev[2][7] __attribute__((__aligned__(64))); /* 64 56 */ /* size: 128, cachelines: 2, members: 6 */ /* padding: 8 */ /* forced alignments: 2 */ } __attribute__((__aligned__(64))); $ pahole -EC psi_group_cpu defconfig-build/kernel/sched/build_utility.o struct psi_group_cpu { /* typedef seqcount_t */ struct seqcount { unsigned int sequence; /* 0 4 */ } seq __attribute__((__aligned__(64))); /* 0 4 */ unsigned int tasks[5]; /* 4 20 */ /* typedef u32 -> __u32 */ unsigned int state_mask; /* 24 4 */ /* typedef u32 -> __u32 */ unsigned int times[9]; /* 28 36 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* typedef u64 -> __u64 */ long long unsigned int state_start; /* 64 8 */ /* XXX 56 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ /* typedef u32 -> __u32 */ unsigned int times_prev[2][9] __attribute__((__aligned__(64))); /* 128 72 */ /* size: 256, cachelines: 4, members: 6 */ /* sum members: 144, holes: 1, sum holes: 56 */ /* padding: 56 */ /* forced alignments: 2, forced holes: 1, sum forced holes: 56 */ } __attribute__((__aligned__(64))); So yeah, I think not.