From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754036AbcAXCq1 (ORCPT ); Sat, 23 Jan 2016 21:46:27 -0500 Received: from mail-wm0-f41.google.com ([74.125.82.41]:38067 "EHLO mail-wm0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753288AbcAXCqY (ORCPT ); Sat, 23 Jan 2016 21:46:24 -0500 Message-ID: <1453603581.3609.15.camel@gmail.com> Subject: Re: fast path cycle muncher (vmstat: make vmstat_updater deferrable again and shut down on idle) From: Mike Galbraith To: Christoph Lameter Cc: Peter Zijlstra , LKML Date: Sun, 24 Jan 2016 03:46:21 +0100 In-Reply-To: References: <569FAC90.5030407@oracle.com> <20160120212806.GA26965@dhcp22.suse.cz> <20160121082402.GA29520@dhcp22.suse.cz> <20160121165148.GF29520@dhcp22.suse.cz> <20160122140418.GB19465@dhcp22.suse.cz> <20160122161201.GC19465@dhcp22.suse.cz> <1453566115.3529.8.camel@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.5 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 2016-01-23 at 18:33 -0600, Christoph Lameter wrote: > On Sat, 23 Jan 2016, Mike Galbraith wrote: > > > 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. > > Not sure what you are talking about. No sleeping locks are used in > quiet_vmstat() nor does it switch across cores. It would be broken if it > would do so. By switching cross-core, I'm referring to scheduling of communicating tasks. The perf top snippet... 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 ... was pipe-test, an unrealistic microbench, but the same will happen at lower frequency in the real world. Here's the sleeping lock for -rt: [ 2.279582] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.5.0-rt3 #7 [ 2.280444] Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 09/23/2013 [ 2.281316] ffff88040b00d640 ffff88040b01fe10 ffffffff812d20e2 0000000000000000 [ 2.282202] ffff88040b01fe30 ffffffff81081095 ffff88041ec4cee0 ffff88041ec501e0 [ 2.283073] ffff88040b01fe48 ffffffff815ff910 ffff88041ec4cee0 ffff88040b01fe88 [ 2.283941] Call Trace: [ 2.284797] [] dump_stack+0x49/0x67 [ 2.285658] [] ___might_sleep+0xf5/0x180 [ 2.286521] [] rt_spin_lock+0x20/0x50 [ 2.287382] [] try_to_grab_pending+0x69/0x240 [ 2.288239] [] cancel_delayed_work+0x26/0xe0 [ 2.289094] [] quiet_vmstat+0x75/0xa0 [ 2.289949] [] cpu_idle_loop+0x38/0x3e0 [ 2.290800] [] cpu_startup_entry+0x13/0x20 [ 2.291647] [] start_secondary+0x114/0x140