Commit f20730ef authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'smp-core-2023-04-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull SMP cross-CPU function-call updates from Ingo Molnar:

 - Remove diagnostics and adjust config for CSD lock diagnostics

 - Add a generic IPI-sending tracepoint, as currently there's no easy
   way to instrument IPI origins: it's arch dependent and for some major
   architectures it's not even consistently available.

* tag 'smp-core-2023-04-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  trace,smp: Trace all smp_function_call*() invocations
  trace: Add trace_ipi_send_cpu()
  sched, smp: Trace smp callback causing an IPI
  smp: reword smp call IPI comment
  treewide: Trace IPIs sent via smp_send_reschedule()
  irq_work: Trace self-IPIs sent via arch_irq_work_raise()
  smp: Trace IPIs sent via arch_send_call_function_ipi_mask()
  sched, smp: Trace IPIs sent via send_call_function_single_ipi()
  trace: Add trace_ipi_send_cpumask()
  kernel/smp: Make csdlock_debug= resettable
  locking/csd_lock: Remove per-CPU data indirection from CSD lock debugging
  locking/csd_lock: Remove added data from CSD lock debugging
  locking/csd_lock: Add Kconfig option for csd_debug default
parents 586b222d 5c312497
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -912,15 +912,14 @@
	cs89x0_media=	[HW,NET]
			Format: { rj45 | aui | bnc }

	csdlock_debug=	[KNL] Enable debug add-ons of cross-CPU function call
			handling. When switched on, additional debug data is
			printed to the console in case a hanging CPU is
			detected, and that CPU is pinged again in order to try
			to resolve the hang situation.
			0: disable csdlock debugging (default)
			1: enable basic csdlock debugging (minor impact)
			ext: enable extended csdlock debugging (more impact,
			     but more data)
	csdlock_debug=	[KNL] Enable or disable debug add-ons of cross-CPU
			function call handling. When switched on,
			additional debug data is printed to the console
			in case a hanging CPU is detected, and that
			CPU is pinged again in order to try to resolve
			the hang situation.  The default value of this
			option depends on the CSD_LOCK_WAIT_DEBUG_DEFAULT
			Kconfig option.

	dasd=		[HW,NET]
			See header of drivers/s390/block/dasd_devmap.c.
+1 −1
Original line number Diff line number Diff line
@@ -562,7 +562,7 @@ handle_ipi(struct pt_regs *regs)
}

void
smp_send_reschedule(int cpu)
arch_smp_send_reschedule(int cpu)
{
#ifdef DEBUG_IPI_MSG
	if (cpu == hard_smp_processor_id())
+1 −1
Original line number Diff line number Diff line
@@ -292,7 +292,7 @@ static void ipi_send_msg(const struct cpumask *callmap, enum ipi_msg_type msg)
		ipi_send_msg_one(cpu, msg);
}

void smp_send_reschedule(int cpu)
void arch_smp_send_reschedule(int cpu)
{
	ipi_send_msg_one(cpu, IPI_RESCHEDULE);
}
+1 −2
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@
#include <asm/mach/arch.h>
#include <asm/mpu.h>

#define CREATE_TRACE_POINTS
#include <trace/events/ipi.h>

/*
@@ -749,7 +748,7 @@ void __init set_smp_ipi_range(int ipi_base, int n)
	ipi_setup(smp_processor_id());
}

void smp_send_reschedule(int cpu)
void arch_smp_send_reschedule(int cpu)
{
	smp_cross_call(cpumask_of(cpu), IPI_RESCHEDULE);
}
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@
#include <asm/smp_plat.h>
#include <asm/smp_scu.h>

#include <trace/events/ipi.h>

#define OWL_CPU1_ADDR	0x50
#define OWL_CPU1_FLAG	0x5c

Loading