From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 57961127B68 for ; Tue, 30 Apr 2024 09:18:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468695; cv=none; b=IcoEMQMfcNlCPvKjJZhTldJd/5GHESYp/x61KIcClxajaFrEPozwBIUcdxPK7bWCjGarY98VpcE+UDjp2UidizpVjNGmFNdUM0uu3KXNQNKB3KLtYzlIGiEtJS2T/YWtAGN1bu96DrwklGO9TM5ijtTJ6CWB+UtO+wCXxpRdZF8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468695; c=relaxed/simple; bh=Ja1ED46WgVnvWwML+MgdqnCcyB3o0ANZxFG2vxwCLQs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d5lt8SU5dJcgNwd8fL7TZ9l2L5ni+XIU0oTjHCQjGrLDpehCvjBYHMGdwy4llClG9fe/p2vXVF8xBRpJ1gbu3lrJVAstDFnoT9qbWsrREy1G51z89yurbKX8d0QCjqj6FkMUNEY9y74IH7j2dv4hawyjMdGWpiynEWPiwF2hl4s= 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=DgzraMoF; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="DgzraMoF" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468692; 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: in-reply-to:in-reply-to:references:references; bh=WDODcq1rwfWi96WG53da0E3MiuOFbZ6/kk8vvrnWpMI=; b=DgzraMoFXax/8mcAuVEAeCudojSBAHlbImUog4iGV1pFpuwfJK/C320YpftIE08/x3lMDA 5WtOQsQpDOVyW4tjSc4r+052c68Uuh8JzNfQ6dL9u3ifUkp4XTntqh4yU6n2XBzjaaFNSB HsatGzEQGk402Ef/9sXZkmizs7+ADtw= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-308--T3vzZk-P9CO3UgI-B8gEQ-1; Tue, 30 Apr 2024 05:18:10 -0400 X-MC-Unique: -T3vzZk-P9CO3UgI-B8gEQ-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 8CB4629ABA0D; Tue, 30 Apr 2024 09:18:09 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 90E08492BC7; Tue, 30 Apr 2024 09:18:05 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 01/27] treewide: context_tracking: Rename CONTEXT_* into CT_STATE_* Date: Tue, 30 Apr 2024 11:17:05 +0200 Message-ID: <20240430091740.1826862-2-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" Context tracking state related symbols currently use a mix of the CONTEXT_ (e.g. CONTEXT_KERNEL) and CT_SATE_ (e.g. CT_STATE_MASK) prefixes. Clean up the naming and make the ctx_state enum use the CT_STATE_ prefix. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Acked-by: Frederic Weisbecker --- arch/Kconfig | 2 +- arch/arm64/kernel/entry-common.c | 2 +- arch/powerpc/include/asm/interrupt.h | 6 +++--- arch/powerpc/kernel/interrupt.c | 6 +++--- arch/powerpc/kernel/syscall.c | 2 +- arch/x86/entry/common.c | 2 +- include/linux/context_tracking.h | 16 ++++++++-------- include/linux/context_tracking_state.h | 20 ++++++++++---------- include/linux/entry-common.h | 2 +- kernel/context_tracking.c | 12 ++++++------ kernel/entry/common.c | 2 +- kernel/sched/core.c | 4 ++-- 12 files changed, 38 insertions(+), 38 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index 93d5010dfc92e..1289f30bb137a 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -845,7 +845,7 @@ config HAVE_CONTEXT_TRACKING_USER_OFFSTACK Architecture neither relies on exception_enter()/exception_exit() nor on schedule_user(). Also preempt_schedule_notrace() and preempt_schedule_irq() can't be called in a preemptible section - while context tracking is CONTEXT_USER. This feature reflects a sane + while context tracking is CT_STATE_USER. This feature reflects a sane entry implementation where the following requirements are met on critical entry code, ie: before user_exit() or after user_enter(): =20 diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-com= mon.c index b77a15955f28b..3fcd9d080bf2a 100644 --- a/arch/arm64/kernel/entry-common.c +++ b/arch/arm64/kernel/entry-common.c @@ -103,7 +103,7 @@ static void noinstr exit_to_kernel_mode(struct pt_regs = *regs) static __always_inline void __enter_from_user_mode(void) { lockdep_hardirqs_off(CALLER_ADDR0); - CT_WARN_ON(ct_state() !=3D CONTEXT_USER); + CT_WARN_ON(ct_state() !=3D CT_STATE_USER); user_exit_irqoff(); trace_hardirqs_off_finish(); mte_disable_tco_entry(current); diff --git a/arch/powerpc/include/asm/interrupt.h b/arch/powerpc/include/as= m/interrupt.h index 7b610864b3645..dcb4bd8529f68 100644 --- a/arch/powerpc/include/asm/interrupt.h +++ b/arch/powerpc/include/asm/interrupt.h @@ -177,7 +177,7 @@ static inline void interrupt_enter_prepare(struct pt_re= gs *regs) =20 if (user_mode(regs)) { kuap_lock(); - CT_WARN_ON(ct_state() !=3D CONTEXT_USER); + CT_WARN_ON(ct_state() !=3D CT_STATE_USER); user_exit_irqoff(); =20 account_cpu_user_entry(); @@ -189,8 +189,8 @@ static inline void interrupt_enter_prepare(struct pt_re= gs *regs) * so avoid recursion. */ if (TRAP(regs) !=3D INTERRUPT_PROGRAM) - CT_WARN_ON(ct_state() !=3D CONTEXT_KERNEL && - ct_state() !=3D CONTEXT_IDLE); + CT_WARN_ON(ct_state() !=3D CT_STATE_KERNEL && + ct_state() !=3D CT_STATE_IDLE); INT_SOFT_MASK_BUG_ON(regs, is_implicit_soft_masked(regs)); INT_SOFT_MASK_BUG_ON(regs, arch_irq_disabled_regs(regs) && search_kernel_restart_table(regs->nip)); diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrup= t.c index eca293794a1e8..af62ec974b970 100644 --- a/arch/powerpc/kernel/interrupt.c +++ b/arch/powerpc/kernel/interrupt.c @@ -266,7 +266,7 @@ notrace unsigned long syscall_exit_prepare(unsigned lon= g r3, unsigned long ret =3D 0; bool is_not_scv =3D !IS_ENABLED(CONFIG_PPC_BOOK3S_64) || !scv; =20 - CT_WARN_ON(ct_state() =3D=3D CONTEXT_USER); + CT_WARN_ON(ct_state() =3D=3D CT_STATE_USER); =20 kuap_assert_locked(); =20 @@ -344,7 +344,7 @@ notrace unsigned long interrupt_exit_user_prepare(struc= t pt_regs *regs) =20 BUG_ON(regs_is_unrecoverable(regs)); BUG_ON(arch_irq_disabled_regs(regs)); - CT_WARN_ON(ct_state() =3D=3D CONTEXT_USER); + CT_WARN_ON(ct_state() =3D=3D CT_STATE_USER); =20 /* * We don't need to restore AMR on the way back to userspace for KUAP. @@ -386,7 +386,7 @@ notrace unsigned long interrupt_exit_kernel_prepare(str= uct pt_regs *regs) if (!IS_ENABLED(CONFIG_PPC_BOOK3E_64) && TRAP(regs) !=3D INTERRUPT_PROGRAM && TRAP(regs) !=3D INTERRUPT_PERFMON) - CT_WARN_ON(ct_state() =3D=3D CONTEXT_USER); + CT_WARN_ON(ct_state() =3D=3D CT_STATE_USER); =20 kuap =3D kuap_get_and_assert_locked(); =20 diff --git a/arch/powerpc/kernel/syscall.c b/arch/powerpc/kernel/syscall.c index f6f868e817e63..be159ad4b77bd 100644 --- a/arch/powerpc/kernel/syscall.c +++ b/arch/powerpc/kernel/syscall.c @@ -27,7 +27,7 @@ notrace long system_call_exception(struct pt_regs *regs, = unsigned long r0) =20 trace_hardirqs_off(); /* finish reconciling */ =20 - CT_WARN_ON(ct_state() =3D=3D CONTEXT_KERNEL); + CT_WARN_ON(ct_state() =3D=3D CT_STATE_KERNEL); user_exit_irqoff(); =20 BUG_ON(regs_is_unrecoverable(regs)); diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 6356060caaf31..f42a125093e54 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -150,7 +150,7 @@ early_param("ia32_emulation", ia32_emulation_override_c= mdline); #endif =20 /* - * Invoke a 32-bit syscall. Called with IRQs on in CONTEXT_KERNEL. + * Invoke a 32-bit syscall. Called with IRQs on in CT_STATE_KERNEL. */ static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, in= t nr) { diff --git a/include/linux/context_tracking.h b/include/linux/context_track= ing.h index 6e76b9dba00e7..28fcfa1849032 100644 --- a/include/linux/context_tracking.h +++ b/include/linux/context_tracking.h @@ -26,26 +26,26 @@ extern void user_exit_callable(void); static inline void user_enter(void) { if (context_tracking_enabled()) - ct_user_enter(CONTEXT_USER); + ct_user_enter(CT_STATE_USER); =20 } static inline void user_exit(void) { if (context_tracking_enabled()) - ct_user_exit(CONTEXT_USER); + ct_user_exit(CT_STATE_USER); } =20 /* Called with interrupts disabled. */ static __always_inline void user_enter_irqoff(void) { if (context_tracking_enabled()) - __ct_user_enter(CONTEXT_USER); + __ct_user_enter(CT_STATE_USER); =20 } static __always_inline void user_exit_irqoff(void) { if (context_tracking_enabled()) - __ct_user_exit(CONTEXT_USER); + __ct_user_exit(CT_STATE_USER); } =20 static inline enum ctx_state exception_enter(void) @@ -57,7 +57,7 @@ static inline enum ctx_state exception_enter(void) return 0; =20 prev_ctx =3D __ct_state(); - if (prev_ctx !=3D CONTEXT_KERNEL) + if (prev_ctx !=3D CT_STATE_KERNEL) ct_user_exit(prev_ctx); =20 return prev_ctx; @@ -67,7 +67,7 @@ static inline void exception_exit(enum ctx_state prev_ctx) { if (!IS_ENABLED(CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK) && context_tracking_enabled()) { - if (prev_ctx !=3D CONTEXT_KERNEL) + if (prev_ctx !=3D CT_STATE_KERNEL) ct_user_enter(prev_ctx); } } @@ -75,7 +75,7 @@ static inline void exception_exit(enum ctx_state prev_ctx) static __always_inline bool context_tracking_guest_enter(void) { if (context_tracking_enabled()) - __ct_user_enter(CONTEXT_GUEST); + __ct_user_enter(CT_STATE_GUEST); =20 return context_tracking_enabled_this_cpu(); } @@ -83,7 +83,7 @@ static __always_inline bool context_tracking_guest_enter(= void) static __always_inline void context_tracking_guest_exit(void) { if (context_tracking_enabled()) - __ct_user_exit(CONTEXT_GUEST); + __ct_user_exit(CT_STATE_GUEST); } =20 #define CT_WARN_ON(cond) WARN_ON(context_tracking_enabled() && (cond)) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index bbff5f7f88030..f1c53125edee2 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -10,18 +10,18 @@ #define DYNTICK_IRQ_NONIDLE ((LONG_MAX / 2) + 1) =20 enum ctx_state { - CONTEXT_DISABLED =3D -1, /* returned by ct_state() if unknown */ - CONTEXT_KERNEL =3D 0, - CONTEXT_IDLE =3D 1, - CONTEXT_USER =3D 2, - CONTEXT_GUEST =3D 3, - CONTEXT_MAX =3D 4, + CT_STATE_DISABLED =3D -1, /* returned by ct_state() if unknown */ + CT_STATE_KERNEL =3D 0, + CT_STATE_IDLE =3D 1, + CT_STATE_USER =3D 2, + CT_STATE_GUEST =3D 3, + CT_STATE_MAX =3D 4, }; =20 /* Even value for idle, else odd. */ -#define RCU_DYNTICKS_IDX CONTEXT_MAX +#define RCU_DYNTICKS_IDX CT_STATE_MAX =20 -#define CT_STATE_MASK (CONTEXT_MAX - 1) +#define CT_STATE_MASK (CT_STATE_MAX - 1) #define CT_DYNTICKS_MASK (~CT_STATE_MASK) =20 struct context_tracking { @@ -123,14 +123,14 @@ static inline bool context_tracking_enabled_this_cpu(= void) * * Returns the current cpu's context tracking state if context tracking * is enabled. If context tracking is disabled, returns - * CONTEXT_DISABLED. This should be used primarily for debugging. + * CT_STATE_DISABLED. This should be used primarily for debugging. */ static __always_inline int ct_state(void) { int ret; =20 if (!context_tracking_enabled()) - return CONTEXT_DISABLED; + return CT_STATE_DISABLED; =20 preempt_disable(); ret =3D __ct_state(); diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h index b0fb775a600d9..1e50cdb83ae50 100644 --- a/include/linux/entry-common.h +++ b/include/linux/entry-common.h @@ -108,7 +108,7 @@ static __always_inline void enter_from_user_mode(struct= pt_regs *regs) arch_enter_from_user_mode(regs); lockdep_hardirqs_off(CALLER_ADDR0); =20 - CT_WARN_ON(__ct_state() !=3D CONTEXT_USER); + CT_WARN_ON(__ct_state() !=3D CT_STATE_USER); user_exit_irqoff(); =20 instrumentation_begin(); diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 70ae70d038233..21f2cf90ed0bf 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -317,7 +317,7 @@ void noinstr ct_nmi_enter(void) void noinstr ct_idle_enter(void) { WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !raw_irqs_disabled()); - ct_kernel_exit(false, RCU_DYNTICKS_IDX + CONTEXT_IDLE); + ct_kernel_exit(false, RCU_DYNTICKS_IDX + CT_STATE_IDLE); } EXPORT_SYMBOL_GPL(ct_idle_enter); =20 @@ -335,7 +335,7 @@ void noinstr ct_idle_exit(void) unsigned long flags; =20 raw_local_irq_save(flags); - ct_kernel_enter(false, RCU_DYNTICKS_IDX - CONTEXT_IDLE); + ct_kernel_enter(false, RCU_DYNTICKS_IDX - CT_STATE_IDLE); raw_local_irq_restore(flags); } EXPORT_SYMBOL_GPL(ct_idle_exit); @@ -485,7 +485,7 @@ void noinstr __ct_user_enter(enum ctx_state state) * user_exit() or ct_irq_enter(). Let's remove RCU's dependency * on the tick. */ - if (state =3D=3D CONTEXT_USER) { + if (state =3D=3D CT_STATE_USER) { instrumentation_begin(); trace_user_enter(0); vtime_user_enter(current); @@ -621,7 +621,7 @@ void noinstr __ct_user_exit(enum ctx_state state) * run a RCU read side critical section anytime. */ ct_kernel_enter(true, RCU_DYNTICKS_IDX - state); - if (state =3D=3D CONTEXT_USER) { + if (state =3D=3D CT_STATE_USER) { instrumentation_begin(); vtime_user_exit(current); trace_user_exit(0); @@ -634,12 +634,12 @@ void noinstr __ct_user_exit(enum ctx_state state) * In this we case we don't care about any concurrency/ordering. */ if (!IS_ENABLED(CONFIG_CONTEXT_TRACKING_IDLE)) - raw_atomic_set(&ct->state, CONTEXT_KERNEL); + raw_atomic_set(&ct->state, CT_STATE_KERNEL); =20 } else { if (!IS_ENABLED(CONFIG_CONTEXT_TRACKING_IDLE)) { /* Tracking for vtime only, no concurrent RCU EQS accounting */ - raw_atomic_set(&ct->state, CONTEXT_KERNEL); + raw_atomic_set(&ct->state, CT_STATE_KERNEL); } else { /* * Tracking for vtime and RCU EQS. Make sure we don't race diff --git a/kernel/entry/common.c b/kernel/entry/common.c index 90843cc385880..5b6934e23c21d 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -182,7 +182,7 @@ static void syscall_exit_to_user_mode_prepare(struct pt= _regs *regs) unsigned long work =3D READ_ONCE(current_thread_info()->syscall_work); unsigned long nr =3D syscall_get_nr(current, regs); =20 - CT_WARN_ON(ct_state() !=3D CONTEXT_KERNEL); + CT_WARN_ON(ct_state() !=3D CT_STATE_KERNEL); =20 if (IS_ENABLED(CONFIG_PROVE_LOCKING)) { if (WARN(irqs_disabled(), "syscall %lu left IRQs disabled", nr)) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7019a40457a6d..35dd462a55abe 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5980,7 +5980,7 @@ static inline void schedule_debug(struct task_struct = *prev, bool preempt) preempt_count_set(PREEMPT_DISABLED); } rcu_sleep_check(); - SCHED_WARN_ON(ct_state() =3D=3D CONTEXT_USER); + SCHED_WARN_ON(ct_state() =3D=3D CT_STATE_USER); =20 profile_hit(SCHED_PROFILING, __builtin_return_address(0)); =20 @@ -6875,7 +6875,7 @@ asmlinkage __visible void __sched schedule_user(void) * we find a better solution. * * NB: There are buggy callers of this function. Ideally we - * should warn if prev_state !=3D CONTEXT_USER, but that will trigger + * should warn if prev_state !=3D CT_STATE_USER, but that will trigger * too frequently to make sense yet. */ enum ctx_state prev_state =3D exception_enter(); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 AB4DE1292CC for ; Tue, 30 Apr 2024 09:18:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468700; cv=none; b=UDowp7IpYpFgnjtCxeEHypGn8rS73XyynrhNsmvQ7mc334K1Fp/99LRWfaQfvBGd0tMaeiFqlq2W+ro9NV029QulzjRJy1erQ65NOIzeJp2t8vC6BB60dvVp79EBNXGOqM/rZx3zpZzAit4ePhY1yxFmOQDqBUDLk5J5tm3ZW30= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468700; c=relaxed/simple; bh=Jkb9EnW7KJJWQPCXWZ7+fqlyh6FVyXt/G10deCM6JUY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FUcE+pMWVchfL7hbHH5BXIZYwZL/JgOC8js9+eYsdpkXKgThoATkQE5jmnOoo6qDF8JFq2MKK1X9Nzq60FEx1q8HwqvoHfxOxUb7snqlquKban7GEWpFLoHWE3IaC20DdycD0CZsXrlM0oz31gNERQD5VK1Di0nCdeTNsWvjrcM= 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=F8uPqxwB; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="F8uPqxwB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468696; 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: in-reply-to:in-reply-to:references:references; bh=GmFcbdfw7yMnCu5UmJGdDPcav9/8FYIzdG1/SV9AqiY=; b=F8uPqxwBL6/QDVDATHxXNq7KAgW9BZ2gck3jbshcDm2IXoEA0w001zDnuDVA8bUmYf6ywm YFII6OnfS1ACWLI04Qjwt2DIcZfXjRVSgBPAIm+yCA5MyOPitVhapRBZua8wxtecHb9K1B hEPDAqQJeIPCzJAdNNX1Vet4+6r5VfY= 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-632-brgU1gkYMMCOIsrit2JQ2w-1; Tue, 30 Apr 2024 05:18:13 -0400 X-MC-Unique: brgU1gkYMMCOIsrit2JQ2w-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 8205F89A7E0; Tue, 30 Apr 2024 09:18:12 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EA485492BC7; Tue, 30 Apr 2024 09:18:09 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 02/27] context_tracking, rcu: Rename RCU_DYNTICKS_IDX into CT_RCU_WATCHING Date: Tue, 30 Apr 2024 11:17:06 +0200 Message-ID: <20240430091740.1826862-3-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The symbols relating to the CT_STATE part of context_tracking.state are now all prefixed with CT_STATE. The RCU dynticks counter part of that atomic variable still involves symbols with different prefixes, align them all to be prefixed with CT_RCU_WATCHING. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking.h | 6 +++--- include/linux/context_tracking_state.h | 12 ++++++------ kernel/context_tracking.c | 22 +++++++++++----------- kernel/rcu/tree.c | 12 ++++++------ 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/linux/context_tracking.h b/include/linux/context_track= ing.h index 28fcfa1849032..a6c36780cc3bd 100644 --- a/include/linux/context_tracking.h +++ b/include/linux/context_tracking.h @@ -119,7 +119,7 @@ extern void ct_idle_exit(void); */ static __always_inline bool rcu_dynticks_curr_cpu_in_eqs(void) { - return !(raw_atomic_read(this_cpu_ptr(&context_tracking.state)) & RCU_DYN= TICKS_IDX); + return !(raw_atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_RCU_= WATCHING); } =20 /* @@ -142,7 +142,7 @@ static __always_inline bool warn_rcu_enter(void) preempt_disable_notrace(); if (rcu_dynticks_curr_cpu_in_eqs()) { ret =3D true; - ct_state_inc(RCU_DYNTICKS_IDX); + ct_state_inc(CT_RCU_WATCHING); } =20 return ret; @@ -151,7 +151,7 @@ static __always_inline bool warn_rcu_enter(void) static __always_inline void warn_rcu_exit(bool rcu) { if (rcu) - ct_state_inc(RCU_DYNTICKS_IDX); + ct_state_inc(CT_RCU_WATCHING); preempt_enable_notrace(); } =20 diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index f1c53125edee2..94d6a935af3be 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -18,11 +18,11 @@ enum ctx_state { CT_STATE_MAX =3D 4, }; =20 -/* Even value for idle, else odd. */ -#define RCU_DYNTICKS_IDX CT_STATE_MAX +/* Odd value for watching, else even. */ +#define CT_RCU_WATCHING CT_STATE_MAX =20 #define CT_STATE_MASK (CT_STATE_MAX - 1) -#define CT_DYNTICKS_MASK (~CT_STATE_MASK) +#define CT_RCU_WATCHING_MASK (~CT_STATE_MASK) =20 struct context_tracking { #ifdef CONFIG_CONTEXT_TRACKING_USER @@ -58,21 +58,21 @@ static __always_inline int __ct_state(void) #ifdef CONFIG_CONTEXT_TRACKING_IDLE static __always_inline int ct_dynticks(void) { - return atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_DYNTICKS_M= ASK; + return atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_RCU_WATCHI= NG_MASK; } =20 static __always_inline int ct_dynticks_cpu(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 - return atomic_read(&ct->state) & CT_DYNTICKS_MASK; + return atomic_read(&ct->state) & CT_RCU_WATCHING_MASK; } =20 static __always_inline int ct_dynticks_cpu_acquire(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 - return atomic_read_acquire(&ct->state) & CT_DYNTICKS_MASK; + return atomic_read_acquire(&ct->state) & CT_RCU_WATCHING_MASK; } =20 static __always_inline long ct_dynticks_nesting(void) diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 21f2cf90ed0bf..9f009de83cc8e 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -31,7 +31,7 @@ DEFINE_PER_CPU(struct context_tracking, context_tracking)= =3D { .dynticks_nesting =3D 1, .dynticks_nmi_nesting =3D DYNTICK_IRQ_NONIDLE, #endif - .state =3D ATOMIC_INIT(RCU_DYNTICKS_IDX), + .state =3D ATOMIC_INIT(CT_RCU_WATCHING), }; EXPORT_SYMBOL_GPL(context_tracking); =20 @@ -90,7 +90,7 @@ static noinstr void ct_kernel_exit_state(int offset) rcu_dynticks_task_trace_enter(); // Before ->dynticks update! seq =3D ct_state_inc(offset); // RCU is no longer watching. Better be in extended quiescent state! - WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && (seq & RCU_DYNTICKS_IDX)= ); + WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && (seq & CT_RCU_WATCHING)); } =20 /* @@ -110,7 +110,7 @@ static noinstr void ct_kernel_enter_state(int offset) seq =3D ct_state_inc(offset); // RCU is now watching. Better not be in an extended quiescent state! rcu_dynticks_task_trace_exit(); // After ->dynticks update! - WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !(seq & RCU_DYNTICKS_IDX= )); + WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !(seq & CT_RCU_WATCHING)= ); } =20 /* @@ -236,7 +236,7 @@ void noinstr ct_nmi_exit(void) instrumentation_end(); =20 // RCU is watching here ... - ct_kernel_exit_state(RCU_DYNTICKS_IDX); + ct_kernel_exit_state(CT_RCU_WATCHING); // ... but is no longer watching here. =20 if (!in_nmi()) @@ -277,7 +277,7 @@ void noinstr ct_nmi_enter(void) rcu_dynticks_task_exit(); =20 // RCU is not watching here ... - ct_kernel_enter_state(RCU_DYNTICKS_IDX); + ct_kernel_enter_state(CT_RCU_WATCHING); // ... but is watching here. =20 instrumentation_begin(); @@ -317,7 +317,7 @@ void noinstr ct_nmi_enter(void) void noinstr ct_idle_enter(void) { WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !raw_irqs_disabled()); - ct_kernel_exit(false, RCU_DYNTICKS_IDX + CT_STATE_IDLE); + ct_kernel_exit(false, CT_RCU_WATCHING + CT_STATE_IDLE); } EXPORT_SYMBOL_GPL(ct_idle_enter); =20 @@ -335,7 +335,7 @@ void noinstr ct_idle_exit(void) unsigned long flags; =20 raw_local_irq_save(flags); - ct_kernel_enter(false, RCU_DYNTICKS_IDX - CT_STATE_IDLE); + ct_kernel_enter(false, CT_RCU_WATCHING - CT_STATE_IDLE); raw_local_irq_restore(flags); } EXPORT_SYMBOL_GPL(ct_idle_exit); @@ -504,7 +504,7 @@ void noinstr __ct_user_enter(enum ctx_state state) * CPU doesn't need to maintain the tick for RCU maintenance purposes * when the CPU runs in userspace. */ - ct_kernel_exit(true, RCU_DYNTICKS_IDX + state); + ct_kernel_exit(true, CT_RCU_WATCHING + state); =20 /* * Special case if we only track user <-> kernel transitions for tickle= ss @@ -534,7 +534,7 @@ void noinstr __ct_user_enter(enum ctx_state state) /* * Tracking for vtime and RCU EQS. Make sure we don't race * with NMIs. OTOH we don't care about ordering here since - * RCU only requires RCU_DYNTICKS_IDX increments to be fully + * RCU only requires CT_RCU_WATCHING increments to be fully * ordered. */ raw_atomic_add(state, &ct->state); @@ -620,7 +620,7 @@ void noinstr __ct_user_exit(enum ctx_state state) * Exit RCU idle mode while entering the kernel because it can * run a RCU read side critical section anytime. */ - ct_kernel_enter(true, RCU_DYNTICKS_IDX - state); + ct_kernel_enter(true, CT_RCU_WATCHING - state); if (state =3D=3D CT_STATE_USER) { instrumentation_begin(); vtime_user_exit(current); @@ -644,7 +644,7 @@ void noinstr __ct_user_exit(enum ctx_state state) /* * Tracking for vtime and RCU EQS. Make sure we don't race * with NMIs. OTOH we don't care about ordering here since - * RCU only requires RCU_DYNTICKS_IDX increments to be fully + * RCU only requires CT_RCU_WATCHING increments to be fully * ordered. */ raw_atomic_sub(state, &ct->state); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 2fe08e6186b4d..84befc91799a3 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -291,9 +291,9 @@ void rcu_softirq_qs(void) */ static void rcu_dynticks_eqs_online(void) { - if (ct_dynticks() & RCU_DYNTICKS_IDX) + if (ct_dynticks() & CT_RCU_WATCHING) return; - ct_state_inc(RCU_DYNTICKS_IDX); + ct_state_inc(CT_RCU_WATCHING); } =20 /* @@ -312,7 +312,7 @@ static int rcu_dynticks_snap(int cpu) */ static bool rcu_dynticks_in_eqs(int snap) { - return !(snap & RCU_DYNTICKS_IDX); + return !(snap & CT_RCU_WATCHING); } =20 /* @@ -334,7 +334,7 @@ bool rcu_dynticks_zero_in_eqs(int cpu, int *vp) int snap; =20 // If not quiescent, force back to earlier extended quiescent state. - snap =3D ct_dynticks_cpu(cpu) & ~RCU_DYNTICKS_IDX; + snap =3D ct_dynticks_cpu(cpu) & ~CT_RCU_WATCHING; smp_rmb(); // Order ->dynticks and *vp reads. if (READ_ONCE(*vp)) return false; // Non-zero, so report failure; @@ -360,9 +360,9 @@ notrace void rcu_momentary_dyntick_idle(void) int seq; =20 raw_cpu_write(rcu_data.rcu_need_heavy_qs, false); - seq =3D ct_state_inc(2 * RCU_DYNTICKS_IDX); + seq =3D ct_state_inc(2 * CT_RCU_WATCHING); /* It is illegal to call this from idle state. */ - WARN_ON_ONCE(!(seq & RCU_DYNTICKS_IDX)); + WARN_ON_ONCE(!(seq & CT_RCU_WATCHING)); rcu_preempt_deferred_qs(current); } EXPORT_SYMBOL_GPL(rcu_momentary_dyntick_idle); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 C3C051292FF for ; Tue, 30 Apr 2024 09:18:21 +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=1714468703; cv=none; b=HONSyfl+UYc9ju3gEzEsVe/qKBTyQMl1ufta9smLLqN+5WJiiWxqAkgb6g5uO5smcNwWb4LDWyF4x6cwhqus8dKYFEdfDywzJYI1XKgmg5zVeKs/V/CDi69AUNnzCts50lJPP18fiZMfZMtVSK6aZV4TwegXHZS1udM4Ui8zZW8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468703; c=relaxed/simple; bh=6W21K9eH/6kGr4UiCCz78lCh/I3jLdLhvQ6VLuSlWqA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JVyscIGNDR/jsg7DjY1Ngpik9HRBwQZg7uQavW513UzMs9DOHLbLaGcoYb3tp0wP9gnfYqPR3X7d2xw3ohU2oX1MjNV1/6pFjBWQoDosDxA8JMpOSA8rRwG/925pv1Xts0hZFZr0b1rvkYV3aqRiyKy4BNadUBb11u6oWr1RgeQ= 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=J0OHf3C1; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="J0OHf3C1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468700; 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: in-reply-to:in-reply-to:references:references; bh=CFlTn+/v8IRwxqNngHBcNmTXrKR+6D0bXWHVkn7P2Ec=; b=J0OHf3C1MSb9MUu4cpoUy/xevgDKX3drMcqf/M3tY84E+fEUvlfwfqYsaC/pdgx9RRzxgu xXTIc/jSAn8Xtz2wG+4ApiiFWYoVA0yd3SIEpGiVaRXnwGD3cswMYBIgf7GuBjcTM9eqyB Psho5NvBV+wi33lZe9GolEhplMj+Vhw= 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-375-JIKxblCvOUC1R3xYbu7TSg-1; Tue, 30 Apr 2024 05:18:15 -0400 X-MC-Unique: JIKxblCvOUC1R3xYbu7TSg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 DE1BC100ADE3; Tue, 30 Apr 2024 09:18:14 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D22D140ED37; Tue, 30 Apr 2024 09:18:12 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 03/27] context_tracking, rcu: Rename ct_dynticks() into ct_rcu_watching() Date: Tue, 30 Apr 2024 11:17:07 +0200 Message-ID: <20240430091740.1826862-4-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/context_tracking.c | 10 +++++----- kernel/rcu/tree.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index 94d6a935af3be..cb90d8c178104 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -56,7 +56,7 @@ static __always_inline int __ct_state(void) #endif =20 #ifdef CONFIG_CONTEXT_TRACKING_IDLE -static __always_inline int ct_dynticks(void) +static __always_inline int ct_rcu_watching(void) { return atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_RCU_WATCHI= NG_MASK; } diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 9f009de83cc8e..738a9ff4f1f51 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -137,7 +137,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) =20 instrumentation_begin(); lockdep_assert_irqs_disabled(); - trace_rcu_dyntick(TPS("Start"), ct_dynticks_nesting(), 0, ct_dynticks()); + trace_rcu_dyntick(TPS("Start"), ct_dynticks_nesting(), 0, ct_rcu_watching= ()); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); rcu_preempt_deferred_qs(current); =20 @@ -182,7 +182,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) // instrumentation for the noinstr ct_kernel_enter_state() instrument_atomic_write(&ct->state, sizeof(ct->state)); =20 - trace_rcu_dyntick(TPS("End"), ct_dynticks_nesting(), 1, ct_dynticks()); + trace_rcu_dyntick(TPS("End"), ct_dynticks_nesting(), 1, ct_rcu_watching()= ); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); WRITE_ONCE(ct->dynticks_nesting, 1); WARN_ON_ONCE(ct_dynticks_nmi_nesting()); @@ -220,7 +220,7 @@ void noinstr ct_nmi_exit(void) */ if (ct_dynticks_nmi_nesting() !=3D 1) { trace_rcu_dyntick(TPS("--=3D"), ct_dynticks_nmi_nesting(), ct_dynticks_n= mi_nesting() - 2, - ct_dynticks()); + ct_rcu_watching()); WRITE_ONCE(ct->dynticks_nmi_nesting, /* No store tearing. */ ct_dynticks_nmi_nesting() - 2); instrumentation_end(); @@ -228,7 +228,7 @@ void noinstr ct_nmi_exit(void) } =20 /* This NMI interrupted an RCU-idle CPU, restore RCU-idleness. */ - trace_rcu_dyntick(TPS("Startirq"), ct_dynticks_nmi_nesting(), 0, ct_dynti= cks()); + trace_rcu_dyntick(TPS("Startirq"), ct_dynticks_nmi_nesting(), 0, ct_rcu_w= atching()); WRITE_ONCE(ct->dynticks_nmi_nesting, 0); /* Avoid store tearing. */ =20 // instrumentation for the noinstr ct_kernel_exit_state() @@ -296,7 +296,7 @@ void noinstr ct_nmi_enter(void) =20 trace_rcu_dyntick(incby =3D=3D 1 ? TPS("Endirq") : TPS("++=3D"), ct_dynticks_nmi_nesting(), - ct_dynticks_nmi_nesting() + incby, ct_dynticks()); + ct_dynticks_nmi_nesting() + incby, ct_rcu_watching()); instrumentation_end(); WRITE_ONCE(ct->dynticks_nmi_nesting, /* Prevent store tearing. */ ct_dynticks_nmi_nesting() + incby); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 84befc91799a3..db64f092428dd 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -291,7 +291,7 @@ void rcu_softirq_qs(void) */ static void rcu_dynticks_eqs_online(void) { - if (ct_dynticks() & CT_RCU_WATCHING) + if (ct_rcu_watching() & CT_RCU_WATCHING) return; ct_state_inc(CT_RCU_WATCHING); } --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 DB36712839B for ; Tue, 30 Apr 2024 09:18:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468707; cv=none; b=NVQly9KQ1DnbFqwR9pFlRFkhK5KXJkirDD5+7+7USrIklkHFgcYJNAhIYgJaRn3Z/SKC+jJ4jtRYvtV3qEZMTAGszgHKK27J9hXl5uUXBVJlYhFByljYGk3R7G4mKZ0iOMkZgpv1D08WtprHoXekUme4S+/DUbSme2i3AnMIcis= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468707; c=relaxed/simple; bh=N4/h9ZnmRMGmIywRYRmyoGAk35G62X23wyiU70evxck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QkcV7GnQYdwsjelF1jxTATEfvzX8uY5bMlb1OJ0ht/Lf6pxQHwU71kIu+OrjA4JMK1bZmHTOUlK8pHdI7tRX8dnY6HtKE2I8y4gdHS/ZCzM6+B9lyoONHur+1sBVQQEL2DN61BRuY00PeHjBQ2W3U7JG2AdXlojYM2M6BI9VXuc= 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=KSQiedJw; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="KSQiedJw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468704; 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: in-reply-to:in-reply-to:references:references; bh=xhl2Ax5N8DRE4xjW6V6nfiYXNleFGEMe0JLCiGqZosE=; b=KSQiedJw6paGDaay+HF9FLnBqdqqKCSIFFPVy/zsoxOi6OMiMrRW6GMWqM753G3GAU0d4o vGu7nfLbmuIfe9CD7aXeAP1OqN3psQGUI5Ax9HHmJ9AY53CGvxePlP8o1LcAxXP36Q0Prh cyD1zccZOmRJuxykFBp4DdnoNozNA2w= 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-256-G1Cd1T99PQWDPIzgnw_xAA-1; Tue, 30 Apr 2024 05:18:18 -0400 X-MC-Unique: G1Cd1T99PQWDPIzgnw_xAA-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 86EA1800CA2; Tue, 30 Apr 2024 09:18:17 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2B1EB492BC7; Tue, 30 Apr 2024 09:18:15 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 04/27] context_tracking, rcu: Rename ct_dynticks_cpu() into ct_rcu_watching_cpu() Date: Tue, 30 Apr 2024 11:17:08 +0200 Message-ID: <20240430091740.1826862-5-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/rcu/tree.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index cb90d8c178104..ad5a06a42b4a0 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -61,7 +61,7 @@ static __always_inline int ct_rcu_watching(void) return atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_RCU_WATCHI= NG_MASK; } =20 -static __always_inline int ct_dynticks_cpu(int cpu) +static __always_inline int ct_rcu_watching_cpu(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index db64f092428dd..e4295d040cc9b 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -334,14 +334,14 @@ bool rcu_dynticks_zero_in_eqs(int cpu, int *vp) int snap; =20 // If not quiescent, force back to earlier extended quiescent state. - snap =3D ct_dynticks_cpu(cpu) & ~CT_RCU_WATCHING; + snap =3D ct_rcu_watching_cpu(cpu) & ~CT_RCU_WATCHING; smp_rmb(); // Order ->dynticks and *vp reads. if (READ_ONCE(*vp)) return false; // Non-zero, so report failure; smp_rmb(); // Order *vp read and ->dynticks re-read. =20 // If still in the same extended quiescent state, we are good! - return snap =3D=3D ct_dynticks_cpu(cpu); + return snap =3D=3D ct_rcu_watching_cpu(cpu); } =20 /* --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 8A1AE129E8A for ; Tue, 30 Apr 2024 09:18:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468708; cv=none; b=lL/r0GlPSasmVLqUnKNMajBSmr5szz6VaL1GHIs61BD+75OCWKvLacSBSqCtCFOdaUwCquVlx+h9lZvT4cLFTXnw1+1ddQs3RF57iNxZ1j8O+QkkEZOjkd1s6VNoEG5tNkgbmhgylT/D8VWZZ+H+z8MeHV+e6arTRmNJRTuWfCs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468708; c=relaxed/simple; bh=FzoCm0SHtCsJ3kYDzu0estuogSzw1EbbPtNv/mWqBJ8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=he2rArlZg3NQV9hoojxKQjHLrUZ34/AsvH9x3u/u4vgJpvAtrj99sYtTlLC0H7/WhVpMr+gfAQ0uv2VKFDP0JShQ+HFcLXbUvt/9SD6DlOcJlufF3/9DOJ616CLhzxhd3vdJzQgxVoFpXkgnb6ymZx4l4suN0oFQ/9anEYpm4ks= 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=EQsybZG2; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="EQsybZG2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468705; 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: in-reply-to:in-reply-to:references:references; bh=L+QzE4nMM/IXDmBl/gQfk9o3dUS97Owm1KeM6oa2cDo=; b=EQsybZG2rDa0izrEN/3/9SZBOF2khNwhNF2DjkjtAzFcRK8oN3qO1BbjGpMwxM4eD+euqB zpouASs6qIUjRu14oGIM9h5uejEGuJF1GQp5uAKgmYTTf8GpnZUhxUyB+QhTMppwunskb1 gWN5dSVuERLkcFXh4/OUGnemB2kSdYE= 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-572-_-Jnpc6RO-moxPY506shMw-1; Tue, 30 Apr 2024 05:18:21 -0400 X-MC-Unique: _-Jnpc6RO-moxPY506shMw-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 675681044573; Tue, 30 Apr 2024 09:18:20 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D3E67492BC7; Tue, 30 Apr 2024 09:18:17 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 05/27] context_tracking, rcu: Rename ct_dynticks_cpu_acquire() into ct_rcu_watching_cpu_acquire() Date: Tue, 30 Apr 2024 11:17:09 +0200 Message-ID: <20240430091740.1826862-6-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/rcu/tree.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index ad5a06a42b4a0..ad6570ffeff3c 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -68,7 +68,7 @@ static __always_inline int ct_rcu_watching_cpu(int cpu) return atomic_read(&ct->state) & CT_RCU_WATCHING_MASK; } =20 -static __always_inline int ct_dynticks_cpu_acquire(int cpu) +static __always_inline int ct_rcu_watching_cpu_acquire(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e4295d040cc9b..5f6400a97471b 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -303,7 +303,7 @@ static void rcu_dynticks_eqs_online(void) static int rcu_dynticks_snap(int cpu) { smp_mb(); // Fundamental RCU ordering guarantee. - return ct_dynticks_cpu_acquire(cpu); + return ct_rcu_watching_cpu_acquire(cpu); } =20 /* --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 B581B12882C for ; Tue, 30 Apr 2024 09:18:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468710; cv=none; b=T4BxR5D+pvHoG5lt0SE8JW6I/8TLIHeLz/vhe3bpHvd4ajdI3p0Zpb/6YyY36wa8qp525t+tgUVn4u6KOJqp2XQajDMDwEFAQQ1popXuQYKeBKTJY1T+hJVslqOgFgndCH/sQ9/cVMElFGI7kmyg6LeYESrTCCdnkVKHa2z0Ei4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468710; c=relaxed/simple; bh=x1AyfeU/dYaYjaeNNUHoVUJoeqcm9AlNkWoqOGYy63I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Zki046EIYIAouhrZeLkR6SpKfjqAcg6sAhlKf5nvBQhvRJuYwmo1RK5Zbcz5EnvoL+//m0UteqaF/m4Lf0PR8QGAZFGUw7Yh9ZEAoT8w8AF123THI1fdX/+k6aqV9C9mWoE29c+rQMYoWpKmAjYFVx+1vi3arJV5ZN+1mZW70e8= 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=h5HkKA0X; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="h5HkKA0X" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468707; 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: in-reply-to:in-reply-to:references:references; bh=QXQy90AST059wOFCRAtXHdG3xHlU1ZzuXKQdGg5EjjQ=; b=h5HkKA0XqonS5n8H1Ql09jxQPv2vSls6ydPElhCj2BVZLMG07xracxISTDoV5Q96DFdKJm Q4ubjqouKxmrufsZ/DuXEbNXS+RexwYhLPtk34Rgkv0EVdboNxnJuzyKp0RebqHC4xlATD HciRUvxykRbkl12TMSV25Zv00oW96WI= 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-592-IE2pKSUhPWCymcIEbKPd3g-1; Tue, 30 Apr 2024 05:18:23 -0400 X-MC-Unique: IE2pKSUhPWCymcIEbKPd3g-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 46BAB89A7E2; Tue, 30 Apr 2024 09:18:23 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B7D2F40C5C3; Tue, 30 Apr 2024 09:18:20 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 06/27] context_tracking, rcu: Rename struct context_tracking .dynticks_nesting into .nesting Date: Tue, 30 Apr 2024 11:17:10 +0200 Message-ID: <20240430091740.1826862-7-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- .../RCU/Design/Data-Structures/Data-Structures.rst | 10 +++++----- include/linux/context_tracking_state.h | 6 +++--- include/trace/events/rcu.h | 2 +- kernel/context_tracking.c | 10 +++++----- kernel/rcu/tree.c | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Documentation/RCU/Design/Data-Structures/Data-Structures.rst b= /Documentation/RCU/Design/Data-Structures/Data-Structures.rst index b34990c7c3778..57ffc33d3cce2 100644 --- a/Documentation/RCU/Design/Data-Structures/Data-Structures.rst +++ b/Documentation/RCU/Design/Data-Structures/Data-Structures.rst @@ -935,7 +935,7 @@ This portion of the rcu_data structure is declared as f= ollows: =20 :: =20 - 1 long dynticks_nesting; + 1 long nesting; 2 long dynticks_nmi_nesting; 3 atomic_t dynticks; 4 bool rcu_need_heavy_qs; @@ -945,7 +945,7 @@ These fields in the rcu_data structure maintain the per= -CPU dyntick-idle state for the corresponding CPU. The fields may be accessed only from the corresponding CPU (and from tracing) unless otherwise stated. =20 -The ``->dynticks_nesting`` field counts the nesting depth of process +The ``->nesting`` field counts the nesting depth of process execution, so that in normal circumstances this counter has value zero or one. NMIs, irqs, and tracers are counted by the ``->dynticks_nmi_nesting`` field. Because NMIs cannot be masked, changes @@ -960,9 +960,9 @@ process-level transitions. However, it turns out that when running in non-idle kernel context, the Linux kernel is fully capable of entering interrupt handlers that never exit and perhaps also vice versa. Therefore, whenever the -``->dynticks_nesting`` field is incremented up from zero, the +``->nesting`` field is incremented up from zero, the ``->dynticks_nmi_nesting`` field is set to a large positive number, and -whenever the ``->dynticks_nesting`` field is decremented down to zero, +whenever the ``->nesting`` field is decremented down to zero, the ``->dynticks_nmi_nesting`` field is set to zero. Assuming that the number of misnested interrupts is not sufficient to overflow the counter, this approach corrects the ``->dynticks_nmi_nesting`` field @@ -992,7 +992,7 @@ code. +-----------------------------------------------------------------------+ | **Quick Quiz**: | +-----------------------------------------------------------------------+ -| Why not simply combine the ``->dynticks_nesting`` and | +| Why not simply combine the ``->nesting`` and | | ``->dynticks_nmi_nesting`` counters into a single counter that just | | counts the number of reasons that the corresponding CPU is non-idle? | +-----------------------------------------------------------------------+ diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index ad6570ffeff3c..65290e7677e6c 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -39,7 +39,7 @@ struct context_tracking { atomic_t state; #endif #ifdef CONFIG_CONTEXT_TRACKING_IDLE - long dynticks_nesting; /* Track process nesting level. */ + long nesting; /* Track process nesting level. */ long dynticks_nmi_nesting; /* Track irq/NMI nesting level. */ #endif }; @@ -77,14 +77,14 @@ static __always_inline int ct_rcu_watching_cpu_acquire(= int cpu) =20 static __always_inline long ct_dynticks_nesting(void) { - return __this_cpu_read(context_tracking.dynticks_nesting); + return __this_cpu_read(context_tracking.nesting); } =20 static __always_inline long ct_dynticks_nesting_cpu(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 - return ct->dynticks_nesting; + return ct->nesting; } =20 static __always_inline long ct_dynticks_nmi_nesting(void) diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index 31b3e0d3e65f7..4066b6d51e46a 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h @@ -469,7 +469,7 @@ TRACE_EVENT(rcu_stall_warning, * polarity: "Start", "End", "StillNonIdle" for entering, exiting or still= not * being in dyntick-idle mode. * context: "USER" or "IDLE" or "IRQ". - * NMIs nested in IRQs are inferred with dynticks_nesting > 1 in IRQ conte= xt. + * NMIs nested in IRQs are inferred with nesting > 1 in IRQ context. * * These events also take a pair of numbers, which indicate the nesting * depth before and after the event of interest, and a third number that is diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 738a9ff4f1f51..ddf9cfa58039f 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -28,7 +28,7 @@ =20 DEFINE_PER_CPU(struct context_tracking, context_tracking) =3D { #ifdef CONFIG_CONTEXT_TRACKING_IDLE - .dynticks_nesting =3D 1, + .nesting =3D 1, .dynticks_nmi_nesting =3D DYNTICK_IRQ_NONIDLE, #endif .state =3D ATOMIC_INIT(CT_RCU_WATCHING), @@ -131,7 +131,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) ct_dynticks_nesting() =3D=3D 0); if (ct_dynticks_nesting() !=3D 1) { // RCU will still be watching, so just do accounting and leave. - ct->dynticks_nesting--; + ct->nesting--; return; } =20 @@ -145,7 +145,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) instrument_atomic_write(&ct->state, sizeof(ct->state)); =20 instrumentation_end(); - WRITE_ONCE(ct->dynticks_nesting, 0); /* Avoid irq-access tearing. */ + WRITE_ONCE(ct->nesting, 0); /* Avoid irq-access tearing. */ // RCU is watching here ... ct_kernel_exit_state(offset); // ... but is no longer watching here. @@ -170,7 +170,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && oldval < 0); if (oldval) { // RCU was already watching, so just do accounting and leave. - ct->dynticks_nesting++; + ct->nesting++; return; } rcu_dynticks_task_exit(); @@ -184,7 +184,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) =20 trace_rcu_dyntick(TPS("End"), ct_dynticks_nesting(), 1, ct_rcu_watching()= ); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); - WRITE_ONCE(ct->dynticks_nesting, 1); + WRITE_ONCE(ct->nesting, 1); WARN_ON_ONCE(ct_dynticks_nmi_nesting()); WRITE_ONCE(ct->dynticks_nmi_nesting, DYNTICK_IRQ_NONIDLE); instrumentation_end(); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 5f6400a97471b..7f3fa9bb34e92 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -388,7 +388,7 @@ static int rcu_is_cpu_rrupt_from_idle(void) =20 /* Check for counter underflows */ RCU_LOCKDEP_WARN(ct_dynticks_nesting() < 0, - "RCU dynticks_nesting counter underflow!"); + "RCU nesting counter underflow!"); RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() <=3D 0, "RCU dynticks_nmi_nesting counter underflow/zero!"); =20 @@ -596,7 +596,7 @@ void rcu_irq_exit_check_preempt(void) lockdep_assert_irqs_disabled(); =20 RCU_LOCKDEP_WARN(ct_dynticks_nesting() <=3D 0, - "RCU dynticks_nesting counter underflow/zero!"); + "RCU nesting counter underflow/zero!"); RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE, "Bad RCU dynticks_nmi_nesting counter\n"); @@ -4797,7 +4797,7 @@ rcu_boot_init_percpu_data(int cpu) /* Set up local state, ensuring consistent view of global state. */ rdp->grpmask =3D leaf_node_cpu_bit(rdp->mynode, cpu); INIT_WORK(&rdp->strict_work, strict_work_handler); - WARN_ON_ONCE(ct->dynticks_nesting !=3D 1); + WARN_ON_ONCE(ct->nesting !=3D 1); WARN_ON_ONCE(rcu_dynticks_in_eqs(rcu_dynticks_snap(cpu))); rdp->barrier_seq_snap =3D rcu_state.barrier_sequence; rdp->rcu_ofl_gp_seq =3D rcu_state.gp_seq; @@ -4891,7 +4891,7 @@ int rcutree_prepare_cpu(unsigned int cpu) rdp->qlen_last_fqs_check =3D 0; rdp->n_force_qs_snap =3D READ_ONCE(rcu_state.n_force_qs); rdp->blimit =3D blimit; - ct->dynticks_nesting =3D 1; /* CPU not up, no tearing. */ + ct->nesting =3D 1; /* CPU not up, no tearing. */ raw_spin_unlock_rcu_node(rnp); /* irqs remain disabled. */ =20 /* --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 0E11614265E for ; Tue, 30 Apr 2024 09:18:32 +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=1714468714; cv=none; b=gz/F3+6SZrKBS/54437HirSAXbhuJpIRrZSyoV0fdLa1JS6HZkEt7AMZPoNZJE97YoRxT7oRZ++t0qnseaFe/f2TYiyOa3tW6ACgMfnhSoR6v3SRjVM8y0heVKMt/PLclu8iPgYNqfNqwxH0Hqxbv+4LSR0VbupTTGNjlnL+MKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468714; c=relaxed/simple; bh=+JBBnsVXW1yETIF62J+k2tb+dskhEhdRmII/3jXkznY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uzngcrvmzC1TLCKZNNXhyy1GQ1jEWbxc0M0d2SdI/qOHcsLrqETbSoV2zkWCKNkds2CKtKpQNNOUrJiw8g6winyZZWwiNZqYIw+3s8WEZ0Us9n2Jev7X+hiAHmHV9P29uStqmKtxYmY3iAP8+TllrgWIQbRWNq8MoXSL5p33a8w= 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=Z/wWb3vv; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Z/wWb3vv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468712; 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: in-reply-to:in-reply-to:references:references; bh=RZDSvTcBIbMPTAgzpicF94RIF10BBxppzDWPRpbYqWU=; b=Z/wWb3vvwH1zx23ghKLXZRTLHhNrlsxZzcfYaCVgRosQrH5yoZzyyj5uB3MvGIMG0xZehW SINE3tmEu/lVihkDNfvelcxAKEispiu4ZH+077ReLudlfm+tpsF7r941VwKHUnC5UMM4a5 rTJcHMupmWhplO7vkByFvu+VPMuhFLQ= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-201-WTiR5tc5P3agvZjFcy4x2A-1; Tue, 30 Apr 2024 05:18:26 -0400 X-MC-Unique: WTiR5tc5P3agvZjFcy4x2A-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 BA2823C02525; Tue, 30 Apr 2024 09:18:25 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9D0F440C5C3; Tue, 30 Apr 2024 09:18:23 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 07/27] context_tracking, rcu: Rename ct_dynticks_nesting() into ct_nesting() Date: Tue, 30 Apr 2024 11:17:11 +0200 Message-ID: <20240430091740.1826862-8-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/context_tracking.c | 10 +++++----- kernel/rcu/tree.c | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index 65290e7677e6c..586c1ff22c2e9 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -75,7 +75,7 @@ static __always_inline int ct_rcu_watching_cpu_acquire(in= t cpu) return atomic_read_acquire(&ct->state) & CT_RCU_WATCHING_MASK; } =20 -static __always_inline long ct_dynticks_nesting(void) +static __always_inline long ct_nesting(void) { return __this_cpu_read(context_tracking.nesting); } diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index ddf9cfa58039f..596aa4079c51e 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -128,8 +128,8 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) WARN_ON_ONCE(ct_dynticks_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE); WRITE_ONCE(ct->dynticks_nmi_nesting, 0); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && - ct_dynticks_nesting() =3D=3D 0); - if (ct_dynticks_nesting() !=3D 1) { + ct_nesting() =3D=3D 0); + if (ct_nesting() !=3D 1) { // RCU will still be watching, so just do accounting and leave. ct->nesting--; return; @@ -137,7 +137,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) =20 instrumentation_begin(); lockdep_assert_irqs_disabled(); - trace_rcu_dyntick(TPS("Start"), ct_dynticks_nesting(), 0, ct_rcu_watching= ()); + trace_rcu_dyntick(TPS("Start"), ct_nesting(), 0, ct_rcu_watching()); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); rcu_preempt_deferred_qs(current); =20 @@ -166,7 +166,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) long oldval; =20 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !raw_irqs_disabled()); - oldval =3D ct_dynticks_nesting(); + oldval =3D ct_nesting(); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && oldval < 0); if (oldval) { // RCU was already watching, so just do accounting and leave. @@ -182,7 +182,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) // instrumentation for the noinstr ct_kernel_enter_state() instrument_atomic_write(&ct->state, sizeof(ct->state)); =20 - trace_rcu_dyntick(TPS("End"), ct_dynticks_nesting(), 1, ct_rcu_watching()= ); + trace_rcu_dyntick(TPS("End"), ct_nesting(), 1, ct_rcu_watching()); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); WRITE_ONCE(ct->nesting, 1); WARN_ON_ONCE(ct_dynticks_nmi_nesting()); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 7f3fa9bb34e92..9fe3dcc504777 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -387,7 +387,7 @@ static int rcu_is_cpu_rrupt_from_idle(void) lockdep_assert_irqs_disabled(); =20 /* Check for counter underflows */ - RCU_LOCKDEP_WARN(ct_dynticks_nesting() < 0, + RCU_LOCKDEP_WARN(ct_nesting() < 0, "RCU nesting counter underflow!"); RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() <=3D 0, "RCU dynticks_nmi_nesting counter underflow/zero!"); @@ -403,7 +403,7 @@ static int rcu_is_cpu_rrupt_from_idle(void) WARN_ON_ONCE(!nesting && !is_idle_task(current)); =20 /* Does CPU appear to be idle from an RCU standpoint? */ - return ct_dynticks_nesting() =3D=3D 0; + return ct_nesting() =3D=3D 0; } =20 #define DEFAULT_RCU_BLIMIT (IS_ENABLED(CONFIG_RCU_STRICT_GRACE_PERIOD) ? 1= 000 : 10) @@ -595,7 +595,7 @@ void rcu_irq_exit_check_preempt(void) { lockdep_assert_irqs_disabled(); =20 - RCU_LOCKDEP_WARN(ct_dynticks_nesting() <=3D 0, + RCU_LOCKDEP_WARN(ct_nesting() <=3D 0, "RCU nesting counter underflow/zero!"); RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE, --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 64CF712882C for ; Tue, 30 Apr 2024 09:18:35 +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=1714468716; cv=none; b=rNamzs+CBkPlSsfAFtGodB1F00XJUHJeNz9lo/fZmyhAhfp23K2II/8iVOox+wQPEQBTwM9bggfrNeU8NI6dEuI5QeuMnTDS8s5V7OoIX4cNKweEwf75DVIBp76TRutblpX82aPcMzksZBv9nLh3VKZoL14PY5SmnMP5Iuy8TRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468716; c=relaxed/simple; bh=vTXAbWPf528CGOPRPHhrK/5DgDKcJ2olcfkLSdAkzsQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=urMzLDRFO8PJ7n8tKEC3DmJ6EYRicttx2PVvIKwW2nyrmKl9jMS8aYYwUaUDqDJYYWLQKr1cMxWFPoHTxAmBZDcqKIPdksRHuWK43VY5NywxZykm2fMFah+VbmSwV3JfJpYLVGxKtabYZzyKXLEbTb2M4G/EC7+fNV1Pw8iDtnA= 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=EFOMiXg2; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="EFOMiXg2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468714; 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: in-reply-to:in-reply-to:references:references; bh=Cn/5LgqL3qOuQrveZYN9sQdmnsvH18cAdWIQSmCXARQ=; b=EFOMiXg2Sm4dJUNeClhlHecgsZxmYHqdMrNzve5axx/5E2p8k0KVHyG8+THO1Cq4aXxHLO dCxSWPUcbmP8BcyFWsUgldG+YoGoE3bumSNAIEYuaGWxkyVWMSZHE8gSrKL3gr3PRpEzNK JdRXd3DScCCMucRMr8PFloI8Jw9c4p0= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-235-lwomzJ_6O0ynqPs0qAkC9w-1; Tue, 30 Apr 2024 05:18:29 -0400 X-MC-Unique: lwomzJ_6O0ynqPs0qAkC9w-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 AE7163C02526; Tue, 30 Apr 2024 09:18:28 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 21C1B40BAA2; Tue, 30 Apr 2024 09:18:25 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 08/27] context_tracking, rcu: Rename ct_dynticks_nesting_cpu() into ct_nesting_cpu() Date: Tue, 30 Apr 2024 11:17:12 +0200 Message-ID: <20240430091740.1826862-9-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/rcu/tree_stall.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index 586c1ff22c2e9..fd42d8120ac29 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -80,7 +80,7 @@ static __always_inline long ct_nesting(void) return __this_cpu_read(context_tracking.nesting); } =20 -static __always_inline long ct_dynticks_nesting_cpu(int cpu) +static __always_inline long ct_nesting_cpu(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index 460efecd077be..d8e5b49e65565 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -516,7 +516,7 @@ static void print_cpu_stall_info(int cpu) "!."[!delta], ticks_value, ticks_title, rcu_dynticks_snap(cpu) & 0xffff, - ct_dynticks_nesting_cpu(cpu), ct_dynticks_nmi_nesting_cpu(cpu), + ct_nesting_cpu(cpu), ct_dynticks_nmi_nesting_cpu(cpu), rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu), data_race(rcu_state.n_force_qs) - rcu_state.n_force_qs_gpstart, rcuc_starved ? buf : "", --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 975A4194C90 for ; Tue, 30 Apr 2024 09:18: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=1714468722; cv=none; b=OxzTRO+IRUrLA3uEUycZ2hbclsctMZgKOYhvs6TOWP6kHi0q9yOU0mp7DlHw0TLghh/rEcGMa0hDOm5eGiY6E5xiufCd9G6zy0j+CeXgk6ZkJbo6MNkUjmBr+XqGPnP4Pw1yPOKxkd2WkXLjw742c3O44VFBr645Q1IW9uM28sE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468722; c=relaxed/simple; bh=hYHegakj9/g9Npa6iCikmERrUUCo8r6JfUaSG8Ucwjs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DtnRi6fUOCMMcX1iBKPBT4T6Y1zRpPVSfh7eVSZjMVutHurWFJ3WVhtiHiqN1X7YT8eELW0GgimahoiGiZJEBOLbWq+b09ui88ts7fOwSMpjiygJKlGVxhit1MvWEOlxuU8+B75upMeM/xxkgaTYJZK3GvEN3iSYKXnKoMS453M= 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=WoSMsIxx; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="WoSMsIxx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468719; 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: in-reply-to:in-reply-to:references:references; bh=ebFD18CcJzGCTNl/UaFmzLecLTyHZiLEt1nJ0n6ErOc=; b=WoSMsIxxGy6xTmXB/hJ3vxSqOBK8qNdJ4vxGsinBM+gShQFpIasVRqLy6OAm+hbk2YPY5P yrTIiE6ZNAQcB+C1iRMItPDxhQfs/r9TX8S8/o0ue1MNSwP3mG3rDoe19TOIA1Bitx+1fg cxmSv2X47jXPGlJKAsLo9awjOpvZKfQ= 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-377-ap7DkqFtOqC7HL4PbGk13Q-1; Tue, 30 Apr 2024 05:18:32 -0400 X-MC-Unique: ap7DkqFtOqC7HL4PbGk13Q-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 E4E7E89A7E0; Tue, 30 Apr 2024 09:18:31 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0B7EA492BC7; Tue, 30 Apr 2024 09:18:28 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 09/27] context_tracking, rcu: Rename struct context_tracking .dynticks_nmi_nesting into .nmi_nesting Date: Tue, 30 Apr 2024 11:17:13 +0200 Message-ID: <20240430091740.1826862-10-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- .../Data-Structures/Data-Structures.rst | 14 +++++----- include/linux/context_tracking_state.h | 6 ++-- kernel/context_tracking.c | 28 +++++++++---------- kernel/rcu/tree.c | 4 +-- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Documentation/RCU/Design/Data-Structures/Data-Structures.rst b= /Documentation/RCU/Design/Data-Structures/Data-Structures.rst index 57ffc33d3cce2..5389cc49bea13 100644 --- a/Documentation/RCU/Design/Data-Structures/Data-Structures.rst +++ b/Documentation/RCU/Design/Data-Structures/Data-Structures.rst @@ -936,7 +936,7 @@ This portion of the rcu_data structure is declared as f= ollows: :: =20 1 long nesting; - 2 long dynticks_nmi_nesting; + 2 long nmi_nesting; 3 atomic_t dynticks; 4 bool rcu_need_heavy_qs; 5 bool rcu_urgent_qs; @@ -948,11 +948,11 @@ the corresponding CPU (and from tracing) unless other= wise stated. The ``->nesting`` field counts the nesting depth of process execution, so that in normal circumstances this counter has value zero or one. NMIs, irqs, and tracers are counted by the -``->dynticks_nmi_nesting`` field. Because NMIs cannot be masked, changes +``->nmi_nesting`` field. Because NMIs cannot be masked, changes to this variable have to be undertaken carefully using an algorithm provided by Andy Lutomirski. The initial transition from idle adds one, and nested transitions add two, so that a nesting level of five is -represented by a ``->dynticks_nmi_nesting`` value of nine. This counter +represented by a ``->nmi_nesting`` value of nine. This counter can therefore be thought of as counting the number of reasons why this CPU cannot be permitted to enter dyntick-idle mode, aside from process-level transitions. @@ -961,11 +961,11 @@ However, it turns out that when running in non-idle k= ernel context, the Linux kernel is fully capable of entering interrupt handlers that never exit and perhaps also vice versa. Therefore, whenever the ``->nesting`` field is incremented up from zero, the -``->dynticks_nmi_nesting`` field is set to a large positive number, and +``->nmi_nesting`` field is set to a large positive number, and whenever the ``->nesting`` field is decremented down to zero, -the ``->dynticks_nmi_nesting`` field is set to zero. Assuming that +the ``->nmi_nesting`` field is set to zero. Assuming that the number of misnested interrupts is not sufficient to overflow the -counter, this approach corrects the ``->dynticks_nmi_nesting`` field +counter, this approach corrects the ``->nmi_nesting`` field every time the corresponding CPU enters the idle loop from process context. =20 @@ -993,7 +993,7 @@ code. | **Quick Quiz**: | +-----------------------------------------------------------------------+ | Why not simply combine the ``->nesting`` and | -| ``->dynticks_nmi_nesting`` counters into a single counter that just | +| ``->nmi_nesting`` counters into a single counter that just | | counts the number of reasons that the corresponding CPU is non-idle? | +-----------------------------------------------------------------------+ | **Answer**: | diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index fd42d8120ac29..12d00adf29e1e 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -40,7 +40,7 @@ struct context_tracking { #endif #ifdef CONFIG_CONTEXT_TRACKING_IDLE long nesting; /* Track process nesting level. */ - long dynticks_nmi_nesting; /* Track irq/NMI nesting level. */ + long nmi_nesting; /* Track irq/NMI nesting level. */ #endif }; =20 @@ -89,14 +89,14 @@ static __always_inline long ct_nesting_cpu(int cpu) =20 static __always_inline long ct_dynticks_nmi_nesting(void) { - return __this_cpu_read(context_tracking.dynticks_nmi_nesting); + return __this_cpu_read(context_tracking.nmi_nesting); } =20 static __always_inline long ct_dynticks_nmi_nesting_cpu(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 - return ct->dynticks_nmi_nesting; + return ct->nmi_nesting; } #endif /* #ifdef CONFIG_CONTEXT_TRACKING_IDLE */ =20 diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 596aa4079c51e..7fa2f8cfc7431 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -29,7 +29,7 @@ DEFINE_PER_CPU(struct context_tracking, context_tracking) =3D { #ifdef CONFIG_CONTEXT_TRACKING_IDLE .nesting =3D 1, - .dynticks_nmi_nesting =3D DYNTICK_IRQ_NONIDLE, + .nmi_nesting =3D DYNTICK_IRQ_NONIDLE, #endif .state =3D ATOMIC_INIT(CT_RCU_WATCHING), }; @@ -117,7 +117,7 @@ static noinstr void ct_kernel_enter_state(int offset) * Enter an RCU extended quiescent state, which can be either the * idle loop or adaptive-tickless usermode execution. * - * We crowbar the ->dynticks_nmi_nesting field to zero to allow for + * We crowbar the ->nmi_nesting field to zero to allow for * the possibility of usermode upcalls having messed up our count * of interrupt nesting level during the prior busy period. */ @@ -126,7 +126,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) struct context_tracking *ct =3D this_cpu_ptr(&context_tracking); =20 WARN_ON_ONCE(ct_dynticks_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE); - WRITE_ONCE(ct->dynticks_nmi_nesting, 0); + WRITE_ONCE(ct->nmi_nesting, 0); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && ct_nesting() =3D=3D 0); if (ct_nesting() !=3D 1) { @@ -156,7 +156,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) * Exit an RCU extended quiescent state, which can be either the * idle loop or adaptive-tickless usermode execution. * - * We crowbar the ->dynticks_nmi_nesting field to DYNTICK_IRQ_NONIDLE to + * We crowbar the ->nmi_nesting field to DYNTICK_IRQ_NONIDLE to * allow for the possibility of usermode upcalls messing up our count of * interrupt nesting level during the busy period that is just now startin= g. */ @@ -186,7 +186,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); WRITE_ONCE(ct->nesting, 1); WARN_ON_ONCE(ct_dynticks_nmi_nesting()); - WRITE_ONCE(ct->dynticks_nmi_nesting, DYNTICK_IRQ_NONIDLE); + WRITE_ONCE(ct->nmi_nesting, DYNTICK_IRQ_NONIDLE); instrumentation_end(); } =20 @@ -194,7 +194,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) * ct_nmi_exit - inform RCU of exit from NMI context * * If we are returning from the outermost NMI handler that interrupted an - * RCU-idle period, update ct->state and ct->dynticks_nmi_nesting + * RCU-idle period, update ct->state and ct->nmi_nesting * to let the RCU grace-period handling know that the CPU is back to * being RCU-idle. * @@ -207,7 +207,7 @@ void noinstr ct_nmi_exit(void) =20 instrumentation_begin(); /* - * Check for ->dynticks_nmi_nesting underflow and bad ->dynticks. + * Check for ->nmi_nesting underflow and bad ->dynticks. * (We are exiting an NMI handler, so RCU better be paying attention * to us!) */ @@ -221,7 +221,7 @@ void noinstr ct_nmi_exit(void) if (ct_dynticks_nmi_nesting() !=3D 1) { trace_rcu_dyntick(TPS("--=3D"), ct_dynticks_nmi_nesting(), ct_dynticks_n= mi_nesting() - 2, ct_rcu_watching()); - WRITE_ONCE(ct->dynticks_nmi_nesting, /* No store tearing. */ + WRITE_ONCE(ct->nmi_nesting, /* No store tearing. */ ct_dynticks_nmi_nesting() - 2); instrumentation_end(); return; @@ -229,7 +229,7 @@ void noinstr ct_nmi_exit(void) =20 /* This NMI interrupted an RCU-idle CPU, restore RCU-idleness. */ trace_rcu_dyntick(TPS("Startirq"), ct_dynticks_nmi_nesting(), 0, ct_rcu_w= atching()); - WRITE_ONCE(ct->dynticks_nmi_nesting, 0); /* Avoid store tearing. */ + WRITE_ONCE(ct->nmi_nesting, 0); /* Avoid store tearing. */ =20 // instrumentation for the noinstr ct_kernel_exit_state() instrument_atomic_write(&ct->state, sizeof(ct->state)); @@ -247,7 +247,7 @@ void noinstr ct_nmi_exit(void) * ct_nmi_enter - inform RCU of entry to NMI context * * If the CPU was idle from RCU's viewpoint, update ct->state and - * ct->dynticks_nmi_nesting to let the RCU grace-period handling know + * ct->nmi_nesting to let the RCU grace-period handling know * that the CPU is active. This implementation permits nested NMIs, as * long as the nesting level does not overflow an int. (You will probably * run out of stack space first.) @@ -265,9 +265,9 @@ void noinstr ct_nmi_enter(void) =20 /* * If idle from RCU viewpoint, atomically increment ->dynticks - * to mark non-idle and increment ->dynticks_nmi_nesting by one. - * Otherwise, increment ->dynticks_nmi_nesting by two. This means - * if ->dynticks_nmi_nesting is equal to one, we are guaranteed + * to mark non-idle and increment ->nmi_nesting by one. + * Otherwise, increment ->nmi_nesting by two. This means + * if ->nmi_nesting is equal to one, we are guaranteed * to be in the outermost NMI handler that interrupted an RCU-idle * period (observation due to Andy Lutomirski). */ @@ -298,7 +298,7 @@ void noinstr ct_nmi_enter(void) ct_dynticks_nmi_nesting(), ct_dynticks_nmi_nesting() + incby, ct_rcu_watching()); instrumentation_end(); - WRITE_ONCE(ct->dynticks_nmi_nesting, /* Prevent store tearing. */ + WRITE_ONCE(ct->nmi_nesting, /* Prevent store tearing. */ ct_dynticks_nmi_nesting() + incby); barrier(); } diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 9fe3dcc504777..c797a386a84af 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -390,7 +390,7 @@ static int rcu_is_cpu_rrupt_from_idle(void) RCU_LOCKDEP_WARN(ct_nesting() < 0, "RCU nesting counter underflow!"); RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() <=3D 0, - "RCU dynticks_nmi_nesting counter underflow/zero!"); + "RCU nmi_nesting counter underflow/zero!"); =20 /* Are we at first interrupt nesting level? */ nesting =3D ct_dynticks_nmi_nesting(); @@ -599,7 +599,7 @@ void rcu_irq_exit_check_preempt(void) "RCU nesting counter underflow/zero!"); RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE, - "Bad RCU dynticks_nmi_nesting counter\n"); + "Bad RCU nmi_nesting counter\n"); RCU_LOCKDEP_WARN(rcu_dynticks_curr_cpu_in_eqs(), "RCU in extended quiescent state!"); } --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 A77F7194C94 for ; Tue, 30 Apr 2024 09:18:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468722; cv=none; b=Ei66TNI5DbNgqSKu7v8vJdImB5CCLsmWbGYSBbErqWUtRewaaTeIbT99tAkSR79Rko/LZFpzk5N1H/zkiKwrAGwla8FzjpMQE3FV3RR0JhjKQO34Ljtj4hN4WUJTdcPTuPT2CCIiifeVkXHFLoE8U228i9iK8Z7y+zE4Sics0uY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468722; c=relaxed/simple; bh=ShkN4zG8m9WO7iET+Gn4s046C9I9qaN46lYGZU9OQH4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OZn3VdRNa7m+8o6YiP7vhyySKRWRqfCw/HjXbBNaPP0SpHdV55+/DuLafDxg3xHr5R4AqRSqZZkp41SeUUplY6rQe6vQVbMhyBJ78/4NRecsr5BnzJ6AZyGkSYHA0Rp/wmM3cDG2NzHwAu6z1oGk8x+6+q4k6wT1V1RpZRQz2D0= 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=FHoE+slk; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="FHoE+slk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468719; 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: in-reply-to:in-reply-to:references:references; bh=s7BZ+Ee6yp7tkMterpTxffB+OrPYg8j9aGbd8sDD5Kw=; b=FHoE+slkSmcJfsaU62fHXpQ1QlcgWxsFaim/sm6gLnjdAVyOFVhNnLt6Wv60XGhLgToKDV 02eEJclUuPzkUQtn0SbErLwneRPsp53oejEhV0+vm587HZP6aK+BIhJeh/lpzPeo7wjMEC Pltq1D+VvMNaoGxZcc1USYCBt+BQPqY= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-100-nWcPhraOPhqA4cejc3082A-1; Tue, 30 Apr 2024 05:18:35 -0400 X-MC-Unique: nWcPhraOPhqA4cejc3082A-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 478CE3806738; Tue, 30 Apr 2024 09:18:34 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 44F19477F82; Tue, 30 Apr 2024 09:18:32 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 10/27] context_tracking, rcu: Rename ct_dynticks_nmi_nesting() into ct_nmi_nesting() Date: Tue, 30 Apr 2024 11:17:14 +0200 Message-ID: <20240430091740.1826862-11-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/context_tracking.c | 22 +++++++++++----------- kernel/rcu/tree.c | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index 12d00adf29e1e..8f32fe599c5c0 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -87,7 +87,7 @@ static __always_inline long ct_nesting_cpu(int cpu) return ct->nesting; } =20 -static __always_inline long ct_dynticks_nmi_nesting(void) +static __always_inline long ct_nmi_nesting(void) { return __this_cpu_read(context_tracking.nmi_nesting); } diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 7fa2f8cfc7431..19e3e0e30a9b2 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -125,7 +125,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) { struct context_tracking *ct =3D this_cpu_ptr(&context_tracking); =20 - WARN_ON_ONCE(ct_dynticks_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE); + WARN_ON_ONCE(ct_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE); WRITE_ONCE(ct->nmi_nesting, 0); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && ct_nesting() =3D=3D 0); @@ -185,7 +185,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) trace_rcu_dyntick(TPS("End"), ct_nesting(), 1, ct_rcu_watching()); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); WRITE_ONCE(ct->nesting, 1); - WARN_ON_ONCE(ct_dynticks_nmi_nesting()); + WARN_ON_ONCE(ct_nmi_nesting()); WRITE_ONCE(ct->nmi_nesting, DYNTICK_IRQ_NONIDLE); instrumentation_end(); } @@ -211,24 +211,24 @@ void noinstr ct_nmi_exit(void) * (We are exiting an NMI handler, so RCU better be paying attention * to us!) */ - WARN_ON_ONCE(ct_dynticks_nmi_nesting() <=3D 0); + WARN_ON_ONCE(ct_nmi_nesting() <=3D 0); WARN_ON_ONCE(rcu_dynticks_curr_cpu_in_eqs()); =20 /* * If the nesting level is not 1, the CPU wasn't RCU-idle, so * leave it in non-RCU-idle state. */ - if (ct_dynticks_nmi_nesting() !=3D 1) { - trace_rcu_dyntick(TPS("--=3D"), ct_dynticks_nmi_nesting(), ct_dynticks_n= mi_nesting() - 2, + if (ct_nmi_nesting() !=3D 1) { + trace_rcu_dyntick(TPS("--=3D"), ct_nmi_nesting(), ct_nmi_nesting() - 2, ct_rcu_watching()); WRITE_ONCE(ct->nmi_nesting, /* No store tearing. */ - ct_dynticks_nmi_nesting() - 2); + ct_nmi_nesting() - 2); instrumentation_end(); return; } =20 /* This NMI interrupted an RCU-idle CPU, restore RCU-idleness. */ - trace_rcu_dyntick(TPS("Startirq"), ct_dynticks_nmi_nesting(), 0, ct_rcu_w= atching()); + trace_rcu_dyntick(TPS("Startirq"), ct_nmi_nesting(), 0, ct_rcu_watching()= ); WRITE_ONCE(ct->nmi_nesting, 0); /* Avoid store tearing. */ =20 // instrumentation for the noinstr ct_kernel_exit_state() @@ -261,7 +261,7 @@ void noinstr ct_nmi_enter(void) struct context_tracking *ct =3D this_cpu_ptr(&context_tracking); =20 /* Complain about underflow. */ - WARN_ON_ONCE(ct_dynticks_nmi_nesting() < 0); + WARN_ON_ONCE(ct_nmi_nesting() < 0); =20 /* * If idle from RCU viewpoint, atomically increment ->dynticks @@ -295,11 +295,11 @@ void noinstr ct_nmi_enter(void) } =20 trace_rcu_dyntick(incby =3D=3D 1 ? TPS("Endirq") : TPS("++=3D"), - ct_dynticks_nmi_nesting(), - ct_dynticks_nmi_nesting() + incby, ct_rcu_watching()); + ct_nmi_nesting(), + ct_nmi_nesting() + incby, ct_rcu_watching()); instrumentation_end(); WRITE_ONCE(ct->nmi_nesting, /* Prevent store tearing. */ - ct_dynticks_nmi_nesting() + incby); + ct_nmi_nesting() + incby); barrier(); } =20 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index c797a386a84af..f5b1d83cdef85 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -389,11 +389,11 @@ static int rcu_is_cpu_rrupt_from_idle(void) /* Check for counter underflows */ RCU_LOCKDEP_WARN(ct_nesting() < 0, "RCU nesting counter underflow!"); - RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() <=3D 0, + RCU_LOCKDEP_WARN(ct_nmi_nesting() <=3D 0, "RCU nmi_nesting counter underflow/zero!"); =20 /* Are we at first interrupt nesting level? */ - nesting =3D ct_dynticks_nmi_nesting(); + nesting =3D ct_nmi_nesting(); if (nesting > 1) return false; =20 @@ -597,7 +597,7 @@ void rcu_irq_exit_check_preempt(void) =20 RCU_LOCKDEP_WARN(ct_nesting() <=3D 0, "RCU nesting counter underflow/zero!"); - RCU_LOCKDEP_WARN(ct_dynticks_nmi_nesting() !=3D + RCU_LOCKDEP_WARN(ct_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE, "Bad RCU nmi_nesting counter\n"); RCU_LOCKDEP_WARN(rcu_dynticks_curr_cpu_in_eqs(), --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 88205199EAA for ; Tue, 30 Apr 2024 09:18:47 +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=1714468728; cv=none; b=uz6kCdyPLKf612rweRjqkI3OF7lCSX0T44NNHckDNTo7vQ8QMwzz7VaM4TilAr1mUqbb2IQYF+h/8MKQd8fk3cJRHVyA0QaXR88XqvtSKHec7taliKFaIPB9XpxqF437lAK6UAVmRHpA6IoEl9MT9az/6QeayTZunowgSZ8CTqQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468728; c=relaxed/simple; bh=gLzeFeK7xoPYuYItjATa5D0M3vpYqdDQWtf+lxIjfQY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MNz34eRTdb/XteCffFPh2fa3R8hBwnVmrDPjkB7liGlGwOch4myaiG+GPayEYC5tIQCp8ushOgsoE0TK98Rndt8ki3VdIad91SQS/NAnXEd4fo9QDLPFI3D4dGcQ0BAt2VVd1+tSzzp7IqIHjcWfcqWOZMWQF76UUA46VQ26kS8= 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=O8Y/ujBP; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="O8Y/ujBP" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468726; 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: in-reply-to:in-reply-to:references:references; bh=qwvNVTB/8njt0PvzvkOv+IOpnsKs5zqtEj+q7KlChso=; b=O8Y/ujBPTmQvxbFqycIiGLzex2777xHHkm1WCXx+Ey+6YcOhNB5kemtS5gsz6fWBV0e/sz IUquTotLjtfTpVt9pTESReS7oq87k34ZnoQstESoBlWANLqQAdvnnT8KLjBQTYlR5e+b1J KdIijqWxz/p6pxfMqBYPlC4uN3S2Sh8= 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-53-InFSlWZwNMumyKiKgxZz1g-1; Tue, 30 Apr 2024 05:18:38 -0400 X-MC-Unique: InFSlWZwNMumyKiKgxZz1g-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 0A0461049C98; Tue, 30 Apr 2024 09:18:37 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8294A40BAA2; Tue, 30 Apr 2024 09:18:34 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 11/27] context_tracking, rcu: Rename ct_dynticks_nmi_nesting_cpu() into ct_nmi_nesting_cpu() Date: Tue, 30 Apr 2024 11:17:15 +0200 Message-ID: <20240430091740.1826862-12-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/rcu/tree_stall.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index 8f32fe599c5c0..34fd504e53a86 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -92,7 +92,7 @@ static __always_inline long ct_nmi_nesting(void) return __this_cpu_read(context_tracking.nmi_nesting); } =20 -static __always_inline long ct_dynticks_nmi_nesting_cpu(int cpu) +static __always_inline long ct_nmi_nesting_cpu(int cpu) { struct context_tracking *ct =3D per_cpu_ptr(&context_tracking, cpu); =20 diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index d8e5b49e65565..6cb346952e3e4 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -516,7 +516,7 @@ static void print_cpu_stall_info(int cpu) "!."[!delta], ticks_value, ticks_title, rcu_dynticks_snap(cpu) & 0xffff, - ct_nesting_cpu(cpu), ct_dynticks_nmi_nesting_cpu(cpu), + ct_nesting_cpu(cpu), ct_nmi_nesting_cpu(cpu), rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu), data_race(rcu_state.n_force_qs) - rcu_state.n_force_qs_gpstart, rcuc_starved ? buf : "", --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 86BA9199E9B for ; Tue, 30 Apr 2024 09:18:46 +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=1714468728; cv=none; b=JFHe7aK0+CuvXNThpOYZnfyChkVmy2+w/XsUwLg3eG4DEe28EE+mSV4xzl6P4fYcon2SpEDB4jxxQ6n35WVTMi8NS+h6QfZvFXy2XbYodE4P92qUeQbl5lxVYcXfAbaDkdLmkEfTCnY66QIM8pRYxYvGAhgMygFjoJGAgtRWUsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468728; c=relaxed/simple; bh=bgq56JkDmwg87xb07+GQV5RQnHvgbtHzqhdKAGeRZao=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B0EtrhQ/Go8srTWNqCAn5yUe4NqgTEN0K9amwc6Iz5imI7+IQQSZVEBHocv+Fy6pNiNlxbqFZeH+OrFKP3R81NO/cFbGUxkyDLT8C+qm7CYaJXP37OyUYlgepDw5wm1s9Y9NteLsjL5KnMPKuKcK0Z60zrXXk4e4FMBdKGYuao4= 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=GkzsLeey; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="GkzsLeey" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468725; 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: in-reply-to:in-reply-to:references:references; bh=DV3lYzDfK9nBuWPjI96StBtQfZyWxLcHDIW5433jP/0=; b=GkzsLeeyi9G/YBKp4Jc53MvTA3Gr+QgTHwekJYruI/JFJK6yAmOfZrdjOTNmz5WcwGAo7g usCYxu0gj3BnScvDcaPZMkOt5eXvSrPdxYkBaDRhq+Pe2MzaBGNCZ63oBO9h7gkjRzp0gR WVH2VGEITwfarxFHkCxJ6kMgyigxgBg= 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-231-JZg_Avr1PNe5rnf1IbGAyQ-1; Tue, 30 Apr 2024 05:18:40 -0400 X-MC-Unique: JZg_Avr1PNe5rnf1IbGAyQ-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 626B888E929; Tue, 30 Apr 2024 09:18:39 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 48DFF492BC7; Tue, 30 Apr 2024 09:18:37 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 12/27] context_tracking, rcu: Rename DYNTICK_IRQ_NONIDLE into CT_NESTING_IRQ_NONIDLE Date: Tue, 30 Apr 2024 11:17:16 +0200 Message-ID: <20240430091740.1826862-13-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking_state.h | 2 +- kernel/context_tracking.c | 8 ++++---- kernel/rcu/tree.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/context_tracking_state.h b/include/linux/context= _tracking_state.h index 34fd504e53a86..0dbda59c9f372 100644 --- a/include/linux/context_tracking_state.h +++ b/include/linux/context_tracking_state.h @@ -7,7 +7,7 @@ #include =20 /* Offset to allow distinguishing irq vs. task-based idle entry/exit. */ -#define DYNTICK_IRQ_NONIDLE ((LONG_MAX / 2) + 1) +#define CT_NESTING_IRQ_NONIDLE ((LONG_MAX / 2) + 1) =20 enum ctx_state { CT_STATE_DISABLED =3D -1, /* returned by ct_state() if unknown */ diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 19e3e0e30a9b2..647939b0befd9 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -29,7 +29,7 @@ DEFINE_PER_CPU(struct context_tracking, context_tracking) =3D { #ifdef CONFIG_CONTEXT_TRACKING_IDLE .nesting =3D 1, - .nmi_nesting =3D DYNTICK_IRQ_NONIDLE, + .nmi_nesting =3D CT_NESTING_IRQ_NONIDLE, #endif .state =3D ATOMIC_INIT(CT_RCU_WATCHING), }; @@ -125,7 +125,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) { struct context_tracking *ct =3D this_cpu_ptr(&context_tracking); =20 - WARN_ON_ONCE(ct_nmi_nesting() !=3D DYNTICK_IRQ_NONIDLE); + WARN_ON_ONCE(ct_nmi_nesting() !=3D CT_NESTING_IRQ_NONIDLE); WRITE_ONCE(ct->nmi_nesting, 0); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && ct_nesting() =3D=3D 0); @@ -156,7 +156,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) * Exit an RCU extended quiescent state, which can be either the * idle loop or adaptive-tickless usermode execution. * - * We crowbar the ->nmi_nesting field to DYNTICK_IRQ_NONIDLE to + * We crowbar the ->nmi_nesting field to CT_NESTING_IRQ_NONIDLE to * allow for the possibility of usermode upcalls messing up our count of * interrupt nesting level during the busy period that is just now startin= g. */ @@ -186,7 +186,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); WRITE_ONCE(ct->nesting, 1); WARN_ON_ONCE(ct_nmi_nesting()); - WRITE_ONCE(ct->nmi_nesting, DYNTICK_IRQ_NONIDLE); + WRITE_ONCE(ct->nmi_nesting, CT_NESTING_IRQ_NONIDLE); instrumentation_end(); } =20 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index f5b1d83cdef85..d8f89bc573448 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -598,7 +598,7 @@ void rcu_irq_exit_check_preempt(void) RCU_LOCKDEP_WARN(ct_nesting() <=3D 0, "RCU nesting counter underflow/zero!"); RCU_LOCKDEP_WARN(ct_nmi_nesting() !=3D - DYNTICK_IRQ_NONIDLE, + CT_NESTING_IRQ_NONIDLE, "Bad RCU nmi_nesting counter\n"); RCU_LOCKDEP_WARN(rcu_dynticks_curr_cpu_in_eqs(), "RCU in extended quiescent state!"); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 72EAF19DF71 for ; Tue, 30 Apr 2024 09:18:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468732; cv=none; b=AoNkULvBSDmaFZShz+K9lSr96vH/wsUVt9IntfPr5AlSmjh8Z5Z07bVVCbastnIB+Tw2NO7/YnXB4mqO5qTn0VcDfFMPuRbi3YWkzpsozX9ndszKnzWCI30PabqhdT6kHqPI+BdO63fDMZv749jSepcCO898tUoNGjNA19lgbO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468732; c=relaxed/simple; bh=Pe8SeQspcQPq95W+iIrjpfycVYHkHPOSxqcBfu4GPzs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mTvNV6EcqGVe5xZ1gpcRXMbIwVsV7+U+TRhglbk1QoyXbpmwiByDr+G5LB5HiZZHbdX8J1XelhQegyjvCAjmPfTTvsilj6jRfjrehCGARAIp91zM7OzeIu+xY9ecRJpIgJSzzu7qPJyE+Mt5YvwMuH7lM3wQPlyAoDT427YPDr4= 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=JJjXl+hr; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="JJjXl+hr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468729; 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: in-reply-to:in-reply-to:references:references; bh=d8awsJgtclw2OlTdFfSQcYC+8CDBAdIkV2xcq1bwbmE=; b=JJjXl+hr8JZ0dlkGKA1u/D2IraaEiOjvf5gLV8BlAJFKXHTrFeBsFv3dFYF8eKyrMvms4e 36EIT6Lfev+lhpa+HXn4ikKxLWXCuDnzKa928P4+wc8pXb3LGm9LEyMGQP55d0qDXUOMUA AnsbmGsX7aGgqRvlRiTbIpWxqxk+e8M= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-352-0GGxrRm_N9y32oiF2ibSyg-1; Tue, 30 Apr 2024 05:18:42 -0400 X-MC-Unique: 0GGxrRm_N9y32oiF2ibSyg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 38C523806729; Tue, 30 Apr 2024 09:18:42 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9FDF6492BC7; Tue, 30 Apr 2024 09:18:39 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 13/27] context_tracking, rcu: Rename rcu_dynticks_task*() into rcu_task*() Date: Tue, 30 Apr 2024 11:17:17 +0200 Message-ID: <20240430091740.1826862-14-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Suggested-by: Frederic Weisbecker Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- kernel/context_tracking.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 647939b0befd9..9c8f7b9191cd4 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -39,7 +39,7 @@ EXPORT_SYMBOL_GPL(context_tracking); #define TPS(x) tracepoint_string(x) =20 /* Record the current task on dyntick-idle entry. */ -static __always_inline void rcu_dynticks_task_enter(void) +static __always_inline void rcu_task_enter(void) { #if defined(CONFIG_TASKS_RCU) && defined(CONFIG_NO_HZ_FULL) WRITE_ONCE(current->rcu_tasks_idle_cpu, smp_processor_id()); @@ -47,7 +47,7 @@ static __always_inline void rcu_dynticks_task_enter(void) } =20 /* Record no current task on dyntick-idle exit. */ -static __always_inline void rcu_dynticks_task_exit(void) +static __always_inline void rcu_task_exit(void) { #if defined(CONFIG_TASKS_RCU) && defined(CONFIG_NO_HZ_FULL) WRITE_ONCE(current->rcu_tasks_idle_cpu, -1); @@ -55,7 +55,7 @@ static __always_inline void rcu_dynticks_task_exit(void) } =20 /* Turn on heavyweight RCU tasks trace readers on idle/user entry. */ -static __always_inline void rcu_dynticks_task_trace_enter(void) +static __always_inline void rcu_task_trace_enter(void) { #ifdef CONFIG_TASKS_TRACE_RCU if (IS_ENABLED(CONFIG_TASKS_TRACE_RCU_READ_MB)) @@ -64,7 +64,7 @@ static __always_inline void rcu_dynticks_task_trace_enter= (void) } =20 /* Turn off heavyweight RCU tasks trace readers on idle/user exit. */ -static __always_inline void rcu_dynticks_task_trace_exit(void) +static __always_inline void rcu_task_trace_exit(void) { #ifdef CONFIG_TASKS_TRACE_RCU if (IS_ENABLED(CONFIG_TASKS_TRACE_RCU_READ_MB)) @@ -87,7 +87,7 @@ static noinstr void ct_kernel_exit_state(int offset) * critical sections, and we also must force ordering with the * next idle sojourn. */ - rcu_dynticks_task_trace_enter(); // Before ->dynticks update! + rcu_task_trace_enter(); // Before ->dynticks update! seq =3D ct_state_inc(offset); // RCU is no longer watching. Better be in extended quiescent state! WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && (seq & CT_RCU_WATCHING)); @@ -109,7 +109,7 @@ static noinstr void ct_kernel_enter_state(int offset) */ seq =3D ct_state_inc(offset); // RCU is now watching. Better not be in an extended quiescent state! - rcu_dynticks_task_trace_exit(); // After ->dynticks update! + rcu_task_trace_exit(); // After ->dynticks update! WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !(seq & CT_RCU_WATCHING)= ); } =20 @@ -149,7 +149,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) // RCU is watching here ... ct_kernel_exit_state(offset); // ... but is no longer watching here. - rcu_dynticks_task_enter(); + rcu_task_enter(); } =20 /* @@ -173,7 +173,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) ct->nesting++; return; } - rcu_dynticks_task_exit(); + rcu_task_exit(); // RCU is not watching here ... ct_kernel_enter_state(offset); // ... but is watching here. @@ -240,7 +240,7 @@ void noinstr ct_nmi_exit(void) // ... but is no longer watching here. =20 if (!in_nmi()) - rcu_dynticks_task_enter(); + rcu_task_enter(); } =20 /** @@ -274,7 +274,7 @@ void noinstr ct_nmi_enter(void) if (rcu_dynticks_curr_cpu_in_eqs()) { =20 if (!in_nmi()) - rcu_dynticks_task_exit(); + rcu_task_exit(); =20 // RCU is not watching here ... ct_kernel_enter_state(CT_RCU_WATCHING); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 29E621BED7C for ; Tue, 30 Apr 2024 09:18:54 +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=1714468735; cv=none; b=e0NFAOReQGSayI2raksQEJivhXdsWdFi5Uq/5/SQggs/8Nb3Xfh5CBP4woUkT8WlvYBDjM2DZC4Viv5Ii64/56Qav9XC5WyQh3DNg350ecBge8dHoMoRDeGHLvf1DSfNXfTz0mk+GSGHWqy3yRPyoiOOO7KPc5fNZoZjslQ44cs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468735; c=relaxed/simple; bh=rdwNE4TivoWSLkLZ0FAD1O9FFZJKd8QQYOGbXyhpCkg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fqkf/NCzNrtwOIe+jFNgSMWZnJ1iwMXRGMed1p99ZDWZqCxq9p7nKQlLX/KACPjCKnyS2g+vD6DTT7kyq2gNmGNURuhI3no+i7mxjoR6jZQzC3oq9FKMdG1Q1XwCVfGiEicrpzmRd1CtqaHKPb+gWMFPFQlGNtxcwNmv0uMTx9s= 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=Zm2ntcXt; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Zm2ntcXt" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468733; 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: in-reply-to:in-reply-to:references:references; bh=yFvEhpDaXmg9BXMihL4YArPI3eFmOuObqd6gNO/1dYU=; b=Zm2ntcXt7/4hf4QQ0qQwLT+CrUxmqAD6tOyHDEcjJgb46/aHkurm+iazXR7u5t5PauNkBh gz7NcAIJ9yz7dpivsJkAQw2oO10caTyNWv+n8SPzkuJHrn22NBZua5bpPcukSayWwTUefI XYmktD4x7RZ1ugcmf+ZSty7kAFt+h0c= 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-593-bIDlG8WmPRyFIlnRIz9QIw-1; Tue, 30 Apr 2024 05:18:45 -0400 X-MC-Unique: bIDlG8WmPRyFIlnRIz9QIw-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 20437800CA2; Tue, 30 Apr 2024 09:18:45 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9823D477F81; Tue, 30 Apr 2024 09:18:42 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 14/27] context_tracking, rcu: Rename rcu_dynticks_curr_cpu_in_eqs() into rcu_watching_curr_cpu() Date: Tue, 30 Apr 2024 11:17:18 +0200 Message-ID: <20240430091740.1826862-15-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Note that "watching" is the opposite of "in EQS", so the negation is lifted out of the helper and into the callsites. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/context_tracking.h | 12 ++++++++---- kernel/context_tracking.c | 6 +++--- kernel/rcu/tree.c | 6 +++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/linux/context_tracking.h b/include/linux/context_track= ing.h index a6c36780cc3bd..d53092ffa9dba 100644 --- a/include/linux/context_tracking.h +++ b/include/linux/context_tracking.h @@ -113,13 +113,17 @@ extern void ct_idle_enter(void); extern void ct_idle_exit(void); =20 /* - * Is the current CPU in an extended quiescent state? + * Is RCU watching the current CPU (IOW, it is not in an extended quiescen= t state)? + * + * Note that this returns the actual boolean data (watching / not watching= ), + * whereas ct_rcu_watching() returns the RCU_WATCHING subvariable of + * context_tracking.state. * * No ordering, as we are sampling CPU-local information. */ -static __always_inline bool rcu_dynticks_curr_cpu_in_eqs(void) +static __always_inline bool rcu_is_watching_curr_cpu(void) { - return !(raw_atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_RCU_= WATCHING); + return raw_atomic_read(this_cpu_ptr(&context_tracking.state)) & CT_RCU_WA= TCHING; } =20 /* @@ -140,7 +144,7 @@ static __always_inline bool warn_rcu_enter(void) * lots of the actual reporting also relies on RCU. */ preempt_disable_notrace(); - if (rcu_dynticks_curr_cpu_in_eqs()) { + if (!rcu_is_watching_curr_cpu()) { ret =3D true; ct_state_inc(CT_RCU_WATCHING); } diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 9c8f7b9191cd4..e82f19bab9ed9 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -212,7 +212,7 @@ void noinstr ct_nmi_exit(void) * to us!) */ WARN_ON_ONCE(ct_nmi_nesting() <=3D 0); - WARN_ON_ONCE(rcu_dynticks_curr_cpu_in_eqs()); + WARN_ON_ONCE(!rcu_is_watching_curr_cpu()); =20 /* * If the nesting level is not 1, the CPU wasn't RCU-idle, so @@ -271,7 +271,7 @@ void noinstr ct_nmi_enter(void) * to be in the outermost NMI handler that interrupted an RCU-idle * period (observation due to Andy Lutomirski). */ - if (rcu_dynticks_curr_cpu_in_eqs()) { + if (!rcu_is_watching_curr_cpu()) { =20 if (!in_nmi()) rcu_task_exit(); @@ -281,7 +281,7 @@ void noinstr ct_nmi_enter(void) // ... but is watching here. =20 instrumentation_begin(); - // instrumentation for the noinstr rcu_dynticks_curr_cpu_in_eqs() + // instrumentation for the noinstr rcu_is_watching_curr_cpu() instrument_atomic_read(&ct->state, sizeof(ct->state)); // instrumentation for the noinstr ct_kernel_enter_state() instrument_atomic_write(&ct->state, sizeof(ct->state)); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index d8f89bc573448..bb0d9dd8b6d3a 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -600,7 +600,7 @@ void rcu_irq_exit_check_preempt(void) RCU_LOCKDEP_WARN(ct_nmi_nesting() !=3D CT_NESTING_IRQ_NONIDLE, "Bad RCU nmi_nesting counter\n"); - RCU_LOCKDEP_WARN(rcu_dynticks_curr_cpu_in_eqs(), + RCU_LOCKDEP_WARN(!rcu_is_watching_curr_cpu(), "RCU in extended quiescent state!"); } #endif /* #ifdef CONFIG_PROVE_RCU */ @@ -640,7 +640,7 @@ void __rcu_irq_enter_check_tick(void) if (in_nmi()) return; =20 - RCU_LOCKDEP_WARN(rcu_dynticks_curr_cpu_in_eqs(), + RCU_LOCKDEP_WARN(!rcu_is_watching_curr_cpu(), "Illegal rcu_irq_enter_check_tick() from extended quiescent state"); =20 if (!tick_nohz_full_cpu(rdp->cpu) || @@ -722,7 +722,7 @@ notrace bool rcu_is_watching(void) bool ret; =20 preempt_disable_notrace(); - ret =3D !rcu_dynticks_curr_cpu_in_eqs(); + ret =3D rcu_is_watching_curr_cpu(); preempt_enable_notrace(); return ret; } --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 C68891BED6D for ; Tue, 30 Apr 2024 09:18:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468735; cv=none; b=a/ORxvEaDLaz1J6JT2hKzgV9OMmqpmRla0sF7Ci7W8yez9wh5ozid1RhiAh6+nLGQDBQ6vLF0iv17bKHRwHpXZjRzgiMCjCKYlWDlj3SmfyHU9W2xTdeM2eaKfOeZ0blA1WZqDgDy7RcFv+Y8ubbNUFeoqgSVmk8oelz1ufsYYU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468735; c=relaxed/simple; bh=pXYuBf/no3D++5JfAuxUjhyr9k0cvSL2Fvh5M9LRvfs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b+p4hWKJhn5uZQ06MmCFbn10+SIMrCzjOM7QVfVUVgK57FG8Nxw3qBfnnGnTW+8G2WVdY7VQSw2UcSjbFIMwwJx3pfTrnQQPdIqxT6bIMY73C0/JKaaNPOhcagD0vqftrhX73NdK6IfqUnPAhEilli94VCTq6TrAgus31k/c96w= 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=Z+Bl4Hd/; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Z+Bl4Hd/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468732; 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: in-reply-to:in-reply-to:references:references; bh=0Acnvg5m0QI7jC0qpMYe1ycEQuPijsttmR1AejYIGro=; b=Z+Bl4Hd/UoSOUnn6tiRCpc4XSvnorsHzXcnN26RA5+COA/7Dlgu3s+vogilL1TAxynrr/v IZa2+PYLOa0vfDgFzhlFWhzMwqYK6OB7oxqvNDj6HfX7PcPsIvsaxT4zgbrl9ZIXLfZZso vwntFOKmpNsaLSasA/v/HAnw7jWKSaU= 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-640-upcu8rZ-O5C6VeIGzzUM_A-1; Tue, 30 Apr 2024 05:18:48 -0400 X-MC-Unique: upcu8rZ-O5C6VeIGzzUM_A-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 C5AA78032FA; Tue, 30 Apr 2024 09:18:47 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5D77A492BC7; Tue, 30 Apr 2024 09:18:45 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 15/27] rcu: Rename rcu_dynticks_eqs_online() into rcu_watching_eqs_online() Date: Tue, 30 Apr 2024 11:17:19 +0200 Message-ID: <20240430091740.1826862-16-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider --- kernel/rcu/tree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index bb0d9dd8b6d3a..fe2beb7d2e82d 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -280,7 +280,7 @@ void rcu_softirq_qs(void) } =20 /* - * Reset the current CPU's ->dynticks counter to indicate that the + * Reset the current CPU's RCU_WATCHING counter to indicate that the * newly onlined CPU is no longer in an extended quiescent state. * This will either leave the counter unchanged, or increment it * to the next non-quiescent value. @@ -289,7 +289,7 @@ void rcu_softirq_qs(void) * of the ->dynticks counter are manipulated only by the corresponding CPU, * or when the corresponding CPU is offline. */ -static void rcu_dynticks_eqs_online(void) +static void rcu_watching_eqs_online(void) { if (ct_rcu_watching() & CT_RCU_WATCHING) return; @@ -5051,7 +5051,7 @@ void rcutree_report_cpu_starting(unsigned int cpu) rnp =3D rdp->mynode; mask =3D rdp->grpmask; arch_spin_lock(&rcu_state.ofl_lock); - rcu_dynticks_eqs_online(); + rcu_watching_eqs_online(); raw_spin_lock(&rcu_state.barrier_lock); raw_spin_lock_rcu_node(rnp); WRITE_ONCE(rnp->qsmaskinitnext, rnp->qsmaskinitnext | mask); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 A41471BED8D for ; Tue, 30 Apr 2024 09:18:54 +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=1714468736; cv=none; b=RlYFNhPYP2i+Qla0PTN4UxIouQFzPGOBC/eSLnvmq/vSDw+WK5RwEjwURLJ8tfIzFhvVt3fQ2IUPiNnYSBZ2St5gYQ1iXcnww0FHO/QYDPihknKFSQCv0aI5ILQ4T90f8Z8FKvlOazUCD2nPW5Dls1aKZ1+iOK0GajSJ0gXCN1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468736; c=relaxed/simple; bh=U3Cy4NttbHi2BkaO4bm1GlKkF0GkSotWS5a6h24aid0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BZeHnTNg8qJU17AmaNyIWbgoK3c+LP5YxS9K1VTHKsexePEMnRDh1rtSqZ8rgpl/SsN/El7rFSBBCsJdTs4jkw43XaVdc8ZJjCJnYpHjxnD9X9/bPTC8PKUR5Rzn4bi6RhPxfSngCjVU5fL4ZGixoiq+vRfhWMA5CCHo4xEUiDE= 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=h3W6h0Ig; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="h3W6h0Ig" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468733; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DfLwZxi1mDBGY6ll5+O6iAeszW6M/8q1eCE20JHCrDo=; b=h3W6h0Igq1t/2MCU/3VrmBHnK35I0Edu84cB9HDVhd6gc5H3gnpRrnwgM9hP4bJmNfPiRq URrciwQ+95bh5HVGx26ssZu4ebJnTllRQM1szluKkrG9IIS3YI8pDB1qxf5mdoVRU3bUE9 A4Ovqb56O+I4OqOXfgittq2sbrr/YtQ= 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-645-adXFX0PNPPqOo7E4cJ8GEg-1; Tue, 30 Apr 2024 05:18:51 -0400 X-MC-Unique: adXFX0PNPPqOo7E4cJ8GEg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 23391104B508; Tue, 30 Apr 2024 09:18:51 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 25C9840C5C2; Tue, 30 Apr 2024 09:18:47 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 16/27] rcu: Rename rcu_dynticks_snap() into rcu_watching_snap() Date: Tue, 30 Apr 2024 11:17:20 +0200 Message-ID: <20240430091740.1826862-17-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- .../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 2 +- kernel/rcu/tree.c | 16 ++++++++-------- kernel/rcu/tree_exp.h | 2 +- kernel/rcu/tree_stall.h | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Order= ing.rst b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering= .rst index 5750f125361b0..e8ef12ca1e9da 100644 --- a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst +++ b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst @@ -149,7 +149,7 @@ This case is handled by calls to the strongly ordered ``atomic_add_return()`` read-modify-write atomic operation that is invoked within ``rcu_dynticks_eqs_enter()`` at idle-entry time and within ``rcu_dynticks_eqs_exit()`` at idle-exit time. -The grace-period kthread invokes ``rcu_dynticks_snap()`` and +The grace-period kthread invokes ``rcu_watching_snap()`` and ``rcu_dynticks_in_eqs_since()`` (both of which invoke an ``atomic_add_return()`` of zero) to detect idle CPUs. =20 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index fe2beb7d2e82d..857c2565efeac 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -297,17 +297,17 @@ static void rcu_watching_eqs_online(void) } =20 /* - * Snapshot the ->dynticks counter with full ordering so as to allow + * Snapshot the RCU_WATCHING counter with full ordering so as to allow * stable comparison of this counter with past and future snapshots. */ -static int rcu_dynticks_snap(int cpu) +static int rcu_watching_snap(int cpu) { smp_mb(); // Fundamental RCU ordering guarantee. return ct_rcu_watching_cpu_acquire(cpu); } =20 /* - * Return true if the snapshot returned from rcu_dynticks_snap() + * Return true if the snapshot returned from rcu_watching_snap() * indicates that RCU is in an extended quiescent state. */ static bool rcu_dynticks_in_eqs(int snap) @@ -318,11 +318,11 @@ static bool rcu_dynticks_in_eqs(int snap) /* * Return true if the CPU corresponding to the specified rcu_data * structure has spent some time in an extended quiescent state since - * rcu_dynticks_snap() returned the specified snapshot. + * rcu_watching_snap() returned the specified snapshot. */ static bool rcu_dynticks_in_eqs_since(struct rcu_data *rdp, int snap) { - return snap !=3D rcu_dynticks_snap(rdp->cpu); + return snap !=3D rcu_watching_snap(rdp->cpu); } =20 /* @@ -770,7 +770,7 @@ static void rcu_gpnum_ovf(struct rcu_node *rnp, struct = rcu_data *rdp) */ static int dyntick_save_progress_counter(struct rcu_data *rdp) { - rdp->dynticks_snap =3D rcu_dynticks_snap(rdp->cpu); + rdp->dynticks_snap =3D rcu_watching_snap(rdp->cpu); if (rcu_dynticks_in_eqs(rdp->dynticks_snap)) { trace_rcu_fqs(rcu_state.name, rdp->gp_seq, rdp->cpu, TPS("dti")); rcu_gpnum_ovf(rdp->mynode, rdp); @@ -2185,7 +2185,7 @@ static noinline void rcu_gp_cleanup(void) =20 // We get here either if there is no need for an // additional grace period or if rcu_accelerate_cbs() has - // already set the RCU_GP_FLAG_INIT bit in ->gp_flags.=C2=A0 + // already set the RCU_GP_FLAG_INIT bit in ->gp_flags. // So all we need to do is to clear all of the other // ->gp_flags bits. =20 @@ -4798,7 +4798,7 @@ rcu_boot_init_percpu_data(int cpu) rdp->grpmask =3D leaf_node_cpu_bit(rdp->mynode, cpu); INIT_WORK(&rdp->strict_work, strict_work_handler); WARN_ON_ONCE(ct->nesting !=3D 1); - WARN_ON_ONCE(rcu_dynticks_in_eqs(rcu_dynticks_snap(cpu))); + WARN_ON_ONCE(rcu_dynticks_in_eqs(rcu_watching_snap(cpu))); rdp->barrier_seq_snap =3D rcu_state.barrier_sequence; rdp->rcu_ofl_gp_seq =3D rcu_state.gp_seq; rdp->rcu_ofl_gp_state =3D RCU_GP_CLEANED; diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h index 8a1d9c8bd9f74..50ec57304c1b7 100644 --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -357,7 +357,7 @@ static void __sync_rcu_exp_select_node_cpus(struct rcu_= exp_work *rewp) !(rnp->qsmaskinitnext & mask)) { mask_ofl_test |=3D mask; } else { - snap =3D rcu_dynticks_snap(cpu); + snap =3D rcu_watching_snap(cpu); if (rcu_dynticks_in_eqs(snap)) mask_ofl_test |=3D mask; else diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index 6cb346952e3e4..4fa23f9fc207f 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -501,7 +501,7 @@ static void print_cpu_stall_info(int cpu) } delta =3D rcu_seq_ctr(rdp->mynode->gp_seq - rdp->rcu_iw_gp_seq); falsepositive =3D rcu_is_gp_kthread_starving(NULL) && - rcu_dynticks_in_eqs(rcu_dynticks_snap(cpu)); + rcu_dynticks_in_eqs(rcu_watching_snap(cpu)); rcuc_starved =3D rcu_is_rcuc_kthread_starving(rdp, &j); if (rcuc_starved) // Print signed value, as negative values indicate a probable bug. @@ -515,7 +515,7 @@ static void print_cpu_stall_info(int cpu) rdp->rcu_iw_pending ? (int)min(delta, 9UL) + '0' : "!."[!delta], ticks_value, ticks_title, - rcu_dynticks_snap(cpu) & 0xffff, + rcu_watching_snap(cpu) & 0xffff, ct_nesting_cpu(cpu), ct_nmi_nesting_cpu(cpu), rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu), data_race(rcu_state.n_force_qs) - rcu_state.n_force_qs_gpstart, --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 8863C1C2304 for ; Tue, 30 Apr 2024 09:18:59 +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=1714468740; cv=none; b=j1/1DKbjn+JPcLcpt/x4ASOHJ40GlCkVBuh2+MyTSj0x7JS/WX4ukjk5rJ2uAO3qJWCfIBY6zQuBqVJt+SV5RmVyTEaBZmiRuGmV5nR4j9ASjgVPkVkPgJYNC743lba3+8SV63hBWjfXM+Aj7mj2ahqWE4+Yg34Q8Nxj9lowJvM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468740; c=relaxed/simple; bh=DYnXJHD9kJ9V1r0+3XVdouBDhuhgaU3D2u8eA1TSSOI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uToBjEYuHeQlLnIrTGvSsfTkCWEI1ooZ/Hk5f9gTwzhQgLx2Q+CZ7p6uPNE2HR6+ksV5sKb6gQ7uWxRoRFJiJP9i+lrNA04voF7mUBUokEUv3MM6zO1po1SbuEUnZ3OO9xMuQoahdxn91ODA4KcUyH76I1+TfidIYlY8E1e3ecg= 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=UFnUfh6P; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="UFnUfh6P" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468738; 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: in-reply-to:in-reply-to:references:references; bh=7iJ+HhpR5xS1NIdRXohsDpAsZ+ySrJwbYzJ1VO+vaqM=; b=UFnUfh6PHGTeNolyCdDGnku477ldgC2mYG+qXkSpetBJYYRExv5uwCObK5MUf2nYndOlWs /rXXtBzZ31Ub8gdNVhgMa/bmc/4FpMCCZBpR4ewN43EF11UU/eHk4xgFiI6Y33SZ0cPmIP JM37ZlRuIXZrmdiRW0soBlzDqA66T/s= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-557-xATXoSjZMLeETUBX2KF7LA-1; Tue, 30 Apr 2024 05:18:55 -0400 X-MC-Unique: xATXoSjZMLeETUBX2KF7LA-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 346FB1C0AF42; Tue, 30 Apr 2024 09:18:54 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 69271492BC7; Tue, 30 Apr 2024 09:18:51 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 17/27] rcu: Rename rcu_dynticks_in_eqs() into rcu_watching_in_eqs() Date: Tue, 30 Apr 2024 11:17:21 +0200 Message-ID: <20240430091740.1826862-18-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- kernel/rcu/tree.c | 8 ++++---- kernel/rcu/tree_exp.h | 2 +- kernel/rcu/tree_stall.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 857c2565efeac..d772755ccd564 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -308,9 +308,9 @@ static int rcu_watching_snap(int cpu) =20 /* * Return true if the snapshot returned from rcu_watching_snap() - * indicates that RCU is in an extended quiescent state. + * indicates that RCU in an extended quiescent state (not watching). */ -static bool rcu_dynticks_in_eqs(int snap) +static bool rcu_watching_in_eqs(int snap) { return !(snap & CT_RCU_WATCHING); } @@ -771,7 +771,7 @@ static void rcu_gpnum_ovf(struct rcu_node *rnp, struct = rcu_data *rdp) static int dyntick_save_progress_counter(struct rcu_data *rdp) { rdp->dynticks_snap =3D rcu_watching_snap(rdp->cpu); - if (rcu_dynticks_in_eqs(rdp->dynticks_snap)) { + if (rcu_watching_in_eqs(rdp->dynticks_snap)) { trace_rcu_fqs(rcu_state.name, rdp->gp_seq, rdp->cpu, TPS("dti")); rcu_gpnum_ovf(rdp->mynode, rdp); return 1; @@ -4798,7 +4798,7 @@ rcu_boot_init_percpu_data(int cpu) rdp->grpmask =3D leaf_node_cpu_bit(rdp->mynode, cpu); INIT_WORK(&rdp->strict_work, strict_work_handler); WARN_ON_ONCE(ct->nesting !=3D 1); - WARN_ON_ONCE(rcu_dynticks_in_eqs(rcu_watching_snap(cpu))); + WARN_ON_ONCE(rcu_watching_in_eqs(rcu_watching_snap(cpu))); rdp->barrier_seq_snap =3D rcu_state.barrier_sequence; rdp->rcu_ofl_gp_seq =3D rcu_state.gp_seq; rdp->rcu_ofl_gp_state =3D RCU_GP_CLEANED; diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h index 50ec57304c1b7..68dea1427c8bd 100644 --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -358,7 +358,7 @@ static void __sync_rcu_exp_select_node_cpus(struct rcu_= exp_work *rewp) mask_ofl_test |=3D mask; } else { snap =3D rcu_watching_snap(cpu); - if (rcu_dynticks_in_eqs(snap)) + if (rcu_watching_in_eqs(snap)) mask_ofl_test |=3D mask; else rdp->exp_dynticks_snap =3D snap; diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index 4fa23f9fc207f..589f1be8ff921 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -501,7 +501,7 @@ static void print_cpu_stall_info(int cpu) } delta =3D rcu_seq_ctr(rdp->mynode->gp_seq - rdp->rcu_iw_gp_seq); falsepositive =3D rcu_is_gp_kthread_starving(NULL) && - rcu_dynticks_in_eqs(rcu_watching_snap(cpu)); + rcu_watching_in_eqs(rcu_watching_snap(cpu)); rcuc_starved =3D rcu_is_rcuc_kthread_starving(rdp, &j); if (rcuc_starved) // Print signed value, as negative values indicate a probable bug. --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 39F9A128386 for ; Tue, 30 Apr 2024 09:19:06 +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=1714468747; cv=none; b=PUblx4vgnR9RsrbGiAnzLeD9ZiQaPjfSGCELNmB5oB5QGHzgAm8Y47wul6iW3CdMWWqm+CoXBg6/BtBh9wRYBQcxEaFP3uKoThelBCNIUprBDck+0RZSK3sdX2qqRv7phS/6n/qGg9XK7HcZjE7nxHvvw0PZjWqYd9LWqNMhsb0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468747; c=relaxed/simple; bh=BsJk+liTzIzW69boAdwlOQV0R2xJ8wtypfxZk2CcWdE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iVFWFzZeV7uCvDI+Iss84oXBskCRSz7tsz8Rmor08lxCoa+tPm2d4V4zdGgBCtyWDvR1fwoDh4UyEaiT1Ng8O9nl3SA7x7afEd6mvbncZ+pysD53ACmmQbmWMNFYZCZUqQ/vdeqEM5Qjcc0HpvJKxsFqNLuk3UKzqdScdBFKm5E= 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=f7S5c29c; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="f7S5c29c" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468745; 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: in-reply-to:in-reply-to:references:references; bh=6tazCG65QB+fPDOoSPBMWm4LU9sDgor8juKoVvi5V8I=; b=f7S5c29cKVwj6q9lA8Zh1wYgIws7YZd/d1xeudiUf82E1496UJ8D3+nblB4l+RKvmdH9Cm DMzbgPACrc1kg08kCLXIBSp25P7jx8USFPSvZQmWqwp5VReYHuz6BsZ9g9Hw3SfB63eFQU Ku2uOASZ5UFP/ZkZVN4wr7XaUPhKYNY= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-577-yFJlcC9CM0Ocls4lEBT9MA-1; Tue, 30 Apr 2024 05:18:57 -0400 X-MC-Unique: yFJlcC9CM0Ocls4lEBT9MA-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 D5FB229ABA10; Tue, 30 Apr 2024 09:18:56 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6D2BB40C5C2; Tue, 30 Apr 2024 09:18:54 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 18/27] rcu: Rename rcu_dynticks_in_eqs_since() into rcu_watching_changed_since() Date: Tue, 30 Apr 2024 11:17:22 +0200 Message-ID: <20240430091740.1826862-19-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, the dynticks prefix can go. Furthermore, the "in_eqs_since" part confuses me, as IIUC this only checks for a change in watching/eqs state, not that RCU transitionned *into* a EQS after the snapshot was taken. e.g. if snap =3D 0b1000 (EQS) and the following rcu_watching_snap(CPU) is: 0b1100 (watching) then rcu_watching_in_eqs_since(rdp, snap) -> true but because RCU was already in EQS at the time of the snap - it hasn't entered EQS "since" the snap was taken. Update the name to reflect that we're only looking at watching/EQS transitions, not specifically transitions into EQS. Signed-off-by: Valentin Schneider --- .../RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 2 +- kernel/rcu/tree.c | 4 ++-- kernel/rcu/tree_exp.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Order= ing.rst b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering= .rst index e8ef12ca1e9da..0533814a1f69a 100644 --- a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst +++ b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst @@ -150,7 +150,7 @@ This case is handled by calls to the strongly ordered is invoked within ``rcu_dynticks_eqs_enter()`` at idle-entry time and within ``rcu_dynticks_eqs_exit()`` at idle-exit time. The grace-period kthread invokes ``rcu_watching_snap()`` and -``rcu_dynticks_in_eqs_since()`` (both of which invoke +``rcu_watching_changed_since()`` (both of which invoke an ``atomic_add_return()`` of zero) to detect idle CPUs. =20 +-----------------------------------------------------------------------+ diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index d772755ccd564..ffcde8203c04f 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -320,7 +320,7 @@ static bool rcu_watching_in_eqs(int snap) * structure has spent some time in an extended quiescent state since * rcu_watching_snap() returned the specified snapshot. */ -static bool rcu_dynticks_in_eqs_since(struct rcu_data *rdp, int snap) +static bool rcu_watching_changed_since(struct rcu_data *rdp, int snap) { return snap !=3D rcu_watching_snap(rdp->cpu); } @@ -803,7 +803,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rd= p) * read-side critical section that started before the beginning * of the current RCU grace period. */ - if (rcu_dynticks_in_eqs_since(rdp, rdp->dynticks_snap)) { + if (rcu_watching_changed_since(rdp, rdp->dynticks_snap)) { trace_rcu_fqs(rcu_state.name, rdp->gp_seq, rdp->cpu, TPS("dti")); rcu_gpnum_ovf(rnp, rdp); return 1; diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h index 68dea1427c8bd..4046fae99517e 100644 --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -381,7 +381,7 @@ static void __sync_rcu_exp_select_node_cpus(struct rcu_= exp_work *rewp) unsigned long mask =3D rdp->grpmask; =20 retry_ipi: - if (rcu_dynticks_in_eqs_since(rdp, rdp->exp_dynticks_snap)) { + if (rcu_watching_changed_since(rdp, rdp->exp_dynticks_snap)) { mask_ofl_test |=3D mask; continue; } --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 46648129A78 for ; Tue, 30 Apr 2024 09:19:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468748; cv=none; b=PzX9l+0l5jDiVphQ6JVxjQe3mCC9XG/qVw+qSPrJkVRjG/4oqHd1LzPiEguvy2T9Uv4QyMDftG4S1AygXSDTkKg5iuuixdF0z4uRksoSeySncytJ7B9TcOcVINz2q0pmgCddyTMDLDFLyZb841IErTxBlINIe//KJwrkUpy32tc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468748; c=relaxed/simple; bh=pI93azUTfm0jVXFOCYNtFoJdMEXa1fKEn47DRkBcfNU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HOonoXesjdDlNPbEU1q09XoFE71WmWDNRBhathw4o9MaJuHx3VBBEdGD2o0GwUS+BAkVUb38w+XbxypUiAY88GWfWz4/tlKm7wjy4NfEuKzzxhUDLSXm8f78vbUKgczN7e5C+bIEGb5Ny+zxdZ9C58KF0u/hgrHTIkVEgW2/H1M= 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=bpAzqcvH; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="bpAzqcvH" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468746; 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: in-reply-to:in-reply-to:references:references; bh=wZrGeOnL2x3xIe2h4ybjWst5DkuDwK8OYAdVHQUiGNU=; b=bpAzqcvHEnzJZn3rsXtgRmx2O3AslDW4EVROtj9ltXTnmxKejvSA9zKcHAr/JcwSRtgEll xa70fo038SC9RTFIBNgXJnvyDd2B1gq4HngZ9aZyLLW8y/FDYRML+Jio8w3F7hZ+zQAKKh a7DqD42ungbxBf381bCZ0TUqbKdh78U= 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-126-sCkQavtBO52uaAvaJuf5bg-1; Tue, 30 Apr 2024 05:19:00 -0400 X-MC-Unique: sCkQavtBO52uaAvaJuf5bg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 0CDFF88E924; Tue, 30 Apr 2024 09:19:00 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 321CF40C5C3; Tue, 30 Apr 2024 09:18:57 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 19/27] rcu: Rename rcu_dynticks_zero_in_eqs() into rcu_watching_zero_in_eqs() Date: Tue, 30 Apr 2024 11:17:23 +0200 Message-ID: <20240430091740.1826862-20-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, reflect that change in the related helpers. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- kernel/rcu/rcu.h | 4 ++-- kernel/rcu/tasks.h | 2 +- kernel/rcu/tree.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index 38238e595a61a..5564402af4cbd 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h @@ -606,7 +606,7 @@ void srcutorture_get_gp_data(struct srcu_struct *sp, in= t *flags, #endif =20 #ifdef CONFIG_TINY_RCU -static inline bool rcu_dynticks_zero_in_eqs(int cpu, int *vp) { return fal= se; } +static inline bool rcu_watching_zero_in_eqs(int cpu, int *vp) { return fal= se; } static inline unsigned long rcu_get_gp_seq(void) { return 0; } static inline unsigned long rcu_exp_batches_completed(void) { return 0; } static inline unsigned long @@ -619,7 +619,7 @@ static inline void rcu_fwd_progress_check(unsigned long= j) { } static inline void rcu_gp_slow_register(atomic_t *rgssp) { } static inline void rcu_gp_slow_unregister(atomic_t *rgssp) { } #else /* #ifdef CONFIG_TINY_RCU */ -bool rcu_dynticks_zero_in_eqs(int cpu, int *vp); +bool rcu_watching_zero_in_eqs(int cpu, int *vp); unsigned long rcu_get_gp_seq(void); unsigned long rcu_exp_batches_completed(void); unsigned long srcu_batches_completed(struct srcu_struct *sp); diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index e1bf33018e6d5..2a1474c9aaa7d 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -1623,7 +1623,7 @@ static int trc_inspect_reader(struct task_struct *t, = void *bhp_in) // However, we cannot safely change its state. n_heavy_reader_attempts++; // Check for "running" idle tasks on offline CPUs. - if (!rcu_dynticks_zero_in_eqs(cpu, &t->trc_reader_nesting)) + if (!rcu_watching_zero_in_eqs(cpu, &t->trc_reader_nesting)) return -EINVAL; // No quiescent state, do it the hard way. n_heavy_reader_updates++; nesting =3D 0; diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index ffcde8203c04f..d3f3a049904fc 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -329,7 +329,7 @@ static bool rcu_watching_changed_since(struct rcu_data = *rdp, int snap) * Return true if the referenced integer is zero while the specified * CPU remains within a single extended quiescent state. */ -bool rcu_dynticks_zero_in_eqs(int cpu, int *vp) +bool rcu_watching_zero_in_eqs(int cpu, int *vp) { int snap; =20 --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 4ACD8129E7A for ; Tue, 30 Apr 2024 09:19:09 +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=1714468750; cv=none; b=nus1F9FPjvOVHIxBeA5+CoOEFormi9uGIJg8nPeGS25UNickq8E1WynLIJu8dA+f3/9ES1DMMY9EqgxWZvFW8qTsjeoDmNYAsh5pBN90GR1ayvWf2pw/ToBgHtNL0C26ncwLrn1u5OCY/BCICKCDwLthF9vgpxCJKBhIdyTpb2w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468750; c=relaxed/simple; bh=fBp/NmsaAPYn3Q9LmEeHWCL4r9VZ/lDm41uN7wZ/n7E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rjHV6Pw7ke4FXmUOkVNpZGBEBFhQD7N/AlMoIBKGA/91RV2+JllrSlPurt5U5actvl9kdS04LE3fPejj3l6XvuQgXkbRMHDnQxPA1Wnd+RunuazjQ9dXRqNk3eBqjsb6wDG/G+m5AktTqUOEZVSrVbwBnbAdSy9Xd729HsI835Q= 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=Hmw+/hZv; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Hmw+/hZv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468748; 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: in-reply-to:in-reply-to:references:references; bh=jFwfWtoBEea+wl4lNZJkfIY1AL564duSUyUuZY/5YOk=; b=Hmw+/hZvuKqG2X+RFQ2sumKBpiJi2HKCkrs7E2Qvmo8p/EkIP9+Le9G+jnfYY+XP/b7cki QcsoLP6Ddz4NLllAHPf+XF31N30Tt9XwMEAdgeUiRsdri8Ea6Fz/d00M1Xqh8YTZe0ITFp P06XvPKzsYxNKpGAeCMS7CcIFE6NxcI= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-627-FFE2xNfqMduNtc734sLPnw-1; Tue, 30 Apr 2024 05:19:03 -0400 X-MC-Unique: FFE2xNfqMduNtc734sLPnw-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 0CD691C0AF43; Tue, 30 Apr 2024 09:19:03 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6BC88492BC7; Tue, 30 Apr 2024 09:19:00 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 20/27] rcu: Rename struct rcu_data .dynticks_snap into .watching_snap Date: Tue, 30 Apr 2024 11:17:24 +0200 Message-ID: <20240430091740.1826862-21-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the snapshot helpers are now prefix by "rcu_watching". Reflect that change into the storage variables for these snapshots. Signed-off-by: Valentin Schneider --- .../RCU/Design/Data-Structures/Data-Structures.rst | 4 ++-- kernel/rcu/tree.c | 6 +++--- kernel/rcu/tree.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/RCU/Design/Data-Structures/Data-Structures.rst b= /Documentation/RCU/Design/Data-Structures/Data-Structures.rst index 5389cc49bea13..de76c624fe93e 100644 --- a/Documentation/RCU/Design/Data-Structures/Data-Structures.rst +++ b/Documentation/RCU/Design/Data-Structures/Data-Structures.rst @@ -921,10 +921,10 @@ This portion of the ``rcu_data`` structure is declare= d as follows: =20 :: =20 - 1 int dynticks_snap; + 1 int watching_snap; 2 unsigned long dynticks_fqs; =20 -The ``->dynticks_snap`` field is used to take a snapshot of the +The ``->watching_snap`` field is used to take a snapshot of the corresponding CPU's dyntick-idle state when forcing quiescent states, and is therefore accessed from other CPUs. Finally, the ``->dynticks_fqs`` field is used to count the number of times this CPU diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index d3f3a049904fc..73b95240a1a6c 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -770,8 +770,8 @@ static void rcu_gpnum_ovf(struct rcu_node *rnp, struct = rcu_data *rdp) */ static int dyntick_save_progress_counter(struct rcu_data *rdp) { - rdp->dynticks_snap =3D rcu_watching_snap(rdp->cpu); - if (rcu_watching_in_eqs(rdp->dynticks_snap)) { + rdp->watching_snap =3D rcu_watching_snap(rdp->cpu); + if (rcu_watching_in_eqs(rdp->watching_snap)) { trace_rcu_fqs(rcu_state.name, rdp->gp_seq, rdp->cpu, TPS("dti")); rcu_gpnum_ovf(rdp->mynode, rdp); return 1; @@ -803,7 +803,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rd= p) * read-side critical section that started before the beginning * of the current RCU grace period. */ - if (rcu_watching_changed_since(rdp, rdp->dynticks_snap)) { + if (rcu_watching_changed_since(rdp, rdp->watching_snap)) { trace_rcu_fqs(rcu_state.name, rdp->gp_seq, rdp->cpu, TPS("dti")); rcu_gpnum_ovf(rnp, rdp); return 1; diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index affcb92a358c3..ac153e365355d 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -206,7 +206,7 @@ struct rcu_data { long blimit; /* Upper limit on a processed batch */ =20 /* 3) dynticks interface. */ - int dynticks_snap; /* Per-GP tracking for dynticks. */ + int watching_snap; /* Per-GP tracking for dynticks. */ bool rcu_need_heavy_qs; /* GP old, so heavy quiescent state! */ bool rcu_urgent_qs; /* GP old need light quiescent state. */ bool rcu_forced_tick; /* Forced tick to provide QS. */ --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 95E721C688A for ; Tue, 30 Apr 2024 09:19:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468756; cv=none; b=PO/LtvM2BWimogiyA+PqmFIJiDJSR/BCFrBb1XypMRVvrGSZyr1riZ5VUqGBNdHZnerLVUwk2IyIstAvX6UHyiZjZ2nIeVbzrAHXyTmnldep7y8Zbca48X+kw4a9OEAowXP3Rf7GdQ+UkL8IlR4ZVBI7kEdtuyNgqxOVzgwnqCo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468756; c=relaxed/simple; bh=DfCPd4Sm9LK7oXDquhiPePSRCrvD2nPKphDjMObon5c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZQt/L9QEYha6ZUARsolZ3aZ0SAXGirxzZIfPR9dK7DzWKa50ghCQskYV1f2474vjldeFrIwZyll+cpErIBAd3i6Qdy+ZgAXA7WHQNcUEOTzciEqPlamKZ0SKwJUOh4glCA9ksOVaTjxN3ZLxvx1SnoLQ9rXpxRVOips3vrIjC7Q= 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=hTKCEpBu; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="hTKCEpBu" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468753; 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: in-reply-to:in-reply-to:references:references; bh=E/OW8PJUv2MdPGe6JPUa5g7O0zHRLkmoFwJKzdUpl6c=; b=hTKCEpBuGZ2KYRnPPS9ug3FOR668f/oLN1Etf7330a/xRX2IhvpRtlAEEdf+DwM/OA9/aX TUsI3kcqu3EfjVR+OiDozbzpgYy1Z7UjzOtpMoxdMTtlZYVklckLrGfxXITZroZYrYm4Sq C6uE6qeZrMBWqsuzxU88y3lp6aCoDfg= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-320-YoU6loPMNMuK3nsvHyiSCA-1; Tue, 30 Apr 2024 05:19:07 -0400 X-MC-Unique: YoU6loPMNMuK3nsvHyiSCA-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 A6AE03C0252D; Tue, 30 Apr 2024 09:19:05 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4880740C5C3; Tue, 30 Apr 2024 09:19:03 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 21/27] rcu: Rename struct rcu_data .exp_dynticks_snap into .exp_watching_snap Date: Tue, 30 Apr 2024 11:17:25 +0200 Message-ID: <20240430091740.1826862-22-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the snapshot helpers are now prefix by "rcu_watching". Reflect that change into the storage variables for these snapshots. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- kernel/rcu/tree.h | 2 +- kernel/rcu/tree_exp.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index ac153e365355d..d0d6f46f12871 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -215,7 +215,7 @@ struct rcu_data { /* 4) rcu_barrier(), OOM callbacks, and expediting. */ unsigned long barrier_seq_snap; /* Snap of rcu_state.barrier_sequence. */ struct rcu_head barrier_head; - int exp_dynticks_snap; /* Double-check need for IPI. */ + int exp_watching_snap; /* Double-check need for IPI. */ =20 /* 5) Callback offloading. */ #ifdef CONFIG_RCU_NOCB_CPU diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h index 4046fae99517e..d1b80ed7c3d65 100644 --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -361,7 +361,7 @@ static void __sync_rcu_exp_select_node_cpus(struct rcu_= exp_work *rewp) if (rcu_watching_in_eqs(snap)) mask_ofl_test |=3D mask; else - rdp->exp_dynticks_snap =3D snap; + rdp->exp_watching_snap =3D snap; } } mask_ofl_ipi =3D rnp->expmask & ~mask_ofl_test; @@ -381,7 +381,7 @@ static void __sync_rcu_exp_select_node_cpus(struct rcu_= exp_work *rewp) unsigned long mask =3D rdp->grpmask; =20 retry_ipi: - if (rcu_watching_changed_since(rdp, rdp->exp_dynticks_snap)) { + if (rcu_watching_changed_since(rdp, rdp->exp_watching_snap)) { mask_ofl_test |=3D mask; continue; } --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 2C8B813B2A4 for ; Tue, 30 Apr 2024 09:19:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468759; cv=none; b=TA217X4sdp1JdJe3R9go2Oo+JE2QjXvvP893eDKBypB1gMrWSBzR2mLB68y2ppygVicTvCVHgyjJC6eH00494ZQolVLhTPF+uCEaEcIv/c8LIS7+KmZR8JkX1MzzQMkgh5LOMVZIdN5qy2j+gQkKy7tHgzrKwN4kxouMmGQ1bM0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468759; c=relaxed/simple; bh=vlKmg6DA9wKcQv4r39yuQQ9vwNlQ/qJHYXaw/L+5ZPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=is7TD9QyH7mwt18juJGm+jSHix+pMeFABIX5Z2PiiHKYsOps/o2oY3mbZe4WtTGVXlpooMadf/Ph/kdKymU2MJGKPN3qBfRUXXcdA+Otw51LBEWg39kX7t2lEyoDMP2CiH0/dEKymrePIvG3J/gKAL+4Um0ctCGxDVrv2vgnu2o= 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=EPUTj509; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="EPUTj509" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468756; 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: in-reply-to:in-reply-to:references:references; bh=9Eya/4/g7fR+WjNOhBTd8JUBjKQiwUeiPhXDYb2fngg=; b=EPUTj509at9K1GnvMFvefRq48YnWOm0yBu9m+0w7VJRgOCzRftmEpw3InT3YpcSdQLy7Er 2fVbVogL2mfdLvxxqkBFA6VBbZnUOqrDOcCNsnAsRukE5jcB6MnoCMGuPTUKIKgXkfqraJ lkPHvxwAXrRO+FfCgnxBUAFdmmlmWrU= 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-378-ok1uK2niOk2YG8amtCYDaA-1; Tue, 30 Apr 2024 05:19:08 -0400 X-MC-Unique: ok1uK2niOk2YG8amtCYDaA-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 0915418065B2; Tue, 30 Apr 2024 09:19:08 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E2FED40C5C3; Tue, 30 Apr 2024 09:19:05 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 22/27] rcu: Rename dyntick_save_progress_counter() into eqs_save_progress_counter() Date: Tue, 30 Apr 2024 11:17:26 +0200 Message-ID: <20240430091740.1826862-23-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, and the 'dynticks' prefix can be dropped without losing any meaning. Signed-off-by: Valentin Schneider --- .../RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg | 2 +- .../RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg | 2 +- Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg | 2 +- .../RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg | 2 +- kernel/rcu/tree.c | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg b= /Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg index 423df00c4df9d..961b2595241fe 100644 --- a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg @@ -528,7 +528,7 @@ font-style=3D"normal" y=3D"-8652.5312" x=3D"2466.7822" - xml:space=3D"preserve">dyntick_save_progress_counter() + xml:space=3D"preserve">eqs_save_progress_counter() dyntick_save_progress_counter() + xml:space=3D"preserve">eqs_save_progress_counter() dyntick_save_progress_counter() + xml:space=3D"preserve">eqs_save_progress_counter() dyntick_save_progress_counter() + xml:space=3D"preserve">eqs_save_progress_counter() watching_snap =3D rcu_watching_snap(rdp->cpu); if (rcu_watching_in_eqs(rdp->watching_snap)) { @@ -782,7 +782,7 @@ static int dyntick_save_progress_counter(struct rcu_dat= a *rdp) /* * Returns positive if the specified CPU has passed through a quiescent st= ate * by virtue of being in or having passed through an dynticks idle state s= ince - * the last call to dyntick_save_progress_counter() for this same CPU, or = by + * the last call to eqs_save_progress_counter() for this same CPU, or by * virtue of having been offline. * * Returns negative if the specified CPU needs a force resched. @@ -1981,7 +1981,7 @@ static void rcu_gp_fqs(bool first_time) =20 if (first_time) { /* Collect dyntick-idle snapshots. */ - force_qs_rnp(dyntick_save_progress_counter); + force_qs_rnp(eqs_save_progress_counter); } else { /* Handle dyntick-idle and offline CPUs. */ force_qs_rnp(rcu_implicit_dynticks_qs); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 A50651C6610 for ; Tue, 30 Apr 2024 09:19:17 +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=1714468759; cv=none; b=L6KP7LzXOkAeRuJITKCLhVn81xac5nOqDw+q/SJqIo/J9ffFZPPetbLAvTGnoAITKdQZmZoSB0DYonq3vv9rR+eAb1gaSLPw9V4RKoQCHNa2pbuwAMUf+sd3eH7+vE/Fvof5MzCNKu667JXKm+cNLc03TFnQVMhxVYb9bKgJn74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468759; c=relaxed/simple; bh=BIHnBwmbVaDUG/IadziTCuez47ce0sTjhxhkpzV8SQw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q2pGv4k8dECjqkf6dZ2nIVjhmfmHR9drh3Eyhu3Q0bVCo/q9rkVWkQUTYoAms/GAd5Erk/pVlUcvW8KElbMvgfLUK4p8IeT+n4oKPlcdblvfiqFHgwZDEcVJRpePzHnBNmKvYT4ZbRNojNRYdLiQ5uTHT6hvQOUeLqFD2pNeSpM= 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=MvHs21Wz; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="MvHs21Wz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468756; 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: in-reply-to:in-reply-to:references:references; bh=fVvhaC/XHwMBow5A0gQUjQhCAAsLCxl8ACwwyXHU2KA=; b=MvHs21WznMqOpo9NTN//mW/F5gdrrG4uTxng7NryHjiGxZcJDoNeq7luOlGDqo2D7ybawB +dV7/SK2i9bdVHkJ6MrHfCTGMyZq+5dm40TIDpJip714+JcYpmk3Im+jGkAV/muJCsFEPG 3OSCTThfwGOvq4Uf8Asar08rrfciLXA= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-7-lEeFP2pQNCyNGyaTW05euw-1; Tue, 30 Apr 2024 05:19:12 -0400 X-MC-Unique: lEeFP2pQNCyNGyaTW05euw-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 CB83E29ABA10; Tue, 30 Apr 2024 09:19:10 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 57E5F40C5C3; Tue, 30 Apr 2024 09:19:08 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 23/27] rcu: Rename rcu_implicit_dynticks_qs() into rcu_implicit_eqs() Date: Tue, 30 Apr 2024 11:17:27 +0200 Message-ID: <20240430091740.1826862-24-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, replace "dynticks_qs" into "eqs" to drop the dyntick reference. Signed-off-by: Valentin Schneider --- Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg | 2 +- Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg | 2 +- Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg | 2 +- Documentation/RCU/Design/Memory-Ordering/TreeRCU-hotplug.svg | 2 +- kernel/rcu/tree.c | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg b= /Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg index 961b2595241fe..b57210ecd689e 100644 --- a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg @@ -537,7 +537,7 @@ font-style=3D"normal" y=3D"-8368.1475" x=3D"2463.3262" - xml:space=3D"preserve">rcu_implicit_dynticks_qs() + xml:space=3D"preserve">rcu_implicit_eqs() rcu_implicit_dynticks_qs() + xml:space=3D"preserve">rcu_implicit_eqs() rcu_implicit_dynticks_qs() + xml:space=3D"preserve">rcu_implicit_eqs() rcu_implicit_dynticks_qs() + xml:space=3D"preserve">rcu_implicit_eqs() ; Tue, 30 Apr 2024 09:19:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468760; cv=none; b=bHaR0CYo6d4eWeJiae8HMCoIbLZFmzstBmWoxKrnEPrNqVLVXiZ6icPNiJe57YIS+4d6tboTPGXqHtElBN9EJxJRUo+gHi0LNmXTzPCszmPAh/xd5YxsmoDA4hDUYwCRyk0iIsd4JG1QG7yqGRsNlcGESV3qZXQ2Tu6+DcSwrgY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468760; c=relaxed/simple; bh=IOaoHCkzMuAirmGkG57WlQLrQtka+5wgy8w8O2/LKrQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ntd8jcqynQRaMI8yHMP470oz2OiQaiTsrQBK5RMNekIGkqvP9ytImiJ0v6T408TF93HSBKalvy21uoUizIo76leKcQ+Bm81YAJnAVdpAJzbd1zLxl1ETqQuIso2lhJ2qRlXq1pKV3BwOwhj8IyNqkrxJnOrF04mG9OfiHVvYoVU= 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=YGiOWVvV; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="YGiOWVvV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468757; 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: in-reply-to:in-reply-to:references:references; bh=Qn791+67rWwiUJr/Ta/g1hShm4NiN4HCHRVNGLR9ND8=; b=YGiOWVvVt5hgcu7R4h80uwb0y31DROW6sfKjCT5hTdSaPqlrNqG6wgz8tgZuUDFIsQol6T u1FkVeZSA3Pcx9ER4mLdP+oMMlbJKV9gyCXMSqSbebK3cilkd7eWl43y95yQZUgcvQUZYQ BwQVh4k0zYgjLlWoYK6URu7yMVz4V5o= 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-48-4tSKRNm5NqmgwJHW6HHx_Q-1; Tue, 30 Apr 2024 05:19:14 -0400 X-MC-Unique: 4tSKRNm5NqmgwJHW6HHx_Q-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 A77E980B3DD; Tue, 30 Apr 2024 09:19:13 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1627540C5C2; Tue, 30 Apr 2024 09:19:10 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 24/27] rcu: Rename rcu_momentary_dyntick_idle() into rcu_momentary_eqs() Date: Tue, 30 Apr 2024 11:17:28 +0200 Message-ID: <20240430091740.1826862-25-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The context_tracking.state RCU_DYNTICKS subvariable has been renamed to RCU_WATCHING, replace "dyntick_idle" into "eqs" to drop the dyntick reference. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- include/linux/rcutiny.h | 2 +- include/linux/rcutree.h | 2 +- kernel/rcu/rcutorture.c | 4 ++-- kernel/rcu/tree.c | 4 ++-- kernel/rcu/tree_nocb.h | 2 +- kernel/rcu/tree_plugin.h | 6 +++--- kernel/stop_machine.c | 2 +- kernel/trace/trace_osnoise.c | 4 ++-- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h index d9ac7b136aeab..cf2b5a188f783 100644 --- a/include/linux/rcutiny.h +++ b/include/linux/rcutiny.h @@ -158,7 +158,7 @@ void rcu_scheduler_starting(void); static inline void rcu_end_inkernel_boot(void) { } static inline bool rcu_inkernel_boot_has_ended(void) { return true; } static inline bool rcu_is_watching(void) { return true; } -static inline void rcu_momentary_dyntick_idle(void) { } +static inline void rcu_momentary_eqs(void) { } static inline void kfree_rcu_scheduler_running(void) { } static inline bool rcu_gp_might_be_stalled(void) { return false; } =20 diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index 254244202ea97..7dbde2b6f714a 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h @@ -37,7 +37,7 @@ void synchronize_rcu_expedited(void); void kvfree_call_rcu(struct rcu_head *head, void *ptr); =20 void rcu_barrier(void); -void rcu_momentary_dyntick_idle(void); +void rcu_momentary_eqs(void); void kfree_rcu_scheduler_running(void); bool rcu_gp_might_be_stalled(void); =20 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index cafe047d046e8..dcd1f47748a2f 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2679,7 +2679,7 @@ static unsigned long rcu_torture_fwd_prog_cbfree(stru= ct rcu_fwd *rfp) rcu_torture_fwd_prog_cond_resched(freed); if (tick_nohz_full_enabled()) { local_irq_save(flags); - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); local_irq_restore(flags); } } @@ -2829,7 +2829,7 @@ static void rcu_torture_fwd_prog_cr(struct rcu_fwd *r= fp) rcu_torture_fwd_prog_cond_resched(n_launders + n_max_cbs); if (tick_nohz_full_enabled()) { local_irq_save(flags); - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); local_irq_restore(flags); } } diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index b375c6006ed6b..e4783a5d18e0d 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -355,7 +355,7 @@ bool rcu_watching_zero_in_eqs(int cpu, int *vp) * * The caller must have disabled interrupts and must not be idle. */ -notrace void rcu_momentary_dyntick_idle(void) +notrace void rcu_momentary_eqs(void) { int seq; =20 @@ -365,7 +365,7 @@ notrace void rcu_momentary_dyntick_idle(void) WARN_ON_ONCE(!(seq & CT_RCU_WATCHING)); rcu_preempt_deferred_qs(current); } -EXPORT_SYMBOL_GPL(rcu_momentary_dyntick_idle); +EXPORT_SYMBOL_GPL(rcu_momentary_eqs); =20 /** * rcu_is_cpu_rrupt_from_idle - see if 'interrupted' from idle diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index 3f85577bddd4e..2e0d2ff2ee8df 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -951,7 +951,7 @@ static void nocb_cb_wait(struct rcu_data *rdp) =20 =20 local_irq_save(flags); - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); local_irq_restore(flags); /* * Disable BH to provide the expected environment. Also, when diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 340bbefe5f652..903e70ec39fc6 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -859,7 +859,7 @@ static void rcu_qs(void) =20 /* * Register an urgently needed quiescent state. If there is an - * emergency, invoke rcu_momentary_dyntick_idle() to do a heavy-weight + * emergency, invoke rcu_momentary_eqs() to do a heavy-weight * dyntick-idle quiescent state visible to other CPUs, which will in * some cases serve for expedited as well as normal grace periods. * Either way, register a lightweight quiescent state. @@ -879,7 +879,7 @@ void rcu_all_qs(void) this_cpu_write(rcu_data.rcu_urgent_qs, false); if (unlikely(raw_cpu_read(rcu_data.rcu_need_heavy_qs))) { local_irq_save(flags); - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); local_irq_restore(flags); } rcu_qs(); @@ -899,7 +899,7 @@ void rcu_note_context_switch(bool preempt) goto out; this_cpu_write(rcu_data.rcu_urgent_qs, false); if (unlikely(raw_cpu_read(rcu_data.rcu_need_heavy_qs))) - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); out: rcu_tasks_qs(current, preempt); trace_rcu_utilization(TPS("End context switch")); diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index cedb17ba158a9..da821ce258ea7 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -251,7 +251,7 @@ static int multi_cpu_stop(void *data) */ touch_nmi_watchdog(); } - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); } while (curstate !=3D MULTI_STOP_EXIT); =20 local_irq_restore(flags); diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c index a8e28f9b9271c..a41e8a8212647 100644 --- a/kernel/trace/trace_osnoise.c +++ b/kernel/trace/trace_osnoise.c @@ -1535,7 +1535,7 @@ static int run_osnoise(void) * This will eventually cause unwarranted noise as PREEMPT_RCU * will force preemption as the means of ending the current * grace period. We avoid this problem by calling - * rcu_momentary_dyntick_idle(), which performs a zero duration + * rcu_momentary_eqs(), which performs a zero duration * EQS allowing PREEMPT_RCU to end the current grace period. * This call shouldn't be wrapped inside an RCU critical * section. @@ -1547,7 +1547,7 @@ static int run_osnoise(void) if (!disable_irq) local_irq_disable(); =20 - rcu_momentary_dyntick_idle(); + rcu_momentary_eqs(); =20 if (!disable_irq) local_irq_enable(); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 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 1A3721C8FB3 for ; Tue, 30 Apr 2024 09:19:20 +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=1714468762; cv=none; b=AC7y23KV4U8dLUA55flQk70zB+3M+WzbeC6+ALxUlemPwW1UZ+RNIFQSdH2VzAOCe7UAv/6nQ7A9xLZECjnEcoYW8+kOxBGmTeH+NkBQ3MzHjn4hmv4lA0uJykcN2IWyJLdboQCTt+YF5gGTuizPffdV+MQFpzO6oNX7QiNOEn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468762; c=relaxed/simple; bh=UDpOa6uq/0wige4xYCIveLrLekZbUFVMIPs9Q8uP2/A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A1DJDkVqLJdkE/FPzTUfCNWHisuG5VyG9/366hwJ7vlVjjPq4R/S/0jCwMzUig5L5SlEpNVaa9T1hY3B6dIPsc99rd/QxxOv5rxImLKj92YBRYihf1dj6scf+Tsfbo7YfsBpbR2SEdhOAn7PG1oSmUy9Wi9Q5jLNZy6k4FFnqRc= 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=efIpPOdl; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="efIpPOdl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468760; 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: in-reply-to:in-reply-to:references:references; bh=hoUWjkUm7PdXxKYHB7R0MSsQHH4nwZT+HFgfi6OrWXU=; b=efIpPOdljHggjYkCxmD2xy9sDwiSHkjbVg5AsmE5IdOBhjznIARY5VLjUhJZ4ukxk9a6XZ Q1DhS9JILxVMIlACczwLV70b17P2uN0mg/L03jfEkm9n0hvqY1vdU/R8IG+VMhRoUumwY5 O/+CN104OGO+21qsySfOIZHa1TR4W98= 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-3-hqUChMk9PBWFLnTY8Yp-Tw-1; Tue, 30 Apr 2024 05:19:16 -0400 X-MC-Unique: hqUChMk9PBWFLnTY8Yp-Tw-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 1745E80B3DD; Tue, 30 Apr 2024 09:19:16 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0F020492BC7; Tue, 30 Apr 2024 09:19:13 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 25/27] context_tracking, rcu: Rename stray ->dynticks comments Date: Tue, 30 Apr 2024 11:17:29 +0200 Message-ID: <20240430091740.1826862-26-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" A few comments still mention a context_tracking .dynticks field, but that has been merged into the .state field as of: 171476775d32 ("context_tracking: Convert state to atomic_t") Update these loose references. Signed-off-by: Valentin Schneider Reviewed-by: Frederic Weisbecker --- kernel/context_tracking.c | 8 ++++---- kernel/rcu/tree.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index e82f19bab9ed9..dfa64f21d900d 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -87,7 +87,7 @@ static noinstr void ct_kernel_exit_state(int offset) * critical sections, and we also must force ordering with the * next idle sojourn. */ - rcu_task_trace_enter(); // Before ->dynticks update! + rcu_task_trace_enter(); // Before CT state update! seq =3D ct_state_inc(offset); // RCU is no longer watching. Better be in extended quiescent state! WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && (seq & CT_RCU_WATCHING)); @@ -109,7 +109,7 @@ static noinstr void ct_kernel_enter_state(int offset) */ seq =3D ct_state_inc(offset); // RCU is now watching. Better not be in an extended quiescent state! - rcu_task_trace_exit(); // After ->dynticks update! + rcu_task_trace_exit(); // After CT state update! WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !(seq & CT_RCU_WATCHING)= ); } =20 @@ -207,7 +207,7 @@ void noinstr ct_nmi_exit(void) =20 instrumentation_begin(); /* - * Check for ->nmi_nesting underflow and bad ->dynticks. + * Check for ->nmi_nesting underflow and bad CT state. * (We are exiting an NMI handler, so RCU better be paying attention * to us!) */ @@ -264,7 +264,7 @@ void noinstr ct_nmi_enter(void) WARN_ON_ONCE(ct_nmi_nesting() < 0); =20 /* - * If idle from RCU viewpoint, atomically increment ->dynticks + * If idle from RCU viewpoint, atomically increment CT state * to mark non-idle and increment ->nmi_nesting by one. * Otherwise, increment ->nmi_nesting by two. This means * if ->nmi_nesting is equal to one, we are guaranteed diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e4783a5d18e0d..11bd55f7ec398 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -286,7 +286,7 @@ void rcu_softirq_qs(void) * to the next non-quiescent value. * * The non-atomic test/increment sequence works because the upper bits - * of the ->dynticks counter are manipulated only by the corresponding CPU, + * of the ->state variable are manipulated only by the corresponding CPU, * or when the corresponding CPU is offline. */ static void rcu_watching_eqs_online(void) @@ -335,10 +335,10 @@ bool rcu_watching_zero_in_eqs(int cpu, int *vp) =20 // If not quiescent, force back to earlier extended quiescent state. snap =3D ct_rcu_watching_cpu(cpu) & ~CT_RCU_WATCHING; - smp_rmb(); // Order ->dynticks and *vp reads. + smp_rmb(); // Order CT state and *vp reads. if (READ_ONCE(*vp)) return false; // Non-zero, so report failure; - smp_rmb(); // Order *vp read and ->dynticks re-read. + smp_rmb(); // Order *vp read and CT state re-read. =20 // If still in the same extended quiescent state, we are good! return snap =3D=3D ct_rcu_watching_cpu(cpu); --=20 2.43.0 From nobody Sun Feb 8 02:49:07 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 A1C471292CC for ; Tue, 30 Apr 2024 09:19:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468765; cv=none; b=R5DepMcEXCgK19WNl275Jsh+7nRGyvC2/5Sdp/2fzY79MQ+4a6z03QtMUqj+MSYpdS40kolaIFOahW+nypUQIzIS0YJpeSv18y7mqYWUrPNqM1gIgmAWz9Gp2xTlAaVHt0k1cmYQ6+spyItwOvptUbWIiS3r/qzRBfWYuqLeiDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468765; c=relaxed/simple; bh=EhzmsmACDjSS2wF8AAU8jhpFiZPWOh++BLOw9/rEa+8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kvX+dE0ORsfh7TsqvFOOQsykQUHcLxb2ZUTKyvqT4XaQkmx13spDmM/H6piD4x0LhpcdoMSQ7TeZFXkqEuCC66lVyIAEnjwM25W08sTlw2SdxfaXbV697lmaLcBi6hQzOpZFTKacX1sFLEUsHyv5ot1F9uV2533rog95iy3r+rU= 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=Gwmu/Ds3; arc=none smtp.client-ip=170.10.133.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Gwmu/Ds3" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468762; 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: in-reply-to:in-reply-to:references:references; bh=cr16UT0MedV0Vp3mwekrGAUra3AvoUK3dAixRbWR98k=; b=Gwmu/Ds3hZADpsk+ALtqwcO/q36/1wkxuGzjzpZDEAHWZBXbQEgebxj1oi2+x3FdrvlHHc 74lHVOe35NAe9E2p4qvwbllMf/wufj6g1MEpqU5rKZA8LcvGjYLwAHw4V+vzX8O1NTJVxG YAbL3ueeAyGC9k2AGr4qtg7JStSZZ7E= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-192-1YdhBgv9NS6dWMlzMt85DQ-1; Tue, 30 Apr 2024 05:19:19 -0400 X-MC-Unique: 1YdhBgv9NS6dWMlzMt85DQ-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 757ED3806738; Tue, 30 Apr 2024 09:19:18 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5220F40C5C2; Tue, 30 Apr 2024 09:19:16 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 26/27] rcu: Update stray documentation references to rcu_dynticks_eqs_{enter, exit}() Date: Tue, 30 Apr 2024 11:17:30 +0200 Message-ID: <20240430091740.1826862-27-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" rcu_dynticks_eqs_{enter, exit}() have been replaced by their context-tracking counterparts since commit: 171476775d32 ("context_tracking: Convert state to atomic_t") Update the stray documentation references. Signed-off-by: Valentin Schneider --- .../RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 4 ++-- Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg | 4 ++-- Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp-fqs.svg | 4 ++-- Documentation/RCU/Design/Memory-Ordering/TreeRCU-gp.svg | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Order= ing.rst b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering= .rst index 0533814a1f69a..50fc99aba777f 100644 --- a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst +++ b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst @@ -147,8 +147,8 @@ RCU read-side critical sections preceding and following= the current idle sojourn. This case is handled by calls to the strongly ordered ``atomic_add_return()`` read-modify-write atomic operation that -is invoked within ``rcu_dynticks_eqs_enter()`` at idle-entry -time and within ``rcu_dynticks_eqs_exit()`` at idle-exit time. +is invoked within ``ct_kernel_enter_state()`` at idle-entry +time and within ``ct_kernel_exit_state()`` at idle-exit time. The grace-period kthread invokes ``rcu_watching_snap()`` and ``rcu_watching_changed_since()`` (both of which invoke an ``atomic_add_return()`` of zero) to detect idle CPUs. diff --git a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg b= /Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg index b57210ecd689e..c7d16b72f0973 100644 --- a/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg +++ b/Documentation/RCU/Design/Memory-Ordering/TreeRCU-dyntick.svg @@ -607,7 +607,7 @@ font-weight=3D"bold" font-size=3D"192" id=3D"text202-7-5-3-27-6" - style=3D"font-size:192px;font-style:normal;font-weight:bold;text-an= chor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">rcu_dynti= cks_eqs_enter() + style=3D"font-size:192px;font-style:normal;font-weight:bold;text-an= chor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">ct_kernel= _enter_state() rcu_dynti= cks_eqs_exit() + style=3D"font-size:192px;font-style:normal;font-weight:bold;text-an= chor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">ct_kernel= _exit_state() rcu_dynti= cks_eqs_enter() + style=3D"font-size:192px;font-style:normal;font-weight:bold;text-an= chor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">ct_kernel= _enter_state() rcu_dynti= cks_eqs_exit() + style=3D"font-size:192px;font-style:normal;font-weight:bold;text-an= chor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">ct_kernel= _exit_state() rcu_dyn= ticks_eqs_enter() + style=3D"font-size:192px;font-style:normal;font-weight:bold;text-= anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">ct_kern= el_enter_state() rcu_dyn= ticks_eqs_exit() + style=3D"font-size:192px;font-style:normal;font-weight:bold;text-= anchor:start;fill:#000000;stroke-width:0.025in;font-family:Courier">ct_kern= el_exit_state() ; Tue, 30 Apr 2024 09:19:31 +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=1714468772; cv=none; b=seIjjeMLBsuSpRWhFrt0jwXUzOkmcwqrmM+kGT331BeCXqvb5tlqz7N+K/hLOrZKAA1cCtz8n60jGHzVWIHS4aFPFN+ct2cXRYN6fluK9VOzlopZyRV++j++cdbTXAHQ2Jk8CueHxeDXi3waK0wn0b8dMhqdgZOYgYTBsCWr4gA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714468772; c=relaxed/simple; bh=0AIN0FxrkZVcCjn0a65UMKn2nPTgCcIbQIZjTmSgp2g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bJ62EjbKnk/VtCtI4pUlC+fh+RdhWnSuVFARb7+UbvA8D9bWM6II/znh3b9frLKLEQzje0sJY9BdxWbA8CYibMjes0bhmVPnVd6oqk1RtlQKogiRhPv+n8/zF6IBYv6U++zgXMxFHmcP0ObSV8h5k0Tn8+yATiInXekxGOo88f4= 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=KJG0ZNsQ; 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="KJG0ZNsQ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714468770; 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: in-reply-to:in-reply-to:references:references; bh=BnbC8oA7effdEeuXBD+j3dpz74Y9QoJKPm2R7w8invk=; b=KJG0ZNsQNBrB90r/ewa/QJqK3OWehEWfdsG9hHadp6+XNJu8Di8G6ICo9+L4d0m+SZ5bsh P1SiK04/ZiXCgVTsPkC+45iozIorntvZGH4cY4G8Cax2QhNx+PIa21dMMbmKENot15ObJz 8wuygG61Cf/KaF3dxhhkvIoFbzpaeXo= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-127-lN9Jff67MvyPhvG9gTpdiQ-1; Tue, 30 Apr 2024 05:19:22 -0400 X-MC-Unique: lN9Jff67MvyPhvG9gTpdiQ-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 8021E3806738; Tue, 30 Apr 2024 09:19:21 +0000 (UTC) Received: from vschneid-thinkpadt14sgen2i.remote.csb (unknown [10.39.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D561840C5C2; Tue, 30 Apr 2024 09:19:18 +0000 (UTC) From: Valentin Schneider To: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , "Paul E. McKenney" , Peter Zijlstra , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Subject: [PATCH v2 27/27] context_tracking, rcu: Rename rcu_dyntick trace event into rcu_watching Date: Tue, 30 Apr 2024 11:17:31 +0200 Message-ID: <20240430091740.1826862-28-vschneid@redhat.com> In-Reply-To: <20240430091740.1826862-1-vschneid@redhat.com> References: <20240430091740.1826862-1-vschneid@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: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 Content-Type: text/plain; charset="utf-8" The "rcu_dyntick" naming convention has been turned into "rcu_watching" for all helpers now, align the trace event to that. To add to the confusion, the strings passed to the trace event are now reversed: when RCU "starts" the dyntick / EQS state, it "stops" watching. Signed-off-by: Valentin Schneider --- include/trace/events/rcu.h | 16 ++++++++-------- kernel/context_tracking.c | 10 +++++----- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h index 4066b6d51e46a..e51ef658437f0 100644 --- a/include/trace/events/rcu.h +++ b/include/trace/events/rcu.h @@ -466,40 +466,40 @@ TRACE_EVENT(rcu_stall_warning, /* * Tracepoint for dyntick-idle entry/exit events. These take 2 strings * as argument: - * polarity: "Start", "End", "StillNonIdle" for entering, exiting or still= not + * polarity: "Start", "End", "StillWatching" for entering, exiting or stil= l not * being in dyntick-idle mode. * context: "USER" or "IDLE" or "IRQ". * NMIs nested in IRQs are inferred with nesting > 1 in IRQ context. * * These events also take a pair of numbers, which indicate the nesting * depth before and after the event of interest, and a third number that is - * the ->dynticks counter. Note that task-related and interrupt-related + * the RCU_WATCHING counter. Note that task-related and interrupt-related * events use two separate counters, and that the "++=3D" and "--=3D" even= ts * for irq/NMI will change the counter by two, otherwise by one. */ -TRACE_EVENT_RCU(rcu_dyntick, +TRACE_EVENT_RCU(rcu_watching, =20 - TP_PROTO(const char *polarity, long oldnesting, long newnesting, int dynt= icks), + TP_PROTO(const char *polarity, long oldnesting, long newnesting, int coun= ter), =20 - TP_ARGS(polarity, oldnesting, newnesting, dynticks), + TP_ARGS(polarity, oldnesting, newnesting, counter), =20 TP_STRUCT__entry( __field(const char *, polarity) __field(long, oldnesting) __field(long, newnesting) - __field(int, dynticks) + __field(int, counter) ), =20 TP_fast_assign( __entry->polarity =3D polarity; __entry->oldnesting =3D oldnesting; __entry->newnesting =3D newnesting; - __entry->dynticks =3D dynticks; + __entry->counter =3D counter; ), =20 TP_printk("%s %lx %lx %#3x", __entry->polarity, __entry->oldnesting, __entry->newnesting, - __entry->dynticks & 0xfff) + __entry->counter & 0xfff) ); =20 /* diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index dfa64f21d900d..fdbb584b8e797 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -137,7 +137,7 @@ static void noinstr ct_kernel_exit(bool user, int offse= t) =20 instrumentation_begin(); lockdep_assert_irqs_disabled(); - trace_rcu_dyntick(TPS("Start"), ct_nesting(), 0, ct_rcu_watching()); + trace_rcu_watching(TPS("End"), ct_nesting(), 0, ct_rcu_watching()); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); rcu_preempt_deferred_qs(current); =20 @@ -182,7 +182,7 @@ static void noinstr ct_kernel_enter(bool user, int offs= et) // instrumentation for the noinstr ct_kernel_enter_state() instrument_atomic_write(&ct->state, sizeof(ct->state)); =20 - trace_rcu_dyntick(TPS("End"), ct_nesting(), 1, ct_rcu_watching()); + trace_rcu_watching(TPS("Start"), ct_nesting(), 1, ct_rcu_watching()); WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(c= urrent)); WRITE_ONCE(ct->nesting, 1); WARN_ON_ONCE(ct_nmi_nesting()); @@ -219,7 +219,7 @@ void noinstr ct_nmi_exit(void) * leave it in non-RCU-idle state. */ if (ct_nmi_nesting() !=3D 1) { - trace_rcu_dyntick(TPS("--=3D"), ct_nmi_nesting(), ct_nmi_nesting() - 2, + trace_rcu_watching(TPS("--=3D"), ct_nmi_nesting(), ct_nmi_nesting() - 2, ct_rcu_watching()); WRITE_ONCE(ct->nmi_nesting, /* No store tearing. */ ct_nmi_nesting() - 2); @@ -228,7 +228,7 @@ void noinstr ct_nmi_exit(void) } =20 /* This NMI interrupted an RCU-idle CPU, restore RCU-idleness. */ - trace_rcu_dyntick(TPS("Startirq"), ct_nmi_nesting(), 0, ct_rcu_watching()= ); + trace_rcu_watching(TPS("Endirq"), ct_nmi_nesting(), 0, ct_rcu_watching()); WRITE_ONCE(ct->nmi_nesting, 0); /* Avoid store tearing. */ =20 // instrumentation for the noinstr ct_kernel_exit_state() @@ -294,7 +294,7 @@ void noinstr ct_nmi_enter(void) instrumentation_begin(); } =20 - trace_rcu_dyntick(incby =3D=3D 1 ? TPS("Endirq") : TPS("++=3D"), + trace_rcu_watching(incby =3D=3D 1 ? TPS("Startirq") : TPS("++=3D"), ct_nmi_nesting(), ct_nmi_nesting() + incby, ct_rcu_watching()); instrumentation_end(); --=20 2.43.0