Re: Re: [PATCH 1/3] cgroup/rstat: Fix forceidle time in cpu.stat

From: Tejun Heo
Date: Fri Jan 24 2025 - 18:49:19 EST


On Fri, Jan 24, 2025 at 03:49:16PM +0800, Abel Wu wrote:
...
> > > --- a/kernel/cgroup/rstat.c
> > > +++ b/kernel/cgroup/rstat.c
> > > @@ -613,36 +613,33 @@ static void cgroup_force_idle_show(struct seq_file *seq, struct cgroup_base_stat
> > > void cgroup_base_stat_cputime_show(struct seq_file *seq)
> > > {
> > > struct cgroup *cgrp = seq_css(seq)->cgroup;
> > > - u64 usage, utime, stime, ntime;
> > > + struct cgroup_base_stat bstat;
> > > if (cgroup_parent(cgrp)) {
> > > cgroup_rstat_flush_hold(cgrp);
> > > - usage = cgrp->bstat.cputime.sum_exec_runtime;
> > > + bstat = cgrp->bstat;
> >
> > Thank you for finding that.
> > In my version 2, I used to assign cgrp->bstat to bstat.
> > This is Tj's comment:
> > https://lore.kernel.org/linux-kernel/ZoQ2ti7nnz9EJSc3@xxxxxxxxxxxxxxx/

I wasn't saying that memcpy() should be used instead of assignment. I was
saying that if a non-trivial struct can be pointed to instead of being
copied, it should be pointed to. If all the fields need to be snapshotted,
assigning is fine.

Thanks.

--
tejun