From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754042AbcEBPKK (ORCPT ); Mon, 2 May 2016 11:10:10 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:34110 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753144AbcEBPKH (ORCPT ); Mon, 2 May 2016 11:10:07 -0400 Date: Mon, 2 May 2016 17:10:04 +0200 From: Peter Zijlstra To: Mike Galbraith Cc: Chris Mason , Ingo Molnar , Matt Fleming , linux-kernel@vger.kernel.org Subject: Re: sched: tweak select_idle_sibling to look for idle threads Message-ID: <20160502151004.GE3430@twins.programming.kicks-ass.net> References: <20160405180822.tjtyyc3qh4leflfj@floor.thefacebook.com> <20160409190554.honue3gtian2p6vr@floor.thefacebook.com> <20160430124731.GE2975@worktop.cust.blueprintrf.com> <1462086753.9717.29.camel@suse.de> <20160502084615.GB3430@twins.programming.kicks-ass.net> <1462200604.3736.42.camel@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1462200604.3736.42.camel@suse.de> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 02, 2016 at 04:50:04PM +0200, Mike Galbraith wrote: > Order is one thing, but what the old behavior does first and foremost > is when the box starts getting really busy, only looking at target's > sibling shuts select_idle_sibling() down instead of letting it wreck > things. Once cores are moving, there are no large piles of anything > left to collect other than pain. > Anyway, the has_idle_cores business seems to shut select_idle_sibling() > down rather nicely when the the box gets busy. Forcing either core, > target's sibling or go fish turned in a top end win on 48 rq/socket. FWIW making the select_idle_core() thing iterate in the old style (start at target and wrap around) did bring an improvement, even in the face of has_idle_cores; it shrank the hole between OLD_IDLE and IDLE_CORES+IDLE_SMT (my variant of your #if 1 thing), but did not completely eliminate it (for sysbench-psql-oltp).