Messages in this thread | | | Date | Wed, 10 Aug 2022 11:04:48 -0400 | From | Johannes Weiner <> | Subject | Re: [PATCH 1/3] sched/psi: Zero the memory of struct psi_group |
| |
On Sat, Aug 06, 2022 at 08:05:08PM +0800, Hao Jia wrote: > After commit 5f69a6577bc3 ("psi: dont alloc memory for psi by default"), > the memory used by struct psi_group is no longer allocated and zeroed > in cgroup_create(). > > Since the memory of struct psi_group is not zeroed, the data in this > memory is random, which will lead to inaccurate psi statistics when > creating a new cgroup. > > So we use kzlloc() to allocate and zero the struct psi_group and > remove the redundant zeroing in group_init(). > > Steps to reproduce: > 1. Use cgroup v2 and enable CONFIG_PSI > 2. Create a new cgroup, and query psi statistics > mkdir /sys/fs/cgroup/test > cat /sys/fs/cgroup/test/cpu.pressure > some avg10=0.00 avg60=0.00 avg300=47927752200.00 total=12884901 > full avg10=561815124.00 avg60=125835394188.00 avg300=1077090462000.00 total=10273561772 > > cat /sys/fs/cgroup/test/io.pressure > some avg10=1040093132823.95 avg60=1203770351379.21 avg300=3862252669559.46 total=4294967296 > full avg10=921884564601.39 avg60=0.00 avg300=1984507298.35 total=442381631 > > cat /sys/fs/cgroup/test/memory.pressure > some avg10=232476085778.11 avg60=0.00 avg300=0.00 total=0 > full avg10=0.00 avg60=0.00 avg300=2585658472280.57 total=12884901 > > Fixes: commit 5f69a6577bc3 ("psi: dont alloc memory for psi by default") > > Signed-off-by: Hao Jia <jiahao.os@bytedance.com>
Yikes! Yes, we relied on the embedding cgroup being kzalloc'd, or, in the case of psi_system, on the psi_group being in NULLed static mem. The partial zeroing in group_init() obscured that. Thanks for the fix.
Cc: stable@vger.kernel.org # 5.19 Acked-by: Johannes Weiner <hannes@cmpxchg.org>
| |