Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031134AbcDMOhN (ORCPT ); Wed, 13 Apr 2016 10:37:13 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:59025 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030928AbcDMOhL (ORCPT ); Wed, 13 Apr 2016 10:37:11 -0400 Date: Wed, 13 Apr 2016 10:36:40 -0400 From: Chris Mason To: Mike Galbraith CC: Peter Zijlstra , Ingo Molnar , Matt Fleming , Subject: Re: sched: tweak select_idle_sibling to look for idle threads Message-ID: <20160413143640.p52y22lvmdqkegmt@floor.thefacebook.com> Mail-Followup-To: Chris Mason , Mike Galbraith , Peter Zijlstra , Ingo Molnar , Matt Fleming , linux-kernel@vger.kernel.org References: <20160410195543.fp2tpixaafsts5x3@floor.thefacebook.com> <1460350461.3870.36.camel@suse.de> <20160412003044.smr24xzuom3locvo@floor.thefacebook.com> <1460436248.3839.80.camel@suse.de> <20160412132758.7apgqqwl2c2wksy6@floor.thefacebook.com> <1460484977.5617.32.camel@suse.de> <20160412200728.GA41928@clm-mbp.thefacebook.com> <1460517531.3780.29.camel@suse.de> <20160413134430.3s2w4dodocgislpb@floor.thefacebook.com> <1460557378.11954.22.camel@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1460557378.11954.22.camel@suse.de> User-Agent: Mutt/1.5.23.1 (2014-03-12) X-Originating-IP: [192.168.52.123] X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-04-13_08:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1210 Lines: 34 On Wed, Apr 13, 2016 at 04:22:58PM +0200, Mike Galbraith wrote: > On Wed, 2016-04-13 at 09:44 -0400, Chris Mason wrote: > > > So you're interested in numbers where we pass the wake_wide decision > > into select_idle_sibling(), and then use that instead of (or in addition > > to?) my should_scan_idle() function? > > Yeah, I was thinking instead of, and hoping that would be enough. I'm definitely up for experimenting with different tests to decide when to scan idle. I'll have to wait until after lsf/vault, but I can layout a bunch of tests. > > > I agree we may need to tweak wake_wide, since most of our wakeups now > > are failed affine wakeups. > > What exactly do you mean by failed affine wakeups? Failed because > wake_wide() said we don't want one, or because wake_affine() said we > can't have one? If the later, my thought bubble may have just burst, > but it still "feels" right. I mean this number: schedstat_inc(p, se.statistics.nr_wakeups_affine_attempts); Is much much much higher than this number: schedstat_inc(p, se.statistics.nr_wakeups_affine); So, wake_affine said we can't have one. I made a script to sum it up across all the threads of the webserver workload. -chris