lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <dee4dc13-b187-42df-93ce-f738cfab32ea@linux.ibm.com>
Date: Mon, 3 Nov 2025 14:02:11 +0530
From: Shrikanth Hegde <sshegde@...ux.ibm.com>
To: Valentin Schneider <vschneid@...hat.com>
Cc: Nicolas Saenz Julienne <nsaenzju@...hat.com>,
        Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
        Borislav Petkov <bp@...en8.de>,
        Dave Hansen <dave.hansen@...ux.intel.com>,
        "H. Peter Anvin" <hpa@...or.com>, Andy Lutomirski <luto@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Arnaldo Carvalho de Melo <acme@...nel.org>,
        Josh Poimboeuf <jpoimboe@...nel.org>,
        Paolo Bonzini <pbonzini@...hat.com>, Arnd Bergmann <arnd@...db.de>,
        Frederic Weisbecker <frederic@...nel.org>,
        "Paul E. McKenney" <paulmck@...nel.org>,
        Jason Baron <jbaron@...mai.com>, Steven Rostedt <rostedt@...dmis.org>,
        Ard Biesheuvel <ardb@...nel.org>,
        Sami Tolvanen <samitolvanen@...gle.com>,
        "David S. Miller" <davem@...emloft.net>,
        Neeraj Upadhyay <neeraj.upadhyay@...nel.org>,
        Joel Fernandes <joelagnelf@...dia.com>,
        Josh Triplett
 <josh@...htriplett.org>,
        Boqun Feng <boqun.feng@...il.com>, Uladzislau Rezki <urezki@...il.com>,
        Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
        Mel Gorman <mgorman@...e.de>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Masahiro Yamada <masahiroy@...nel.org>, Han Shen <shenhan@...gle.com>,
        Rik van Riel <riel@...riel.com>, Jann Horn <jannh@...gle.com>,
        Dan Carpenter <dan.carpenter@...aro.org>,
        Oleg Nesterov <oleg@...hat.com>, Juri Lelli <juri.lelli@...hat.com>,
        Clark Williams <williams@...hat.com>,
        Yair Podemsky <ypodemsk@...hat.com>,
        Marcelo Tosatti <mtosatti@...hat.com>, Daniel Wagner <dwagner@...e.de>,
        Petr Tesarik <ptesarik@...e.com>, linux-kernel@...r.kernel.org,
        linux-mm@...ck.org, rcu@...r.kernel.org, x86@...nel.org,
        linux-arm-kernel@...ts.infradead.org, loongarch@...ts.linux.dev,
        linux-riscv@...ts.infradead.org, linux-arch@...r.kernel.org,
        linux-trace-kernel@...r.kernel.org
Subject: Re: [PATCH v6 23/29] context-tracking: Introduce work deferral
 infrastructure

Hi Valentin.

On 10/10/25 9:08 PM, Valentin Schneider wrote:
> smp_call_function() & friends have the unfortunate habit of sending IPIs to
> isolated, NOHZ_FULL, in-userspace CPUs, as they blindly target all online
> CPUs.
> 
> Some callsites can be bent into doing the right, such as done by commit:
> 
>    cc9e303c91f5 ("x86/cpu: Disable frequency requests via aperfmperf IPI for nohz_full CPUs")
> 
> Unfortunately, not all SMP callbacks can be omitted in this
> fashion. However, some of them only affect execution in kernelspace, which
> means they don't have to be executed *immediately* if the target CPU is in
> userspace: stashing the callback and executing it upon the next kernel entry
> would suffice. x86 kernel instruction patching or kernel TLB invalidation
> are prime examples of it.
> 
> Reduce the RCU dynticks counter width to free up some bits to be used as a
> deferred callback bitmask. Add some build-time checks to validate that
> setup.
> 
> Presence of CT_RCU_WATCHING in the ct_state prevents queuing deferred work.
> 
> Later commits introduce the bit:callback mappings.
> 
> Link: https://lore.kernel.org/all/20210929151723.162004989@infradead.org/
> Signed-off-by: Nicolas Saenz Julienne <nsaenzju@...hat.com>
> Signed-off-by: Valentin Schneider <vschneid@...hat.com>
> ---
>   arch/Kconfig                                 |  9 +++
>   arch/x86/Kconfig                             |  1 +
>   arch/x86/include/asm/context_tracking_work.h | 16 +++++
>   include/linux/context_tracking.h             | 21 ++++++
>   include/linux/context_tracking_state.h       | 30 ++++++---
>   include/linux/context_tracking_work.h        | 26 ++++++++
>   kernel/context_tracking.c                    | 69 +++++++++++++++++++-
>   kernel/time/Kconfig                          |  5 ++
>   8 files changed, 165 insertions(+), 12 deletions(-)
>   create mode 100644 arch/x86/include/asm/context_tracking_work.h
>   create mode 100644 include/linux/context_tracking_work.h
> 
> diff --git a/include/linux/context_tracking_work.h b/include/linux/context_tracking_work.h
> new file mode 100644
> index 0000000000000..c68245f8d77c5
> --- /dev/null
> +++ b/include/linux/context_tracking_work.h
> @@ -0,0 +1,26 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _LINUX_CONTEXT_TRACKING_WORK_H
> +#define _LINUX_CONTEXT_TRACKING_WORK_H
> +
> +#include <linux/bitops.h>
> +
> +enum {
> +	CT_WORK_n_OFFSET,
> +	CT_WORK_MAX_OFFSET
> +};
> +
> +enum ct_work {
> +	CT_WORK_n        = BIT(CT_WORK_n_OFFSET),
> +	CT_WORK_MAX      = BIT(CT_WORK_MAX_OFFSET)
> +};
> +
> +#include <asm/context_tracking_work.h>
> +

It fails to compile on powerpc (likey any arch other than x86)

In file included from ./include/linux/context_tracking_state.h:8,
                  from ./include/linux/hardirq.h:5,
                  from ./include/linux/interrupt.h:11,
                  from ./include/linux/kernel_stat.h:8,
                  from ./include/linux/cgroup.h:27,
                  from ./include/linux/memcontrol.h:13,
                  from ./include/linux/swap.h:9,
                  from ./include/linux/suspend.h:5,
                  from arch/powerpc/kernel/asm-offsets.c:21:
./include/linux/context_tracking_work.h:17:10: fatal error: 
asm/context_tracking_work.h: No such file or directory
    17 | #include <asm/context_tracking_work.h>
       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Gating works for compile, but no benefit of the series.

+#ifdef HAVE_CONTEXT_TRACKING_WORK
  #include <asm/context_tracking_work.h>
+#endif


I have been trying to debug/understand the issue seen with isolcpus= and
nohz_full=. system is idle, even then it occasionally woken up to do 
some work. So I was interesting if this series can help.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ