From nobody Thu Dec 18 06:21:56 2025 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CD83314A7C for ; Mon, 8 Dec 2025 13:21:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765200070; cv=none; b=YYTyL6hr1CvbpuM2K8MKZKqqRStNwIHqXkoHFPkTYjvpuPD7ETEKPNCbChse/OyPFybvpfum2pF0ZHfyY8g04GeHTZo6M5yN2ZQ3lHVmQkQq/Rfw9d+SKNlZYRY+4im95o2g9WGlCLzNZwg9IaHWcqNP14ChqgiKp5SDzGqEGDQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765200070; c=relaxed/simple; bh=VjiaHCVjBWhIXIbv8c8DEnToCtV+j8nEirbE0s8BcM4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PKZDgNW39luBQvT77NhKJ1fvu3Zd96dP+W4FI6C0B+mOqQMczveW1FJztyXacHodTKRbcUtCo/WGzcI3+l+qPv6sireBHQXw4WRdBwDdIW2lu8xpfkfSR+mpvnUuNveUYPnCFfTRz2dlRBgs1sOt2mALC1LtyYwLhJbmGkog4gI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QHE8/Iov; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QHE8/Iov" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-297d4a56f97so57614575ad.1 for ; Mon, 08 Dec 2025 05:21:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765200068; x=1765804868; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YUV4HKioQdFpR5QHyqo4R5qxpTD1bYmIZjHV8ryhA8Q=; b=QHE8/IovbkNEVRIO3QqRwPq2Ht9N7D5UI8soYGgnW3wkFrZrGf44NWrw2pNyCTk9hC lJ+btX9/64tmePux39yoSc+3TGWD05WVFMgZxQ8B1qsM0sGG96JlJQeUu/3rYW3kA621 Bxxc/5EDqx676dtTXde6pSMbcYkcQ1Lq6peWG8dl6y9apBHapq2IOUMK9WZqTlsNVMc8 C9oge1IyCR/U1Wb2tcTMw5pXGRU4OAQUzFMfM2Ko/UwboUgpzW/G82Ggti4exciojv9N YjKAQ3P1XPdekFl0uJgVTLWvbS0AcFKig4fAEUlW4f4wfpBMAueEQDqU4nEJjKS8s22L fdoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765200068; x=1765804868; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YUV4HKioQdFpR5QHyqo4R5qxpTD1bYmIZjHV8ryhA8Q=; b=DjSxDTpQfGeZjdb0t9xqwluwpFbEN/En/Us6pL6lyTfV/iJvLT1B97O9UgzbMDhz1t plf1ftUfSGhwKJ4IpCu2vnXar85yoQyI7UEqRDsbse1mJhLHEru33UaYUD8g8WSSp00r YmM8KND15sHuwn+1bdL69Wxd7mrYZG7iPRwur+N6/UCU6mneqpG9nbSDrsO0Lrjspd0F khFf0JSBq9k4wx7qeRG9+J6hnWHI5PVMYUm28xuCKCQMEvWMcDiAN5ZaqI4ZSKS4UKI4 F6BEv4TRPgYjIYujyL4kdWBeFelM4l3LBelwMjT5IpkP75qAXYqJiVjam+YgupLtdMiB X0Pw== X-Gm-Message-State: AOJu0YxKNdeDG8ydkRLa9pjj1Ypv6zfQkM0ajUiOaDlCVXfBziO4NAhS PbELh3LVihtSiMh+X1YvXd7U0mpDolJgtLlOF9CXckVu+aSqSYEPrMlLm2xYwvDn X-Gm-Gg: ASbGnct7sjuYauflIkP3gFmMPPCbQ3Klwgkwf7NBGGFCvzoRUEOk3nsYaWAOUGEgyW5 TUj6tR+OqsQW1syrdHLJBzBtcUXe9ugl+yeL3St7pZvuNdTA2wfw8ZZVDxvhpP+lzViy33213fK kGoaR9g83Ptkmzx0I1klytnjLflxorkXyzgglMW0nStVqxeNsKW+jTeUYB1OCUXuCpaf8QK4/OO FK8wkM2ZBjxUF2aT5ZssoLJGv5VM/uVWyq0oUQFPQjX+XUJmyo9SwHpAHkYsK1eu93BiqYE9VGO dn0NbzJYIa42BexHEEasJWon9R2dCTDhcec3fwGN+iAP6FCKeMAk0ZmgdmsZoq3U3vUd1sY84Je KBTah67IZTeGTD0p8hpKkzRb60QtYFbPNmhUL/2JF4t1YA0zyUBu30E74dmVkbwmrRyzNQNNT5S vtq8rCUX5AfwY= X-Google-Smtp-Source: AGHT+IGsVww2agOwCzs8D94jZsr9MljUvJUlhl1rrAEMW7vlu77qNivzqyAMRx2UjqBgZX20tGGTZQ== X-Received: by 2002:a17:903:3bc7:b0:299:d5a5:3f7b with SMTP id d9443c01a7336-29df5e16878mr73574685ad.53.1765200068214; Mon, 08 Dec 2025 05:21:08 -0800 (PST) Received: from localhost ([240b:4000:bb:1700:7b36:494d:5625:5a1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29dae49ca1esm125458975ad.2.2025.12.08.05.21.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 08 Dec 2025 05:21:07 -0800 (PST) From: Lai Jiangshan To: linux-kernel@vger.kernel.org Cc: Tejun Heo , ying chen , Lai Jiangshan , Lai Jiangshan Subject: [PATCH V5 1/3] workqueue: Make send_mayday() take a PWQ argument directly Date: Mon, 8 Dec 2025 21:25:17 +0800 Message-Id: <20251208132520.1667697-2-jiangshanlai@gmail.com> X-Mailer: git-send-email 2.19.1.6.gb485710b In-Reply-To: <20251208132520.1667697-1-jiangshanlai@gmail.com> References: <20251208132520.1667697-1-jiangshanlai@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lai Jiangshan Make send_mayday() operate on a PWQ directly instead of taking a work item, so that rescuer_thread() now calls send_mayday(pwq) instead of open-coding the mayday list manipulation. Signed-off-by: Lai Jiangshan --- kernel/workqueue.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 253311af47c6..f8371aa54dca 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2976,9 +2976,8 @@ static void idle_cull_fn(struct work_struct *work) reap_dying_workers(&cull_list); } =20 -static void send_mayday(struct work_struct *work) +static void send_mayday(struct pool_workqueue *pwq) { - struct pool_workqueue *pwq =3D get_work_pwq(work); struct workqueue_struct *wq =3D pwq->wq; =20 lockdep_assert_held(&wq_mayday_lock); @@ -3016,7 +3015,7 @@ static void pool_mayday_timeout(struct timer_list *t) * rescuers. */ list_for_each_entry(work, &pool->worklist, entry) - send_mayday(work); + send_mayday(get_work_pwq(work)); } =20 raw_spin_unlock(&wq_mayday_lock); @@ -3538,13 +3537,7 @@ static int rescuer_thread(void *__rescuer) */ if (pwq->nr_active && need_to_create_worker(pool)) { raw_spin_lock(&wq_mayday_lock); - /* - * Queue iff somebody else hasn't queued it already. - */ - if (list_empty(&pwq->mayday_node)) { - get_pwq(pwq); - list_add_tail(&pwq->mayday_node, &wq->maydays); - } + send_mayday(pwq); raw_spin_unlock(&wq_mayday_lock); } } --=20 2.19.1.6.gb485710b