Commit 0dd1a54f4434 for kernel

commit 0dd1a54f44348d9cf6bae57a2b5cb0b53826a2c7
Merge: b844715e8aca 99b49e02f948
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Aug 18 15:29:53 2026 -0700

    Merge tag 'smp-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull SMP core updates from Thomas Gleixner:

     - Reduce the preemption disabled sections in smp_call_function*().

       The various smp call functions keep preemption disabled accross the
       full operation which includes the wait for completion. Especially the
       latter can take some time when one of the target CPUs is not
       immediately responding to the IPI, which can result in large latency
       spikes.

       To improve this provide a per task CPU mask to track the CPUs to wait
       for. That makes the information required for the wait task local and
       therefore allows to reenable preemption before the wait.

       While this comes with moderate extra memory cost this reduces SMP
       function call induced latency measured in a fleet for high priority
       tasks from ~17ms to ~1.5ms (~90%).

     - Reduce the overhead of the CSD debug code by replacing the heavy
       memory barriers with smp_store_release()/acquire()

     - Remove obsolute unused hotplug states

    * tag 'smp-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      scftorture: Remove preempt_disable() in scftorture_invoke_one()
      smp: Remove preempt_disable() from on_each_cpu_cond_mask()
      smp: Remove preempt_disable() from smp_call_function()
      smp: Enable preemption early in smp_call_function_many_cond()
      smp: Alloc percpu csd data in smpcfd_prepare_cpu() only once
      smp: Use task-local IPI cpumask in smp_call_function_many_cond()
      smp: Refactor remote CPU selection in smp_call_function_any()
      smp: Enable preemption early in smp_call_function_single()
      smp: Disable preemption explicitly in __csd_lock_wait()
      cpu/hotplug: Remove CPUHP_AP_ARM_CORESIGHT_CTI_STARTING
      smp: Use release stores for csd_lock_record() state

diff --cc kernel/fork.c
index 175c73bbe2bf,ac3fc49d90ab..1e68404bd773
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@@ -1009,13 -1014,10 +1014,15 @@@ static struct task_struct *dup_task_str
  	tsk->mm_cid.active = 0;
  	INIT_HLIST_NODE(&tsk->mm_cid.node);
  #endif
 +
 +#ifdef CONFIG_BPF_SYSCALL
 +	RCU_INIT_POINTER(tsk->bpf_storage, NULL);
 +	tsk->bpf_ctx = NULL;
 +#endif
  	return tsk;

+ free_ipi_mask:
+ 	smp_task_ipi_mask_free(tsk);
  free_stack:
  	exit_task_stack_account(tsk);
  	free_thread_stack(tsk);