Received: by 10.223.185.116 with SMTP id b49csp1084240wrg; Sat, 3 Mar 2018 15:06:30 -0800 (PST) X-Google-Smtp-Source: AG47ELvFngVF7EiiFh9UpgdYB6pj+DE41UzVac7OOoKjusw0HH+2F7UDkqSWChDF7DJAiIEMfX81 X-Received: by 10.98.160.142 with SMTP id p14mr10480750pfl.134.1520118390263; Sat, 03 Mar 2018 15:06:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520118390; cv=none; d=google.com; s=arc-20160816; b=ppIVDYafxxnwarO+s/f581hmvTW/6A5V9XnbAvSqJGmVdj77/hlWFKCn4hA6tYmy3G YR9vF2naOEKNKdscb1ghcA1VoPvGk/HqrhRJdBIzgLEHr3XOL6wM4eRJexoMhsKxAYzC uS3TU2Ux6OXUB0P4leP8Ohfsc2NDYhlULTjLzW3fbbgHAoZezgP/izmnqgNSqg/fJ8Zr 2K/Tb5m2fZIk7+tHPuVll7McAzqArenLyayCByMlBEwrxcoldv2KId2eQ2yfscGcsizH ngv6TEGmuzfR+OPFdb0WklxABgR8M6CbSCuCX4JsBPodvh/q4W8uCyyi9sEeEjo1pGZr r+7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=stXwDWS/PYMhZL/JM3yvYSf8IFksztfzqoISJEoObZ4=; b=E92FyrYhRHvokremG/CuCCyMMlHD2hub7fbSW7TMP8HSGDFIeU1SIxk44mkYpmE65w 31DXHSPR3Hj3+e4neYda6oiOHza2QKAUuFqCitGfBZuZtOPYCj7GFksHBypgpbc9itve xDcAS92LE2UQv44z4PM96LCmb6bGfW+YhdeOcY3aM6HZR52ffDOjDlAoJGiw0KnPcYO9 asyxgMZQWn7PkM9WJ0QZxfo12fIQIkxIuWUWUm9o2G4YASJK6JvpTF3mSUvZ65+eQF72 DMMPz7wyGxz8v27pwCNWKe6zXvaRH37qGOe0bpAOFnmpnMxHxYsaTUHe9SO4qI65YzOK Y+4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=XYzhsHyC; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s9si6144004pgr.617.2018.03.03.15.06.15; Sat, 03 Mar 2018 15:06:30 -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; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=XYzhsHyC; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934815AbeCCXEC (ORCPT + 99 others); Sat, 3 Mar 2018 18:04:02 -0500 Received: from mail-bl2nam02on0118.outbound.protection.outlook.com ([104.47.38.118]:13952 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935152AbeCCWkP (ORCPT ); Sat, 3 Mar 2018 17:40:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=stXwDWS/PYMhZL/JM3yvYSf8IFksztfzqoISJEoObZ4=; b=XYzhsHyCJGLXL9p66hO97BwTCRwS6x+eDcpsjgpd2RA0xKA3lXw5N/PyEvZExy15mPXp1xjABF4tejpZnZ4GZuilQnwy3/AVLAQF/yD7OCJSyezrHtbZyvZyEA7sv+Zf36Ta1QP1hk5E+qTu4l6MxjzizsCFWhlrEeekmpSFxf8= Received: from MW2PR2101MB1034.namprd21.prod.outlook.com (52.132.149.10) by MW2PR2101MB0939.namprd21.prod.outlook.com (52.132.146.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.567.5; Sat, 3 Mar 2018 22:40:11 +0000 Received: from MW2PR2101MB1034.namprd21.prod.outlook.com ([fe80::1d56:338f:e2b:cec0]) by MW2PR2101MB1034.namprd21.prod.outlook.com ([fe80::1d56:338f:e2b:cec0%3]) with mapi id 15.20.0567.006; Sat, 3 Mar 2018 22:40:11 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: "Paul E. McKenney" , Ingo Molnar , Peter Zijlstra , Sasha Levin Subject: [PATCH AUTOSEL for 4.4 088/115] sched: Stop switched_to_rt() from sending IPIs to offline CPUs Thread-Topic: [PATCH AUTOSEL for 4.4 088/115] sched: Stop switched_to_rt() from sending IPIs to offline CPUs Thread-Index: AQHTsz9nwI0tf5Sm9kusF+ZCMUbtKg== Date: Sat, 3 Mar 2018 22:31:42 +0000 Message-ID: <20180303223010.27106-88-alexander.levin@microsoft.com> References: <20180303223010.27106-1-alexander.levin@microsoft.com> In-Reply-To: <20180303223010.27106-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MW2PR2101MB0939;7:RB0k24yxZZVRfMRbIg4tmnQwirv3M/Op//9tfTkGLEMGVL1+bxfEFHGZzaYGuz1fxYpUzNLJcd73G6rrTcIucMAn8TWfAeT3tEM7X9qg+ew+uH5ZrJo+uAuwNAOLSeNQ9cbzEDUMu0N6+X4xLEQ6QEzf8H/hVaHukniBPxfO2VTGA054jFEwJmdz8QofNpT4G1OSwReAU0mVvA0UflFJuL4KAPbGbG4NjQw70t3DrK3GZXxQgwT/Wz9R2NEfBhYM x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 8b66807d-a78b-46df-9efc-08d58157b94d x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7193020);SRVR:MW2PR2101MB0939; x-ms-traffictypediagnostic: MW2PR2101MB0939: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(104084551191319); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040501)(2401047)(8121501046)(5005006)(3231220)(944501244)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(61426038)(61427038)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011);SRVR:MW2PR2101MB0939;BCL:0;PCL:0;RULEID:;SRVR:MW2PR2101MB0939; x-forefront-prvs: 0600F93FE1 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(346002)(366004)(376002)(39380400002)(39860400002)(189003)(199004)(86612001)(76176011)(478600001)(81166006)(81156014)(72206003)(5660300001)(8936002)(25786009)(59450400001)(26005)(6506007)(102836004)(316002)(22452003)(6486002)(8676002)(14454004)(4326008)(6436002)(107886003)(10090500001)(6512007)(53936002)(36756003)(10290500003)(86362001)(575784001)(2900100001)(3660700001)(305945005)(2950100002)(5250100002)(99286004)(3280700002)(97736004)(54906003)(110136005)(6666003)(2501003)(186003)(106356001)(7736002)(66066001)(3846002)(2906002)(6116002)(105586002)(68736007)(1076002)(22906009)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:MW2PR2101MB0939;H:MW2PR2101MB1034.namprd21.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: cOZCb9Y9CrZuAT5oDJ7o0zrljS9MIRs8gpCSTI8LWmzLr5/nRkeNZdFNmOH1XqLkvlOl1VPZDcORzjiNRztu/QdQG6pYclJCFvVv+hZgfMUR6J4PbvRvebdyGQKtOTaVbzEfGpDlB3HwFYyAoetyumBW1j7jCNty3ei3BwsAjII= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b66807d-a78b-46df-9efc-08d58157b94d X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2018 22:31:42.3708 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB0939 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Paul E. McKenney" [ Upstream commit 2fe2582649aa2355f79acddb86bd4d6c5363eb63 ] The rcutorture test suite occasionally provokes a splat due to invoking rt_mutex_lock() which needs to boost the priority of a task currently sitting on a runqueue that belongs to an offline CPU: WARNING: CPU: 0 PID: 12 at /home/paulmck/public_git/linux-rcu/arch/x86/kern= el/smp.c:128 native_smp_send_reschedule+0x37/0x40 Modules linked in: CPU: 0 PID: 12 Comm: rcub/7 Not tainted 4.14.0-rc4+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1u= buntu1 04/01/2014 task: ffff9ed3de5f8cc0 task.stack: ffffbbf80012c000 RIP: 0010:native_smp_send_reschedule+0x37/0x40 RSP: 0018:ffffbbf80012fd10 EFLAGS: 00010082 RAX: 000000000000002f RBX: ffff9ed3dd9cb300 RCX: 0000000000000004 RDX: 0000000080000004 RSI: 0000000000000086 RDI: 00000000ffffffff RBP: ffffbbf80012fd10 R08: 000000000009da7a R09: 0000000000007b9d R10: 0000000000000001 R11: ffffffffbb57c2cd R12: 000000000000000d R13: ffff9ed3de5f8cc0 R14: 0000000000000061 R15: ffff9ed3ded59200 FS: 0000000000000000(0000) GS:ffff9ed3dea00000(0000) knlGS:000000000000000= 0 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000080686f0 CR3: 000000001b9e0000 CR4: 00000000000006f0 Call Trace: resched_curr+0x61/0xd0 switched_to_rt+0x8f/0xa0 rt_mutex_setprio+0x25c/0x410 task_blocks_on_rt_mutex+0x1b3/0x1f0 rt_mutex_slowlock+0xa9/0x1e0 rt_mutex_lock+0x29/0x30 rcu_boost_kthread+0x127/0x3c0 kthread+0x104/0x140 ? rcu_report_unblock_qs_rnp+0x90/0x90 ? kthread_create_on_node+0x40/0x40 ret_from_fork+0x22/0x30 Code: f0 00 0f 92 c0 84 c0 74 14 48 8b 05 34 74 c5 00 be fd 00 00 00 ff 90 = a0 00 00 00 5d c3 89 fe 48 c7 c7 a0 c6 fc b9 e8 d5 b5 06 00 <0f> ff 5d c3 0= f 1f 44 00 00 8b 05 a2 d1 13 02 85 c0 75 38 55 48 But the target task's priority has already been adjusted, so the only purpose of switched_to_rt() invoking resched_curr() is to wake up the CPU running some task that needs to be preempted by the boosted task. But the CPU is offline, which presumably means that the task must be migrated to some other CPU, and that this other CPU will undertake any needed preemption at the time of migration. Because the runqueue lock is held when resched_curr() is invoked, we know that the boosted task cannot go anywhere, so it is not necessary to invoke resched_curr() in this particular case. This commit therefore makes switched_to_rt() refrain from invoking resched_curr() when the target CPU is offline. Signed-off-by: Paul E. McKenney Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Sasha Levin --- kernel/sched/rt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index e0b5169aeac4..2ef31c93e195 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2144,7 +2144,7 @@ static void switched_to_rt(struct rq *rq, struct task= _struct *p) if (p->nr_cpus_allowed > 1 && rq->rt.overloaded) queue_push_tasks(rq); #endif /* CONFIG_SMP */ - if (p->prio < rq->curr->prio) + if (p->prio < rq->curr->prio && cpu_online(cpu_of(rq))) resched_curr(rq); } } --=20 2.14.1