Received: by 2002:a05:7412:bbc7:b0:fc:a2b0:25d7 with SMTP id kh7csp2662607rdb; Mon, 5 Feb 2024 13:36:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IGFnrEtYjGIUPEPBQd7ZDEfO2yftPbiZvMmD6OZJGzpgvQzx7u93B5vrkOcWnPCK3LIh4/K X-Received: by 2002:a05:6a20:9595:b0:19e:982e:c3f3 with SMTP id iu21-20020a056a20959500b0019e982ec3f3mr586361pzb.51.1707168986938; Mon, 05 Feb 2024 13:36:26 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707168986; cv=pass; d=google.com; s=arc-20160816; b=gIZFjw8O1EeA0g0wq+Z7PuDT0R7Bxpal7Rr1Pq57isu/H2wkwa4CJrGmlsFTXg9xyQ 0v002BBnhGzAf3DmST4SqNzkdYHJO1Xp6WEWO6avvIDYi16e7+QHoT9CJ7lCh1AZeZx0 ZU8+Y/Rgqjk29/R4tYk2tz8ViBetzNiw2Hr7J52PnOH0rw1mMbB0gpunD6mg/ft7OQoB d0GrKWFTmSZMg5sNFyK87qgFHZXOIB/7qI0zwp0SSlPN910T9MNbklemgXQhrBoogxkE L5vHMItpIxAK0B+VC0E4jjVz3LEY7h/1Yz5NDaKWMcxm710sXwscxEdfNDUa8WOqIQT9 rg6Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=2wAq9zuBQRCHAAv9+2rXsge637bX5qI7IyvgEpLY8sU=; fh=ahWEsnL1nIRTtdnRs+dVLIJPZHhjv2HrcCOO0+e/kGs=; b=pDa4o+xZqpjfIdHnbUQVQnP9vWVq/DB4w1rZVT94xJAniaLtAts81FsyaoZVyBO5tX MNHvMK+ffWhEzlEj7pSFyFNigkOCkFzNgJUxfvlhRCjggDc/o1XWBBS+hpXid+rqM3sj l2Y8LsrCdpkyEOea8iA/39yCneiqd2AFx4+ToA8PhL9xHA9CMuFFEhkBvIHjdjfJ64Xi 9ip1R1k0oHZ0/RmhuxMskY6+7TnJvaJPmH1G3g0qlcv0B8CJzAXRX+Wik1StOFDL8uVT Z9PfaBkqox2QyXtegJ7DWJJCtTfEHPXfVyKHpuz55aQivsG3a0GvaMVyyKPW8y0jnxiQ RSjQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=RjhfQK0N; arc=pass (i=1 spf=pass spfdomain=redhat.com dkim=pass dkdomain=redhat.com dmarc=pass fromdomain=redhat.com); spf=pass (google.com: domain of linux-kernel+bounces-53860-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-53860-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com X-Forwarded-Encrypted: i=1; AJvYcCV4E0LS7o7AC0XM0rdpGuiZXIuZh2uzFPfn9M9MpUY7CKsR4XtURbIxt4u0A35bX7MyDR8FF4BG5DCLER1OY51PsF8w391GPpMw4/q8Fw== Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id a36-20020a631a24000000b005cf8b7a0629si463856pga.663.2024.02.05.13.36.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Feb 2024 13:36:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-53860-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=RjhfQK0N; arc=pass (i=1 spf=pass spfdomain=redhat.com dkim=pass dkdomain=redhat.com dmarc=pass fromdomain=redhat.com); spf=pass (google.com: domain of linux-kernel+bounces-53860-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-53860-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.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 1ABEF28C165 for ; Mon, 5 Feb 2024 21:29:50 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2FE707F460; Mon, 5 Feb 2024 19:46:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="RjhfQK0N" Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (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 D825E7E585 for ; Mon, 5 Feb 2024 19:46:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707162402; cv=none; b=KnHPXdsHxwQOVzUqo4DRC8zsGDEv45utvV10ePP5LEQ1sBswFKEfO2Bo1Xq4BupfhieZOMTq/GPKgbKlg8Z95+Kpu7mIyQf7ub8YaWpJ0TAa+sguVk7wjvspk0tZIYmt7xedsWdeBZj4yr+HXiKsjOcHNP3CON1p7udl8tF15l4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707162402; c=relaxed/simple; bh=a/l7dIHL4lD27xI3QHJBmm7xg9IPaYq194T/QUkU0vk=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=RsDyGTd2wjOOcGKki5YZAT+fpAuo+fXXb10G6+B/zEAb1lUM1AKCnzfuv1IJKbAVrZCJa7DNKUUdyU+JTQok6SupiGwPvSK98NYkOwCZIJ/Q+GW/KkRz96kWRR+DyAoIr9Fgc66hBgo9D4AmSiCrKw0KVfIlwflgEAiz0YcJuuQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=RjhfQK0N; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1707162399; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=2wAq9zuBQRCHAAv9+2rXsge637bX5qI7IyvgEpLY8sU=; b=RjhfQK0NrmjjFaeBH1FqtiqoDqW4LUi0IlUeFBvMcIi34fR7KV8d9FVpZN7UafR2zmj1tH QyQGxbjPNG+izPzoT0l2pVgsRAnODK2HUBhUbxDP8InrSgwD44pD2ZoN6RX0l7i0tIKCgV cHL6laUhlE4TisGNqjL2x7BjgXH4rAc= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-621-iAC3FgjmOWyn7ePocsI6QA-1; Mon, 05 Feb 2024 14:46:35 -0500 X-MC-Unique: iAC3FgjmOWyn7ePocsI6QA-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 61863800074; Mon, 5 Feb 2024 19:46:35 +0000 (UTC) Received: from llong.com (unknown [10.22.17.212]) by smtp.corp.redhat.com (Postfix) with ESMTP id D0DA11C060AF; Mon, 5 Feb 2024 19:46:34 +0000 (UTC) From: Waiman Long To: Tejun Heo , Lai Jiangshan Cc: linux-kernel@vger.kernel.org, Juri Lelli , Cestmir Kalina , Alex Gladkov , Phil Auld , Costa Shulyupin , Waiman Long Subject: [PATCH-wq v3 0/4] workqueue: Enable unbound cpumask update on ordered workqueues Date: Mon, 5 Feb 2024 14:45:58 -0500 Message-Id: <20240205194602.871505-1-longman@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 v3: - [v2] https://lore.kernel.org/lkml/20240203154334.791910-1-longman@redhat.com/ - Drop patch 1 as it has been merged into the for-6.9 branch. - Use rcu_access_pointer() to access wq->dfl_pwq. - Use RCU protection instead of acquiring wq->mutex in apply_wqattrs_cleanup(). v2: - [v1] https://lore.kernel.org/all/20240130183336.511948-1-longman@redhat.com/ - Rebased on top of wq's for-v6.9 branch. - Use the new pwq_tryinc_nr_active() mechanism to freeze the new pwq of an ordered workqueue until the old pwq has been properly drained to maintain ordering. - Make rescuer follow changes in workqueue unbound cpumask as well as its sysfs cpumask, if available. Ordered workqueues does not currently follow changes made to the global unbound cpumask because per-pool workqueue changes may break the ordering guarantee. IOW, a work function in an ordered workqueue may run on a cpuset isolated CPU. This series enables ordered workqueues to follow changes made to the global unbound cpumask by temporaily freeze the newly allocated pool_workqueue by using the new frozen flag to freeze execution of newly queued work items until the old pwq has been properly flushed. The cpumask of the rescuer task of each workqueue is also made to follow changes in workqueue unbound cpumask as well as its sysfs cpumask, if available. Juri Lelli (1): kernel/workqueue: Let rescuers follow unbound wq cpumask changes Waiman Long (3): workqueue: Enable unbound cpumask update on ordered workqueues workqueue: Thaw frozen pwq in workqueue_apply_unbound_cpumask() workqueue: Bind unbound workqueue rescuer to wq_unbound_cpumask kernel/workqueue.c | 127 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 113 insertions(+), 14 deletions(-) -- 2.39.3