Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1317274
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) |
| Date | 2016-01-25 21:20 +0100 |
| Message-ID | <qUVMf-PD-23@gated-at.bofh.it> (permalink) |
| References | (5 earlier) <qTMBk-6ri-29@gated-at.bofh.it> <qTN4n-6Dx-31@gated-at.bofh.it> <qU9ey-5ik-15@gated-at.bofh.it> <qUTr3-7vm-11@gated-at.bofh.it> <qUTKq-7UQ-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon 25-01-16 12:02:06, Christoph Lameter wrote: > On Mon, 25 Jan 2016, Michal Hocko wrote: > > > On Sat 23-01-16 17:21:55, Mike Galbraith wrote: > > > Hi Christoph, > > > > > > While you're fixing that commit up, can you perhaps find a better home > > > for quiet_vmstat()? It not only munches cycles when switching cross > > > -core mightily, for -rt it injects a sleeping lock into the idle task. > > > > > > 12.89% [kernel] [k] refresh_cpu_vm_stats.isra.12 > > > 4.75% [kernel] [k] __schedule > > > 4.70% [kernel] [k] mutex_unlock > > > 3.14% [kernel] [k] __switch_to > > > > Hmm, I wouldn't have expected that refresh_cpu_vm_stats could have > > such a large footprint. I guess this would be just an expensive noop > > because we have to check all the zones*counters and do an expensive > > this_cpu_xchg. Is the whole deferred thing worth this overhead? > > Why would the deferring cause this overhead? I guess the profile speaks for itself, doesn't it? > Also there is no cross core activity from quiet_vmstat(). It simply > disables the local vmstat updates. It doesn't go cross core but it still does nr_zones * counters atomic ops. > > Unless there is a clear and huge win from doing the vmstat update > > deferrable then I think a revert is more appropriate IMHO. > > It reduces the OS events that the application experiences by folding it > into the tick events. If its not deferrable then a timer event will be > generated in addition to the tick. We do not want that. Yes this is what I have read in the changelog. But "how much" part is really missing. Is this even quantifiable? > Workqueues are used in many places. If RT can sleep within workqueue > management functions then spinlocks cannot be taken anymore and there may > be issues with preemption. RT can sleep in _any_ spinlock except for raw spin locks. Even though the !RT kernel is not sleeping doesn't really matter much because cancel_delayed_work is quite a heavy function which shouldn't be called from the idle context AFAIU. Sure most of the time it will boil down to del_timer but it can hit the slowpath as well if the timer got migrated to a different CPU and we have to race with the WQ pool management IIUC. Maybe this overhead can be reduced by outsourcing the functionality to vmstat_shepherd which can check idle CPUs, cancel the timer for them update the differentials and put them to cpu_stat_off? > The regression that I know of (independent of "RT") is due as far as I > know due to the switch of the parameters of some vmstat functions to 64 > bit instead of 32 bit. I am not sure I am following. -- Michal Hocko SUSE Labs
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-20 15:40 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Sasha Levin <sasha.levin@oracle.com> - 2016-01-20 16:00 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-20 16:20 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-20 16:30 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Sasha Levin <sasha.levin@oracle.com> - 2016-01-20 17:00 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-20 17:00 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-20 22:30 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-20 23:00 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-21 09:30 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-21 16:50 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-21 18:00 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-21 18:40 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Shiraz Hashim <shiraz.linux.kernel@gmail.com> - 2016-01-22 12:10 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-22 15:10 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-22 17:10 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-22 17:20 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-22 17:50 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-22 18:20 +0100
fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-23 17:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-24 01:40 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-24 03:50 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-24 04:50 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-24 06:40 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Michal Hocko <mhocko@kernel.org> - 2016-01-25 18:50 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-25 19:10 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Michal Hocko <mhocko@kernel.org> - 2016-01-25 21:20 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 17:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 19:40 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 19:50 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 20:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-27 04:20 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-27 05:20 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-27 17:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 19:40 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 03:20 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 03:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 17:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 18:40 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 19:20 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 17:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 18:10 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 19:30 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-26 20:10 +0100
Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-26 20:30 +0100
[PATCH] mm, vmstat: make quiet_vmstat lighter (was: Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable) again and shut down on idle) Michal Hocko <mhocko@kernel.org> - 2016-01-27 17:50 +0100
Re: [PATCH] mm, vmstat: make quiet_vmstat lighter (was: Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable) again and shut down on idle) Mike Galbraith <umgwanakikbuti@gmail.com> - 2016-01-27 18:10 +0100
Re: [PATCH] mm, vmstat: make quiet_vmstat lighter (was: Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable) again and shut down on idle) Christoph Lameter <cl@linux.com> - 2016-01-27 19:30 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Linus Torvalds <torvalds@linux-foundation.org> - 2016-01-24 18:00 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Christoph Lameter <cl@linux.com> - 2016-01-20 16:20 +0100
Re: mm, vmstat: kernel BUG at mm/vmstat.c:1408! Michal Hocko <mhocko@kernel.org> - 2016-01-20 16:30 +0100
csiph-web