From patchwork Mon Jul 20 15:37:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 237286 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2092310ilg; Mon, 20 Jul 2020 08:43:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwoTG43LhZarBqwEH32XsyIWqfMG6JLmU7SKVsvxuynhhraThN/tJFCDd569aMdwAZMSRfS X-Received: by 2002:a05:6402:b4c:: with SMTP id bx12mr21216580edb.157.1595259803221; Mon, 20 Jul 2020 08:43:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595259803; cv=none; d=google.com; s=arc-20160816; b=kJcLJ+JidsYEKa0dEsz0AlJfGfm7iV7+S4Mesph03FTA76Wm9tCJ/picrxGZc8m6oG eKb5rw0CZsTCgHddBMwZ3Y/uPMdPey0A9KTcvIiQs8O6DOk0zDxALJhoDm4J4V1R8zsT fada6mJZa9Vw5pAwHK44TLucxEjCgP0hd8tvbl6yH74DTq3Z0tFjSePtqowo5ZQxrpn9 Y0oSlgDN5+f6zz6sAKKj4GIbkrh5IHV6wNxE0zk8ZM8q4fM1kBZgjoWjfePmSPAS7lIJ n+JQ9YEXi/GhFTWTf1PNrax6vXaPAzVLAGKTuwvyi2rwOqIcDpLgUi1ihwxQ79C7Vll0 RALw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=JIoTngvwuWKAVeVWRDc5t75/JjdaELoZjXCxerWvznQ=; b=ud2cppqSvLqUIEptAWfoX2g5H3eQnVjYeVFdN2TUfexZj4bMOdLTZrMSbnDLceL2au aEYebnsOzvn1bPGkRBu1vX/zadsiBNPMLMQc7YLb3nK9mGJzkvI1+p0LUE6IxPxCijBR d4Qgo/OD2uvBQ/rVpo8tpxxhLtm9f7+dkIBeSg+LAUFGTEoRT5+RaS9Vs9UwMF1PfTu/ 54OhLPsn8UJuff2XNlA2v7GCwFPIKM6KfA1OJRiRX2MB61P793SsRu9bBnWJCnNfMPG0 YMiLeI52Pn9/rBr6eGNVWqd6ocrahetypu44/6yv7O1BIl+ie6tukKY2d/JvSsSws4jp Cwkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IGAtHxik; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g12si10724854edn.412.2020.07.20.08.43.23; Mon, 20 Jul 2020 08:43:23 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IGAtHxik; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730222AbgGTPnW (ORCPT + 15 others); Mon, 20 Jul 2020 11:43:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:36684 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730239AbgGTPnV (ORCPT ); Mon, 20 Jul 2020 11:43:21 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2000522CAF; Mon, 20 Jul 2020 15:43:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595259800; bh=42JyVhg1+olFp1dfJGVALbpgABZHdFoxPFAbxbHEucg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IGAtHxikdsIQ2u1Ouguf636isG2NLGhkei+iPp47RPiU1vY3QqiwE3G1RS5OH9d4w PywRTKEjOyozXiof53vxqdakRkyDqyk0CC2FOttqfWTzcuWJFTA9LnUtYGiRf1FVQW HoxwkPKK5fOZevIB8btgaAg35iurKKERjKKBbQno= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vincent Guittot , "Peter Zijlstra (Intel)" , Valentin Schneider , Dietmar Eggemann Subject: [PATCH 4.9 84/86] sched/fair: handle case of task_h_load() returning 0 Date: Mon, 20 Jul 2020 17:37:20 +0200 Message-Id: <20200720152757.501990741@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152753.138974850@linuxfoundation.org> References: <20200720152753.138974850@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Vincent Guittot commit 01cfcde9c26d8555f0e6e9aea9d6049f87683998 upstream. task_h_load() can return 0 in some situations like running stress-ng mmapfork, which forks thousands of threads, in a sched group on a 224 cores system. The load balance doesn't handle this correctly because env->imbalance never decreases and it will stop pulling tasks only after reaching loop_max, which can be equal to the number of running tasks of the cfs. Make sure that imbalance will be decreased by at least 1. misfit task is the other feature that doesn't handle correctly such situation although it's probably more difficult to face the problem because of the smaller number of CPUs and running tasks on heterogenous system. We can't simply ensure that task_h_load() returns at least one because it would imply to handle underflow in other places. Signed-off-by: Vincent Guittot Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Valentin Schneider Reviewed-by: Dietmar Eggemann Tested-by: Dietmar Eggemann Cc: # v4.4+ Link: https://lkml.kernel.org/r/20200710152426.16981-1-vincent.guittot@linaro.org Signed-off-by: Greg Kroah-Hartman --- kernel/sched/fair.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6561,7 +6561,15 @@ static int detach_tasks(struct lb_env *e if (!can_migrate_task(p, env)) goto next; - load = task_h_load(p); + /* + * Depending of the number of CPUs and tasks and the + * cgroup hierarchy, task_h_load() can return a null + * value. Make sure that env->imbalance decreases + * otherwise detach_tasks() will stop only after + * detaching up to loop_max tasks. + */ + load = max_t(unsigned long, task_h_load(p), 1); + if (sched_feat(LB_MIN) && load < 16 && !env->sd->nr_balance_failed) goto next;