Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp5148182iob; Mon, 9 May 2022 09:34:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxETsyvUEueEO8wYUg8i1Uk3IJk+nqIKsdDNOe5f6it3+IFOqLwBKAm1hebMna3l1mF9EzO X-Received: by 2002:a17:90a:a58c:b0:1c9:bc35:6ed9 with SMTP id b12-20020a17090aa58c00b001c9bc356ed9mr18561218pjq.146.1652114067986; Mon, 09 May 2022 09:34:27 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1652114067; cv=pass; d=google.com; s=arc-20160816; b=MUad13DPWjWbWTx9FX56M+mmRrFXI+boITZxgmpy3kn/QOnQAT4O3pVIXeScdtOgrE V7y28qYhmnBfTwV/7bwk8xoJphu+OkLjHYlLGDKgSiF64nSakGQmm6C/1Gk5KqfMwQtU V9ioVNvLcPQ2FVAQL03Xsb17CDP7si9lw0t6YSio6BOo6e9iGC5QdPyLx+VuOI1c/YR6 iA6/CgKRiQiUj256HTuR7LMno+QcRjfSvzQVbEhuGsQGRh0nek+ZGWGwsoMYO/zqymx5 +c/rXlR0+S+x2ojraWegy7GqPIyFiBJElLeDuwKm7yjjIeSIrEL2K5oL4b2yHN9Ja8zN m+vw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-id:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=0uVIhV3JDHjr/UtbdMrTcINgP0CXxC7qMV/QEGEO1tM=; b=ZBajtA0tTDCC8GYsI/Fxir0o8t9Dgxjxzpn2DsNnHystLJRYDaASIPhfclw1S41mMb h7cod3d2QwxuImdObhPLRpnOwqigNdWXdNAFd6UyjugIREMBPV/gnL5P66oZtgW9hrcj AY0uWIOjumpZoZbT6JeLPtta0UAcvM/uA6A8usH61qNPd3g178Bn6sF6+xxX3mO8CSci OSFi0C7PJDaZ0V601DSzLYr7NUMTlpnv+65xftQFQ8oBxsQf5JHeq0ymsJIXY7NHlqCa I7bPs54kmWvUozHMOvQJBvWKsS1pLrEt04T/RkZatZBmEjNY/abQWPKpRyLYhWnMckzj 1fUw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=d4dhsXnV; arc=pass (i=1 spf=pass spfdomain=fb.com dkim=pass dkdomain=fb.com dmarc=pass fromdomain=fb.com); spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=fb.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id e189-20020a6369c6000000b003ab2603395esi13789470pgc.874.2022.05.09.09.34.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 May 2022 09:34:27 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=d4dhsXnV; arc=pass (i=1 spf=pass spfdomain=fb.com dkim=pass dkdomain=fb.com dmarc=pass fromdomain=fb.com); spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=fb.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A6EA7255096; Mon, 9 May 2022 09:28:54 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239058AbiEIQce (ORCPT + 99 others); Mon, 9 May 2022 12:32:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239019AbiEIQcc (ORCPT ); Mon, 9 May 2022 12:32:32 -0400 Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E98572438ED; Mon, 9 May 2022 09:28:36 -0700 (PDT) Received: from pps.filterd (m0109331.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 249EkFnO001627; Mon, 9 May 2022 09:28:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : mime-version; s=facebook; bh=0uVIhV3JDHjr/UtbdMrTcINgP0CXxC7qMV/QEGEO1tM=; b=d4dhsXnVodF2sGp57NV+/qMvd1+6t5sQXlPLLPkEO0DEtjIX1u2xtIfwb4aYPWGazkqL NBL1gywfYlLcs2A+hxI0uAudxGRqTK9mPurQ5SpJu3xdJPjn/QwF4hLWbsRryHNi3QLA zKdIe0o1/eT541K5CxPFPX4pKPtVdY4GjcE= Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2172.outbound.protection.outlook.com [104.47.59.172]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3fwpkshkr6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 May 2022 09:28:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WAKsLnGsz61IQtmLYby1Kp7Eo14JtE+ltHg7usL2cX9QMcMdiuaP4IV1j8MKWG7qOYFjhqgwne8IgEbBroFaQ3Ey3U9oiLNiREfBiQ+04vrU+PHFlFE4V/n0jyMQ+hwLwOq52jK2neZIL4uP+HjhWLbLqeAgbaXrhHG3Ao/J12ArNZMrt8apjJT8zEON8Z+9WarRzsfL+zP6yHBJOv3dEsy6iu2WgASLpMhwKJogYIFjw2Js0lgxD+82MZk4KVIJZWDsValdWbLpksyS5Y30PI7z3IWx81UJMbWRb35SHfFKDtTmN7SCt+v+E4RPH21UTxa52BCPs0s9uPMW9pLvlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0uVIhV3JDHjr/UtbdMrTcINgP0CXxC7qMV/QEGEO1tM=; b=hIoGzEjpm6vdeCrPnhtfbcDippgN1EIljLuaYnk9/I4jciYEE5XZ5X86sghCwX05xU+LzwNsErWzadjygwRigXoF54SKVZcOuBa4piRTn2IUP/V7ar2+o0GV82fDYduVE1emRpqIf5GF4RjB/66DHiszdFutUSAX5A625lCuAIXxV6olvBYymQLz2Jz2PZImaHexAgfnO2Q7h+7toAiOiP4eeOifiPziZ/HC1tLnH+6a87NzkGa5QpWX7JQesUVrOZ0AVl5grZvzyHwv3lt/MaWG2TEaTahsRy4bNgAJmWIdg4Los0sXSUOwRqfoAj1pHYiL6jDW1kxuq6KZlQZ0Lg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none Received: from SA1PR15MB5109.namprd15.prod.outlook.com (2603:10b6:806:1dc::10) by DM6PR15MB2764.namprd15.prod.outlook.com (2603:10b6:5:1ae::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Mon, 9 May 2022 16:28:33 +0000 Received: from SA1PR15MB5109.namprd15.prod.outlook.com ([fe80::3061:40ff:2ad:33aa]) by SA1PR15MB5109.namprd15.prod.outlook.com ([fe80::3061:40ff:2ad:33aa%4]) with mapi id 15.20.5227.023; Mon, 9 May 2022 16:28:33 +0000 From: Song Liu To: Rik van Riel , Petr Mladek CC: Song Liu , Linux Kernel Mailing List , "live-patching@vger.kernel.org" , Ingo Molnar , Peter Zijlstra , "vincent.guittot@linaro.org" , Josh Poimboeuf , "joe.lawrence@redhat.com" , Kernel Team Subject: Re: [RFC] sched,livepatch: call stop_one_cpu in klp_check_and_switch_task Thread-Topic: [RFC] sched,livepatch: call stop_one_cpu in klp_check_and_switch_task Thread-Index: AQHYY7zTSXNMQhssp0imSrtNeUcDwa0WvCqA Date: Mon, 9 May 2022 16:28:33 +0000 Message-ID: References: <20220507174628.2086373-1-song@kernel.org> <20220509115227.6075105e@imladris.surriel.com> In-Reply-To: <20220509115227.6075105e@imladris.surriel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.80.82.1.1) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 08bfa2f1-4f95-45e9-481d-08da31d8f5b4 x-ms-traffictypediagnostic: DM6PR15MB2764:EE_ x-microsoft-antispam-prvs: x-fb-source: Internal x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WLGv1p3sNFqyhELe8Od0C9vd3RTffx9PFHVY/EX2GQXRnsUNEAUJUzk68T77BqxVZUJ3PfzXyO+1i4QyQ3Nqei2zCd2vI3tYDXHxAkR36qP3nisG+pnBv6HkohpckklvwPvhV6q4IW5qJAwgGPMAc3LadnfvcG9ay2Y3EmHDl4VoNo1d552OHTcP6NH0QZoCMu8Gz97ccB5BVSnbByK0ZoST2r6kDvBfDo070fKOoYzVRh9T5LTELNkK757UaWpSrXiEpRWHL64jUqOYLYkfhDuX1wzNyZtF/aYBXWk05J6D6HlaU/d+nfHnFKA+G8A+wshaCFiiBwjBf6EzpIfY8YX/rvVODlHbScTNDK8M+mM/Rueh4qqOqmNjr3nb6rSZNhFhi2sCQ+3AvkJOldtQ4guej/ysqrL7m+TWxZ+VjTCL9mTjEpht0a1ROtZCytxb3zJ3cB0vypKVG3dW/JcYbM2+AKm0jGxTOxCj1P+f37fFshNXKpl2cnBN9qr8xRntfStn2QLQ9jFUILFPqCn+/P+WNQMOH5+pVuqlKIG5JSCCNKMhnrOSi/Cd0Yn82tiy+i0aND8ouOsC6kjqcVaRvH6dClmLKgobblXDXFKwybSMhL/IAnEJqQrh9eP7thrElXqxhyRVkw7zyZGGdUTJ+tx33OrWLrnt8eHBVcZjlkvjRHfyy1jyKX0T23SNi6SC3sD7ChbvlrZJbrRqpas87x9ov6ai+ifhC3IPvOIG6/P2pqGHTp97yMicfPaYB65Y x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR15MB5109.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(7416002)(36756003)(2906002)(8936002)(122000001)(38070700005)(38100700002)(5660300002)(186003)(4326008)(83380400001)(33656002)(508600001)(66556008)(66446008)(66946007)(66476007)(76116006)(91956017)(64756008)(2616005)(8676002)(54906003)(316002)(6506007)(53546011)(110136005)(6512007)(6486002)(86362001)(71200400001)(45980500001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?RvP+BS1nL4++i11WOB7US+LE6mQv9KcXVc0TnVYs+7LNCQpQUQ0RZYLw+JzA?= =?us-ascii?Q?2jBDO5Bvt++j1TvwYlB7q6ZUB+VSOSMGh9ewTWzQDZwiJ9qn5L68wD0exUJ3?= =?us-ascii?Q?aY2o/W9YIYONVAsAGDZQVaqK222SarknRmEK5l4LuymTA+xDYgNjQA6MJRmt?= =?us-ascii?Q?NMKrMnFiru26F1DLiBoGZ6O5HeYObsPRGhAYoqd6PmnsNRr/+xCH1S8ydlld?= =?us-ascii?Q?4RChjW6HZxBYq3IgOKWPSWa3AcFMSrbbErJ4e83TxaoO21nHPwfUugR5SCna?= =?us-ascii?Q?DNv1KzaMC/aBe48V1gzOO8YbLCj8S5+HK5g4U9fEJl1opO5sFiKuO4Url1t5?= =?us-ascii?Q?EshjHZROcU0des78/uI/voNbik+re4irI1tgSve0LYisf8PgiE9hqz1m4psk?= =?us-ascii?Q?lBSU/q6LjKNthvETsvZOHaqjgX53IbmZh/1fkH53emcmqpB/jn/96/nfA1CZ?= =?us-ascii?Q?Z1zFAtZWCOHqYrjHqKMM7qIi4NXFR9wOIx60HIVRHEq1EzUtFsSzjBsY16bT?= =?us-ascii?Q?Ppu2XEiQFqHLc5AzbNzLlNwAG6sN+kywn7ou/ZYfmAAWyERvhd82QJWJvYYk?= =?us-ascii?Q?KWWjOQmcwz/1rYoNa8CBQ6KWst6msZeKeDw7f3eZkmEPPQYqG3hwxd6t9jKA?= =?us-ascii?Q?foqdtYUJ3nRPlvSQtYm/zkhrBj1wzchsURZKQOSKa3k5mrmvaXS3eYy0ikfY?= =?us-ascii?Q?tjNdlwPgM7quoG23G7CrOB8C81mNeSUr0oNXy21NXjyqvT1VWbq34BH1nel5?= =?us-ascii?Q?65tNmnhqdVavUW937vB1JdzLFbEo3n6yiJG3g63RJTqZJW2yVUnQsR/+bkMu?= =?us-ascii?Q?i88yum7LOl5H6ZU+XWUdO8MX4xVgyGl6ESuHJXTcr9mLKKM3nr2339i6LlOJ?= =?us-ascii?Q?mLGLOSGR8xzlNxhvdpOFH22CeHQ2fhbwVISdrIRX4L59rBFQB56gD0ghf+Qs?= =?us-ascii?Q?FYaDe89NbPJCu6hcgUOV+Hf8WJdrunulf+yWwFcjDt7o4LA3myYJeeUIHKRf?= =?us-ascii?Q?qblhhXP02WT0IAsZmbY10RBXLwQuHigaRX7pRAtOL4ZJQkocu9EyG13oWnzt?= =?us-ascii?Q?l6VwA4jTEzF9cCXPTvpNj+jo1MP2j1vzID14pgbJBRMPc4RrrAK/CU/MCzCD?= =?us-ascii?Q?iVIjLuBqWbd30vWaCOJkYSDZtPL/Ci59ivZk3KF26JWA+18G3U9DnQJHqM1q?= =?us-ascii?Q?G73O7FoRNu/w+pRLwHf3UqvtMG1UDDtX9JeL3VcQCDXUUT4lH249VAg1HwYQ?= =?us-ascii?Q?WuQ0zKW5ExsZH83/QXZ2y71xg4mFRJj6mfRWkW9EfajhbJsgQQLVmgW5eJh0?= =?us-ascii?Q?zqly2nw6Xf05+Ht3enxGlcccQoAgjnpX0OBz40zFEf0CRvRkOkFHNP2+Lkie?= =?us-ascii?Q?H5brEf7NdS3od6V/Vb+LK9MOvrCI5ofNxqtV/XRvW/uzvgYZ5jEuwZWgFhiH?= =?us-ascii?Q?cqyJK1YMFlt7Cm/3Q5iKjfiiUek7t1EuZPQwBwYkkkcefJwZb0k4ztEII64R?= =?us-ascii?Q?nOHOSN+ZYeS31kHSZUC8PQ2eCttGdAhP/pRCe8NEl6/fa7Aq4D8dP5S5mJmT?= =?us-ascii?Q?czwF2gClCq4Zyw105k3KSzUQBwf2+g7caW5DlYfQc0Dx0g7e871O4gpKUCme?= =?us-ascii?Q?EBBF2K05QTOWLSbdXO4kjSqex1RtrggKzQ0btopt5BVF9i/sJF4QFqnqCXX3?= =?us-ascii?Q?mFT0zcF5qqCLi+HG+/vU1uWDIf69agTlJxlOMX7tYdsbtTToOFfCTP6+UnJs?= =?us-ascii?Q?9SnNajJpuc8G32qwER/RJ8zv3s7tvllCguXyighzbV3tddTv3Gy6?= Content-Type: text/plain; charset="us-ascii" Content-ID: MIME-Version: 1.0 X-OriginatorOrg: fb.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR15MB5109.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08bfa2f1-4f95-45e9-481d-08da31d8f5b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2022 16:28:33.0806 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oJux6rQCe7Jx2OUYv61K6DgZCch7FUw5rQ6Na5lecgjA/yIPUcfkaP2hiflKYmpu2LLCRA8Ku+Eubt28zT0enQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR15MB2764 X-Proofpoint-GUID: x4v0Ib7lhg8fc462-nDMdDOfjjOtZEfc X-Proofpoint-ORIG-GUID: x4v0Ib7lhg8fc462-nDMdDOfjjOtZEfc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-09_05,2022-05-09_02,2022-02-23_01 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 > On May 9, 2022, at 8:52 AM, Rik van Riel wrote: > > After talking with Peter, this seems like it might be a potential approach > to fix the issue for kernels both with PREEMPT enabled and disabled. > > If this looks like a reasonable approach to people, we can run experiments > with this patch on a few thousand systems, and compare it with the kernel > live patch transition latencies (and number of failures) on a kernel without > that patch. > > Does this look like an approach that could work? Hi Petr, IIUC, this is similar to you proposal. Could you please share your thoughts on this? Thanks, Song > > ---8<--- > sched,livepatch: call stop_one_cpu in klp_check_and_switch_task > > If a running task fails to transition to the new kernel live patch after the > first attempt, use the stopper thread to preempt it during subsequent attempts > at switching to the new kernel live patch. > > > > Signed-off-by: Rik van Riel > > diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c > index 5d03a2ad1066..26e9e5f09822 100644 > --- a/kernel/livepatch/transition.c > +++ b/kernel/livepatch/transition.c > @@ -9,6 +9,7 @@ > > #include > #include > +#include > #include "core.h" > #include "patch.h" > #include "transition.h" > @@ -281,6 +282,11 @@ static int klp_check_and_switch_task(struct task_struct *task, void *arg) > return 0; > } > > +static int kpatch_dummy_fn(void *dummy) > +{ > + return 0; > +} > + > /* > * Try to safely switch a task to the target patch state. If it's currently > * running, or it's sleeping on a to-be-patched or to-be-unpatched function, or > @@ -315,6 +321,9 @@ static bool klp_try_switch_task(struct task_struct *task) > case -EBUSY: /* klp_check_and_switch_task() */ > pr_debug("%s: %s:%d is running\n", > __func__, task->comm, task->pid); > + /* Preempt the task from the second KLP switch attempt. */ > + if (klp_signals_cnt) > + stop_one_cpu(task_cpu(task), kpatch_dummy_fn, NULL); > break; > case -EINVAL: /* klp_check_and_switch_task() */ > pr_debug("%s: %s:%d has an unreliable stack\n", >