From nobody Wed Feb 11 05:40:59 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 4352419DF4F for ; Mon, 9 Feb 2026 02:20:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770603606; cv=none; b=Y0Y4Td0Ri4uAqrrRdry+2qK/GvU6ESCVafOi5afcazDRYJybcAobOHxjcPnKkGQ0fCkj3R+C86fXokhpPxEc/pSK+hYXa7v+kaxWQoapIyLQqepMb16H99X+1ePXNTNQrCDPVzYr7P981GzBelQO0vXSTSUgGcQuQ2O6sznw32w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770603606; c=relaxed/simple; bh=AWEaG16o84JaXpRCpDBz6Nkc1K2OnEIu8E2ZHVN4rRU=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=ngLdzrJH19sn3823dTZtDwu7ZyLJCyWEHYlEvHmyk6z/YlW5a5YDhVTNrfHkxWGJnSlNTE5kCidPY8Dj/36ZCaSANMEG6LTv4WQY6YyqXAIuINit0sw9n6GvK0GAlT/OZ8fH690mw5VAecOz0AHfZ7Q1DsPNIlEz6Orr+4yw5kE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Qd+j/hsf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Qd+j/hsf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 114CEC16AAE; Mon, 9 Feb 2026 02:20:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770603606; bh=AWEaG16o84JaXpRCpDBz6Nkc1K2OnEIu8E2ZHVN4rRU=; h=Date:From:To:Cc:Subject:References:From; b=Qd+j/hsf09Cl85qUYSOG6bfz1Fxg9kk54LJ3l/i6FiPWOewLbeVSIelvG7vyXlwRm 6G8VBxrkAb5BmQKo+8xXIKIQpZqy/bpmdIYTm4GWm97MqWjxr0GvOhLoOMzkNEfu64 tSZ0QEVxF1fSbNHIyjjf4bAVQGRDew6wV8mwb18xo7XlR9aBgl0Z0eCIS6Wq5cFG6e wDJxXH42urt/eIFhcysSiEf/O2nN+8pLQ597v5+YiWVJoMLeE2CLDtR6YWCTjYT2oE MHafJUFoBQMbLrAf3HNisf81FBUMPyvrEMjpN2LyweXIeXVwhlR2VKN/G8o3lMRBlc EXR9PuTEO8CYg== Received: from rostedt by gandalf with local (Exim 4.99.1) (envelope-from ) id 1vpGtQ-0000000Aa0v-29WF; Sun, 08 Feb 2026 21:20:52 -0500 Message-ID: <20260209022052.364650128@kernel.org> User-Agent: quilt/0.68 Date: Sun, 08 Feb 2026 21:20:28 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Yaxiong Tian Subject: [for-next][PATCH 02/20] tracing: Rename `eval_map_wq` and allow other parts of tracing use it References: <20260209022026.627895421@kernel.org> 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: Yaxiong Tian The eval_map_work_func() function, though queued in eval_map_wq, holds the trace_event_sem read-write lock for a long time during kernel boot. This causes blocking issues for other functions. Rename eval_map_wq to trace_init_wq and make it global, thereby allowing other parts of tracing to schedule work on this queue asynchronously and avoiding blockage of the main boot thread. Link: https://patch.msgid.link/20260204015344.162818-1-tianyaxiong@kylinos.= cn Suggested-by: Steven Rostedt Acked-by: Masami Hiramatsu (Google) Signed-off-by: Yaxiong Tian Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 18 +++++++++--------- kernel/trace/trace.h | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 396d59202438..8c0f3cfd196b 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -10785,7 +10785,7 @@ int tracing_init_dentry(void) extern struct trace_eval_map *__start_ftrace_eval_maps[]; extern struct trace_eval_map *__stop_ftrace_eval_maps[]; =20 -static struct workqueue_struct *eval_map_wq __initdata; +struct workqueue_struct *trace_init_wq __initdata; static struct work_struct eval_map_work __initdata; static struct work_struct tracerfs_init_work __initdata; =20 @@ -10801,15 +10801,15 @@ static int __init trace_eval_init(void) { INIT_WORK(&eval_map_work, eval_map_work_func); =20 - eval_map_wq =3D alloc_workqueue("eval_map_wq", WQ_UNBOUND, 0); - if (!eval_map_wq) { - pr_err("Unable to allocate eval_map_wq\n"); + trace_init_wq =3D alloc_workqueue("trace_init_wq", WQ_UNBOUND, 0); + if (!trace_init_wq) { + pr_err("Unable to allocate trace_init_wq\n"); /* Do work here */ eval_map_work_func(&eval_map_work); return -ENOMEM; } =20 - queue_work(eval_map_wq, &eval_map_work); + queue_work(trace_init_wq, &eval_map_work); return 0; } =20 @@ -10818,8 +10818,8 @@ subsys_initcall(trace_eval_init); static int __init trace_eval_sync(void) { /* Make sure the eval map updates are finished */ - if (eval_map_wq) - destroy_workqueue(eval_map_wq); + if (trace_init_wq) + destroy_workqueue(trace_init_wq); return 0; } =20 @@ -10980,9 +10980,9 @@ static __init int tracer_init_tracefs(void) if (ret) return 0; =20 - if (eval_map_wq) { + if (trace_init_wq) { INIT_WORK(&tracerfs_init_work, tracer_init_tracefs_work_func); - queue_work(eval_map_wq, &tracerfs_init_work); + queue_work(trace_init_wq, &tracerfs_init_work); } else { tracer_init_tracefs_work_func(NULL); } diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 69e7defba6c6..bb68539c64b7 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -769,6 +769,7 @@ extern cpumask_var_t __read_mostly tracing_buffer_mask; extern unsigned long nsecs_to_usecs(unsigned long nsecs); =20 extern unsigned long tracing_thresh; +extern struct workqueue_struct *trace_init_wq __initdata; =20 /* PID filtering */ =20 --=20 2.51.0