Messages in this thread | | | Date | Tue, 3 May 2022 16:17:02 -0300 | From | Marcelo Tosatti <> | Subject | Re: [patch v12 12/13] mm: vmstat_refresh: avoid queueing work item if cpu stats are clean |
| |
On Wed, Apr 27, 2022 at 09:23:06AM +0200, Thomas Gleixner wrote: > On Tue, Mar 15 2022 at 12:31, Marcelo Tosatti wrote: > > /* > > * The regular update, every sysctl_stat_interval, may come later > > @@ -1948,9 +1977,19 @@ int vmstat_refresh(struct ctl_table *tab > > * transiently negative values, report an error here if any of > > * the stats is negative, so we know to go looking for imbalance. > > */ > > - err = schedule_on_each_cpu(refresh_vm_stats); > > - if (err) > > - return err; > > + cpus_read_lock(); > > + for_each_online_cpu(cpu) { > > + struct work_struct *work = per_cpu_ptr(works, cpu); > > + > > + INIT_WORK(work, refresh_vm_stats); > > + if (need_update(cpu) || need_drain_remote_zones(cpu)) > > Of course that makes sense in general, but now you have two ways of > deciding whether updating this is required. > > 1) The above > > 2) The per CPU boolean which tells whether vmstats are dirty or not. > > Can we have a third method perhaps?
Ok, will think of a third method to increase clarity :-)
By the fourth method it will be clear for sure!
| |