From patchwork Thu Nov 3 12:07:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Qiao X-Patchwork-Id: 14831 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp481134wru; Thu, 3 Nov 2022 04:59:42 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5BHYgmpFOB+2cMYz6iGzxErCZrEUyqhQLaFtjFpo15Oj2+UOcjWYHaI5luh5WfkKJz76+B X-Received: by 2002:a17:90b:4a42:b0:213:383f:cd21 with SMTP id lb2-20020a17090b4a4200b00213383fcd21mr47454583pjb.23.1667476782423; Thu, 03 Nov 2022 04:59:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667476782; cv=none; d=google.com; s=arc-20160816; b=IMWUUk8sIgw8a1GFgXDAD+mLfvbwX1xttms1o6DBbdOZ4gYEHfOJv5zXVa0FNwol84 Z17B71HS4txUUGsv2l0GGc97CcgwO1tIZoQSwqWe+eBQISlLSOdup0wgxdrxcWq76+ez gmpaqvO6Icsj8ZV6BmvLq326jrgNEA+sxLLZDBjSoZneZ+YOADEs26iMK2AJ9An4uhVR 8WEtiIyeauUdSOSnuhznVpAaAlpU9bzMf3uStmGBS5kCCWevO4nxWunnjDN2DTGppV3e U3z/RKmZPi4avZEEenAs1htkd51mL157+KF9uA3jgpapCcquUH08GgCHPg1MZGZ9bvbP iXVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=lSPZpYby2b6UH/F6EZ/aIVQmyJFUJUfRu2BvlNOzVsc=; b=UAaqjVSzvn7mbVjpPAbh8riQL2ZoQMdPSwNzHbNXp1QgKvyzeSOwWKnlvJMK2ydqds tuaK7DS2+/rYPOqIelLBU1lcBAJ81RCX2L60RLiNnYgKBdpxJc1e3aenIleydjDbXmoR AUUE/GFIYYVJcWvOWGLnX5P7Ajtu0pOrjKDYkqvZ1GldGygeF6Qevq8ATdIU3naIjUWg iVoQAOvPPJ/VhUlcm8Xtl7nm7nqyG7EgWtRVBvhh5E0eRaGjivMj2AS0SRkqD55ffI3f QBtVmM1NVNb6Gqan4Jx1gt1gUIqVgeE0DOIiUNOuBrF7g/V8jm0J7WSb0nApuo7JAX5/ /Eew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g18-20020a056a001a1200b005627d896458si861530pfv.142.2022.11.03.04.59.27; Thu, 03 Nov 2022 04:59:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230175AbiKCLiu (ORCPT + 99 others); Thu, 3 Nov 2022 07:38:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50774 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231462AbiKCLi1 (ORCPT ); Thu, 3 Nov 2022 07:38:27 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2713B1209D for ; Thu, 3 Nov 2022 04:38:25 -0700 (PDT) Received: from dggpeml500022.china.huawei.com (unknown [172.30.72.55]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4N31wV6FFmz15MKj; Thu, 3 Nov 2022 19:38:18 +0800 (CST) Received: from dggpeml500018.china.huawei.com (7.185.36.186) by dggpeml500022.china.huawei.com (7.185.36.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 3 Nov 2022 19:38:23 +0800 Received: from huawei.com (10.67.174.191) by dggpeml500018.china.huawei.com (7.185.36.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 3 Nov 2022 19:38:23 +0800 From: Zhang Qiao To: , , , , CC: , , , , , , , , Zhang Qiao Subject: [PATCH v2 2/2] sched: Fix sched_child_runs_first Date: Thu, 3 Nov 2022 20:07:20 +0800 Message-ID: <20221103120720.39873-3-zhangqiao22@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221103120720.39873-1-zhangqiao22@huawei.com> References: <20221103120720.39873-1-zhangqiao22@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.191] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpeml500018.china.huawei.com (7.185.36.186) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748476134285615777?= X-GMAIL-MSGID: =?utf-8?q?1748476134285615777?= There are two cases that the sched_child_runs_first maybe not work fine: 1) when call clone3() with CLONE_INTO_CGROUP flags, will creating the child task into a cgroup different from the parent's cgroup, so that child and parent's cfs_rq is diffent. 2) Assign a different cpu to the new task when fork balancing. Above two case, the child and the parent will attach to different cpu and cfs_rq. At this time, we can't swap the child and parent's vruntime, and i think only do swap vruntime when the parent and child in the same cfs_rq. This patch will add the cfs_rq check before swap vruntime. Signed-off-by: Zhang Qiao --- kernel/sched/fair.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 34845d425180..6061ceb1b7cb 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -11612,7 +11612,9 @@ static void task_fork_fair(struct task_struct *p) } place_entity(cfs_rq, se, 1); - if (sysctl_sched_child_runs_first && curr && entity_before(curr, se)) { + if (sysctl_sched_child_runs_first && + cfs_rq == task_cfs_rq(current) && + curr && entity_before(curr, se)) { /* * Upon rescheduling, sched_class::put_prev_task() will place * 'current' within the tree based on its new key value.