Received: by 2002:a05:6500:1b45:b0:1f5:f2ab:c469 with SMTP id cz5csp718491lqb; Wed, 17 Apr 2024 08:51:09 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXjRAiMe9Lu/SbOmcPA5wBZwlt8/rgJiY/gii/SqmsRFxi8LLwTy9IncGmJb1phSgNFxGSGil95x1og9jRgr54okx/HkpE4dG08aSPKeQ== X-Google-Smtp-Source: AGHT+IGEeO7wnA6cwWehEvNO1dShK7DfauS+MfsqBpRu9RkNHLjIsV1WnQp5gL9dPYZ47U9cYOmN X-Received: by 2002:a17:90b:1945:b0:29b:b5a4:c040 with SMTP id nk5-20020a17090b194500b0029bb5a4c040mr12455859pjb.46.1713369069040; Wed, 17 Apr 2024 08:51:09 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713369069; cv=pass; d=google.com; s=arc-20160816; b=a62ZCEdiuf5cf0hkfxAt6415vGEukPQcb2gEW2lCE4AJogC8mlJLGV10O8hqxsIiLD Kt+9KG1qH+Lz3tq0+KRlBg++bstG5BwlfFKy4TchdkMAwEUCiwr+BYRp0IFZIpGsaIjA P3fJEq+7T3jPt+9xf8a0s4tLe4qyRl3uiUBLJuUuIvQomM97SYVcFOta+jRReQWiTrJU Kx58ZctgOrBK0DXxwe6JXRNeb3pZcF52CWkp+YSUlpcPDRdp4LaOsd5GUGth/ptQLA5C c1dq2B5fLlbk7eZoRLdSkP7oZkXn912EhOVriJCvUnUbdfBWBHKHTqKTjVhum/5OOB4e 4pUg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :user-agent:message-id:date:references:in-reply-to:subject:cc:to :from:dkim-signature; bh=aOKo+eCl/oXHennbdRCEZwxJ7TsgtErfOrGVE7Zdnww=; fh=Q/pZN5aiwUNXyTq80PuHgQq+tzfjGLDO4yt31hgYY64=; b=yxKd53lvtYAekVO7iYFfUriVhukCT8pzWJEW+tWejdUFYKYNSUpIRehzJULVgWi5td vznoZU1kQlSo3pCOhFfyw0YxzLy4X4EZClSihXs4mhNKI/+C9x5Q+EqG2B+iUWHcAd3v m13UqsmMpVK0F+Tp2gB0RVvSnLUutX0KTfOlHkfHyeAYPSXxtVjBY23t4soqmfhYaHEK oKvGFXk9He1TnVxl67kz+cUrwXuRRfhu4RqZv1F8g20rVuUU5+vtoqkm24exOtSVRLv2 nXIuGpldpZSljpQ7MQX0wUWaUs8YkLgtAcd/JVK6h2Eti5SHWcIAlUZjUdA08l/+y1zI 7A7w==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=sLrGmXBv; arc=pass (i=1 spf=pass spfdomain=linux.ibm.com dkim=pass dkdomain=ibm.com dmarc=pass fromdomain=linux.ibm.com); spf=pass (google.com: domain of linux-kernel+bounces-148830-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-148830-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id q9-20020a631f49000000b005e858e302cdsi11793913pgm.228.2024.04.17.08.51.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Apr 2024 08:51:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-148830-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=sLrGmXBv; arc=pass (i=1 spf=pass spfdomain=linux.ibm.com dkim=pass dkdomain=ibm.com dmarc=pass fromdomain=linux.ibm.com); spf=pass (google.com: domain of linux-kernel+bounces-148830-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-148830-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 184782873C4 for ; Wed, 17 Apr 2024 15:39:43 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 926D315DBA0; Wed, 17 Apr 2024 15:36:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="sLrGmXBv" Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D63C1E4A8 for ; Wed, 17 Apr 2024 15:36:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713368208; cv=none; b=LfOERtx2O5L0QfivhfSMrENVSqWq2N7xljCbF3A0ucuhbTpZOZT1IaGMUWCMMhfn4OUN93l+N17GF+8z+6H40VU6uiL8JvhXJaBTaeeI8ya3zSPZF/ruMoEepEyqzsqdUzvbx17nHM12SomSzRXoSgGPx7Uk3xKovqYTmz4NEuE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713368208; c=relaxed/simple; bh=owGat6Mu5fO9cWahPM+lcjOAn1FXNYcwqZxx6gKuYf4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=Z8u2m2k6bGTb6weBnDQy9kJ3XyIKqLEcrJ8ylUbPGEEevY257xPuiBH1x5ixsgB2HbgunNYauQA2wKXChjNL8Ybg7v5ZObdSHb3ghpZEQzH1yhWzxWtK9zZqGAwWzzFdyoeIC8dwiMCue9k9gZ63znylE8NXUpwj3zCgcteKGAY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=sLrGmXBv; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 43HFXg1c025547; Wed, 17 Apr 2024 15:36:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type; s=pp1; bh=aOKo+eCl/oXHennbdRCEZwxJ7TsgtErfOrGVE7Zdnww=; b=sLrGmXBvT+EywmaiURHgJDxFgKdrzuiIjar2ahx+/0gOgRHsyuv83zmldkltuD0pqu/8 ps70BH+8Gxn3TNBJeSslq+FSmB1PFa+B7T6Swz8kzsS+PaGLclcVKD1KrzX0ToeWCTDe 7e9fkqpNKTCnNGeCePgSws8g5GF0rLwlP/EuGag47YGltFQ+KN6BTD5uaKXcwM1W0xlW DVdZUc7UmTuLeli7OjC8agCiiFmHfyGBmpfnDZAXIw9nxavAtztTPRPiyWsPdXmrbeMR Sx+mJAwkOfpKh5nEVIrsFiqkdmTEJyzNOi1dyGfgSBJkvkXEdgkYBl2mKQ7TjThyLtWf fQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3xjh5u007f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Apr 2024 15:36:44 +0000 Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 43HFXqAO025675; Wed, 17 Apr 2024 15:36:43 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3xjh5u007e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Apr 2024 15:36:43 +0000 Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 43HFC6oI023575; Wed, 17 Apr 2024 15:36:43 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3xg5cp59df-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Apr 2024 15:36:42 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 43HFadwQ46137848 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Apr 2024 15:36:41 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EDB352004D; Wed, 17 Apr 2024 15:36:38 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D4E932004B; Wed, 17 Apr 2024 15:36:38 +0000 (GMT) Received: from tuxmaker.linux.ibm.com (unknown [9.152.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTPS; Wed, 17 Apr 2024 15:36:38 +0000 (GMT) From: Sven Schnelle To: Tejun Heo Cc: Lai Jiangshan , linux-kernel@vger.kernel.org Subject: Re: [PATCH] workqueue: fix selection of wake_cpu in kick_pool() In-Reply-To: (Tejun Heo's message of "Tue, 16 Apr 2024 13:06:39 -1000") References: <20240415053550.538722-1-svens@linux.ibm.com> Date: Wed, 17 Apr 2024 17:36:38 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-GCONF: 00 X-Proofpoint-GUID: yuziOVqoBL4DFF93nE53pnSgb6LLmQEn X-Proofpoint-ORIG-GUID: VLeRhIIlRvSaVMhAdPvzklHZm-AnIDCS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-04-17_12,2024-04-16_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 priorityscore=1501 bulkscore=0 impostorscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2404010000 definitions=main-2404170107 Tejun Heo writes: > On Mon, Apr 15, 2024 at 07:35:49AM +0200, Sven Schnelle wrote: >> @@ -1277,7 +1277,8 @@ static bool kick_pool(struct worker_pool *pool) >> !cpumask_test_cpu(p->wake_cpu, pool->attrs->__pod_cpumask)) { >> struct work_struct *work = list_first_entry(&pool->worklist, >> struct work_struct, entry); >> - p->wake_cpu = cpumask_any_distribute(pool->attrs->__pod_cpumask); >> + p->wake_cpu = cpumask_any_and_distribute(pool->attrs->__pod_cpumask, >> + cpu_online_mask); > > I think this can still race with the last CPU in the pod going down and > return nr_cpu_ids. Maybe something like the following would be better? > > int wake_cpu; > > wake_cpu = cpumask_any_distribute_and(...); > if (wake_cpu < nr_cpus_ids) { > p->wake_cpu = wake_cpu; > // update stat; > } > > This generally seems like a good idea but isn't this still racy? The CPU may > go down between setting p->wake_cpu and wake_up_process(). Don't know without reading the source, but how does this code normally protect against that? Thanks Sven