Received: by 10.223.185.116 with SMTP id b49csp795916wrg; Tue, 20 Feb 2018 08:02:05 -0800 (PST) X-Google-Smtp-Source: AH8x227BBj8O46C2x4a+V9/8aYsnOHQxUGmCjGOCExCCYWssUxMm15NcHYHFcETL+zqhyA/R0wjJ X-Received: by 10.99.120.193 with SMTP id t184mr84074pgc.348.1519142525702; Tue, 20 Feb 2018 08:02:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519142525; cv=none; d=google.com; s=arc-20160816; b=fc4J+HFjv3jj8koGglW/sn9Lmyht48q342LnPauF+Roffuu/ZbH74u/y4G00cUG41+ ScILMa3EaG0RnZzkzkggBEMr/QqCk1AT7f0ZT17RJe+gDYvyZ9pwTdHzFu738eaOSoZP DYwrhrqEtGjJgg2XIW13dXvQdX23KnaxPdIQScQhVUH9aVZlKulH1W6C3kK+jkUd/7yJ Ldnjg0QCCdhBQzVUFweFbU1VAdmCGM5KUZrC/vhgOod2XkW2SyrMba8ynLlwSNCYhsqm 91QkEWZ3tJAPjfUDOsCIPWgel9T74p2F6bjkaaGZ0VcujKu/bhqYcyCZphTE40Sa3Odp 8oGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=ifU102tgP8dkmtwq5b6M25t0EJrYtm9PAjdPvOHweAg=; b=dz6MQVWgARpqrLqgg7FS3TdsUL+9O8wHOh8B1vVjyGpKRJ/WApuuP/SUdiDkcQGB2c Sz+GcCCz5oibr83yEPkzi78VkoxGNs5pUm/e+oDZS1dDRH8CjpbeqXA9bHkGo8LoupfV TnvRcuQfDFQTQi3jdXpny0ZNqJbpdqDmZtXE/A5heqdm8mmrnwN2O9m6JdOUxFuDZd7D aONSU7zZlr5N0mZ0ukf37Fj+Dtn7DaGYk2Tqeoak9Rq38IkbK77KB+PiUHN9mHOaYhaO J8DX8NqP16uOUe3heATAVs9lwnKuwwK78zCx85iOVgy/I6xRzk2oylsZQ2qPh8q6iTnb Egjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i1si4387477pfj.61.2018.02.20.08.01.48; Tue, 20 Feb 2018 08:02:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752115AbeBTQBG (ORCPT + 99 others); Tue, 20 Feb 2018 11:01:06 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:44852 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751320AbeBTQBF (ORCPT ); Tue, 20 Feb 2018 11:01:05 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 048FB80D; Tue, 20 Feb 2018 08:01:05 -0800 (PST) Received: from e105550-lin.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C5B003F25C; Tue, 20 Feb 2018 08:01:03 -0800 (PST) Date: Tue, 20 Feb 2018 16:01:01 +0000 From: Morten Rasmussen To: Peter Zijlstra Cc: mingo@redhat.com, valentin.schneider@arm.com, dietmar.eggemann@arm.com, vincent.guittot@linaro.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/7] sched/fair: Add group_misfit_task load-balance type Message-ID: <20180220160101.GB4589@e105550-lin.cambridge.arm.com> References: <1518711654-23503-1-git-send-email-morten.rasmussen@arm.com> <1518711654-23503-3-git-send-email-morten.rasmussen@arm.com> <20180219135644.GG25181@hirez.programming.kicks-ass.net> <20180219135842.GM25235@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180219135842.GM25235@hirez.programming.kicks-ass.net> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 19, 2018 at 02:58:42PM +0100, Peter Zijlstra wrote: > On Mon, Feb 19, 2018 at 02:56:44PM +0100, Peter Zijlstra wrote: > > On Thu, Feb 15, 2018 at 04:20:49PM +0000, Morten Rasmussen wrote: > > > @@ -6733,9 +6758,12 @@ done: __maybe_unused > > > if (hrtick_enabled(rq)) > > > hrtick_start_fair(rq, p); > > > > > > + update_misfit_status(p, rq); > > > + > > > return p; > > > > > > idle: > > > + update_misfit_status(NULL, rq); > > > new_tasks = idle_balance(rq, rf); > > > > > > /* > > > > So we set a point when picking a task (or tick). We clear said pointer > > when idle. > > N/m, I can't read today. You only store the load, not the actual task. It is a very valid question though. Storing the load of the misfit task isn't the perfect solution as there is no guarantee that we actually end up pulling the misfit task if some other task happens to be on the rq when we balance. However, as I think you are hinting, we will get into all sorts of interesting races if we store a pointer to the actual task. In most real scenarios it appears to be 'good enough'. The typical misfit scenario is one always-running task and potentially a few small tasks showing up periodically. In that case we are most likely to see the always-running task when we are balancing.