From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9522AC433E0 for ; Thu, 25 Jun 2020 06:15:46 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 60749206FA for ; Thu, 25 Jun 2020 06:15:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="lKt+nMdR"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="f7rUODby" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60749206FA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=2YVJ7l3+xpUddyONC5n5NYmNGk1YCPb8ua1Pc0jg/fo=; b=lKt+nMdR24xW0TmAc98Qa/uQEO W9n45RQFOWX1NgAl877ITZHWRJJnWBw3NMZmtGOiEN1ath2T+Ho06LBKhot56UfSm/OtjRSbzhw76 1R2GZxcwTLiFMGy2mdMHL69CfOM4n4X3hXfN/o3beLJ30JJMgOsz63mRE5cXohU5V+Rwm0TYMe/vZ N5cxPZu4xbwqCVXm+aQWvXAEjOgg53Nc7WbSsbq3LmeO/dOdGXSFEPTu6vZ9CtlmyDbmWKkG7Szu9 gcb9dR3CxGRZLZuirf9Ax3xlt52pznx07lNqfJuWWUsfciy9Y630iez13qfM41TO33dWg+PH84306 RVHfgLzA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1joL98-0001p5-UW; Thu, 25 Jun 2020 06:14:02 +0000 Received: from mail29.static.mailgun.info ([104.130.122.29]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1joL93-0001o0-0d for linux-arm-kernel@lists.infradead.org; Thu, 25 Jun 2020 06:14:00 +0000 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1593065639; h=Message-Id: Date: Subject: Cc: To: From: Sender; bh=OokbzRGBh4vM/wAytBHd5gph7Yx4DvpSixDVA2ZxHJ4=; b=f7rUODbyGrzed01y1qAf2mjiJ7iy0MRCCe00SFWdikCfYBEHakAMNPIOcR7rjyckveO7xalf XADdd/E+KczAVz2JUWcriWXwzd0lxnvY8n6/3MHXFtUfVMKe8jyimtjPyEljxdWw/2EASijr hdBfpXmD5slRqEdSvkEb7/E3JOU= X-Mailgun-Sending-Ip: 104.130.122.29 X-Mailgun-Sid: WyJiYzAxZiIsICJsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmciLCAiYmU5ZTRhIl0= Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n13.prod.us-east-1.postgun.com with SMTP id 5ef4408aa6e154319f533367 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 25 Jun 2020 06:13:30 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 98E09C43391; Thu, 25 Jun 2020 06:13:29 +0000 (UTC) Received: from snimmala-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: snimmala) by smtp.codeaurora.org (Postfix) with ESMTPSA id EECCCC433C6; Thu, 25 Jun 2020 06:13:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org EECCCC433C6 Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=none smtp.mailfrom=snimmala@codeaurora.org From: Sai Harshini Nimmala To: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-msm-owner@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH] Revert "sched/deadline: Remove cpu_active_mask from cpudl_find()" Date: Wed, 24 Jun 2020 23:13:15 -0700 Message-Id: <1593065595-17794-1-git-send-email-snimmala@codeaurora.org> X-Mailer: git-send-email 2.7.4 X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: rgottimu@codeaurora.org, clingutla@codeaurora.org, adharmap@codeaurora.org, Puja Gupta , dickey@codeaurora.org, Sai Harshini Nimmala , shalagra@codeaurora.org, satyap@codeaurora.org, aiquny@codeaurora.org, pkondeti@codeaurora.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The original commit 9659e1ee removes checking the cpu_active_mask while finding the best cpu to place a deadline task, citing the reason that this mask rarely changes and removing the check will give performance gains. However, on hotplugging, the cpu dying path has a brief duration between the CPUHP_TEARDOWN_CPU and CPUHP_AP_SCHED_STARTING hotplug states where the DL task can be scheduled on this cpu because the corresponding cpu bit in cpu->free_cpus has not been cleared yet. Without the cpu_active_mask check we could end up putting a DL task on such cpus leading to a BUG. The cpu_active_mask will be updated promptly before either of these states and will provide a more accurate check for the use case above. Signed-off-by: Puja Gupta Signed-off-by: Sai Harshini Nimmala --- kernel/sched/cpudeadline.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c index 5cc4012..0346837 100644 --- a/kernel/sched/cpudeadline.c +++ b/kernel/sched/cpudeadline.c @@ -120,7 +120,8 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p, const struct sched_dl_entity *dl_se = &p->dl; if (later_mask && - cpumask_and(later_mask, cp->free_cpus, p->cpus_ptr)) { + cpumask_and(later_mask, cp->free_cpus, p->cpus_ptr) && + cpumask_and(later_mask, later_mask, cpu_active_mask)) { return 1; } else { int best_cpu = cpudl_maximum(cp); @@ -128,6 +129,7 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p, WARN_ON(best_cpu != -1 && !cpu_present(best_cpu)); if (cpumask_test_cpu(best_cpu, p->cpus_ptr) && + cpumask_test_cpu(best_cpu, cpu_active_mask) && dl_time_before(dl_se->deadline, cp->elements[0].dl)) { if (later_mask) cpumask_set_cpu(best_cpu, later_mask); -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel