On Thu, Jun 27, 2024 at 4:56 AM Michal Hocko <mhocko@xxxxxxxx> wrote: > > On Thu 27-06-24 04:33:50, Yosry Ahmed wrote: > > On Thu, Jun 27, 2024 at 12:13 AM Michal Hocko <mhocko@xxxxxxxx> wrote: > > > > > > On Wed 26-06-24 09:42:32, Xiu Jianfeng wrote: > > > > Both the end of memory_stat_format() and memcg_stat_format() will call > > > > WARN_ON_ONCE(seq_buf_has_overflowed()). However, memory_stat_format() > > > > is the only caller of memcg_stat_format(), when memcg is on the default > > > > hierarchy, seq_buf_has_overflowed() will be executed twice, so remove > > > > the reduntant one. > > > > > > Shouldn't we rather remove both? Are they giving us anything useful > > > actually? Would a simpl pr_warn be sufficient? Afterall all we care > > > about is to learn that we need to grow the buffer size because our stats > > > do not fit anymore. It is not really important whether that is an OOM or > > > cgroupfs interface path. > > > > Is it possible for userspace readers to break if the stats are > > incomplete? > > They will certainly get an imprecise picture. Sufficient to break I > dunno. If some stats go completely missing and a parser expects them to always be there, I think they may break. > > > If yes, I think WARN_ON_ONCE() may be prompted to make it > > easier to catch and fix before deployment. > > The only advantage of WARN_ON_ONCE is that the splat is so verbose that > it gets noticed. Right, that's exactly what I meant. > And also it panics the system if panic_on_warn is > enabled. I do not particularly care about the latter but to me it seems > like the warning is just an over reaction and a simple pr_warn should > just achieve the similar effect - see my other reply If pr_warn()'s usually get noticed in a timely manner (by testers or bots), then I think pr_warn() would be sufficient. If they can go unnoticed for a while, I think WARN_ON_ONCE() may be warranted to avoid the possibility of breaking a userspace parser.