Hi, On 2024-12-18 15:53:39 +0000, Bertrand Drouvot wrote: > On Wed, Dec 18, 2024 at 10:35:45AM -0500, Andres Freund wrote: > > Hi, > > > > On 2024-12-18 15:14:07 +0000, Bertrand Drouvot wrote: > > > While working on [1], it has been noticed that pgstat_flush_io() is > > > called for > > > the walwriter. Indeed, it's coming from the pgstat_report_wal() call in > > > WalWriterMain(). That can not report any I/O stats activity (as the > > > walwriter is not part of the I/O stats tracking, see > > > pgstat_tracks_io_bktype()). > > > > > > The behavior is there since 28e626bde00 and I did not find any explicit > > > reason > > > to do so provided in the linked thread [2]. > > > > > > Calling pgstat_flush_io() from there looks unnecessary, so $SUBJECT, > > > until the > > > walwriter is part of the I/O stats tracking system. > > > > I don't really see the point of this change? What do we gain by moving stuff > > around like you did? > > Thanks for looking at it! > > The purpose is to remove the unnecessary pgstat_flush_io() call from > WalWriterMain(). In passing the patch also removes pgstat_report_wal() because > it just ends up calling pgstat_flush_wal(). > > Is your remark related to the way it has been done or do you think it's just > fine to keep the useless pgstat_flush_io() call? (I agree that the gain is not > that much as pgstat_io_flush_cb() probably just returns false here when > checking > for "have_iostats").
Yea, i think it's fine to just call it unnecessarily. Particularly because we do want to actually report IO stats for walwriter eventually. Greetings, Andres Freund