Patches notes in reverse order (start from the bottom) for picking upstream patches related to buddy lockup detector and arm64 perf lockup detector. Technically we could just take the first few of these, but it's good to get all of them since some of the CONFIG names changed and we want to make sure we have the right config in the end, which should make sure this works well for the next kernel rebase. ==== - These 3 patcheds fix bugs in Petr's cleanup. 6cb44bef35ac powerpc: Include asm/nmi.c in mobility.c for watchdog_hardlockup_set_timeout_pct() a8992d8ad777 watchdog/hardlockup: fix typo in config HARDLOCKUP_DETECTOR_PREFER_BUDDY df8b78e1630f powerpc: move arch_trigger_cpumask_backtrace from nmi.h to irq.h --- - These 6 patches are Petr's additional cleanup. 7ca8fe94aa92 watchdog/hardlockup: define HARDLOCKUP_DETECTOR_ARCH 47f4cb433923 watchdog/sparc64: define HARDLOCKUP_DETECTOR_SPARC64 a5fcc2367e22 watchdog/hardlockup: make HAVE_NMI_WATCHDOG sparc64-specific 0c68bda69665 watchdog/hardlockup: declare arch_touch_nmi_watchdog() only in linux/nmi.h 1356d0b966e7 watchdog/hardlockup: make the config checks more straightforward 4917a25f83a8 watchdog/hardlockup: sort hardlockup detector related config values a logical way --- - The following are the 9 out of 10 patches in my folowup series. The 10th patch didn't land upstream, so this is all 9 of them. 28168eca3297 watchdog/hardlockup: move SMP barriers from common code to buddy code 7ece48b7b4a2 watchdog/buddy: simplify the dependency for HARDLOCKUP_DETECTOR_PREFER_BUDDY 813efda23934 watchdog/buddy: don't copy the cpumask in watchdog_next_cpu() d3b62ace0f09 watchdog/buddy: cleanup how watchdog_buddy_check_hardlockup() is called 05e7b5587661 watchdog/hardlockup: remove softlockup comment in touch_nmi_watchdog() 7a71d8e650b0 watchdog/hardlockup: in watchdog_hardlockup_check() use cpumask_copy() 2711e4adef4f watchdog/hardlockup: don't use raw_cpu_ptr() in watchdog_hardlockup_kick() 6426e8d1f274 watchdog/hardlockup: HAVE_NMI_WATCHDOG must implement watchdog_hardlockup_probe() 9ec272c586b0 watchdog/hardlockup: keep kernel.nmi_watchdog sysctl as 0444 if probe fails --- - The following is an 18-patch series that landed together. The last 4 of these are actually for b/172228850 * d7a0fe9ef6d6 arm64: enable perf events based hard lockup detector 94946f9eaac1 arm64: add hw_nmi_get_sample_period for preparation of lockup detector 930d8f8dbab9 watchdog/perf: adapt the watchdog_perf interface for async model b17aa959330e watchdog/perf: add a weak function for an arch to detect if perf can use NMIs 1f423c905a6b watchdog/hardlockup: detect hard lockups using secondary (buddy) CPUs d9b3629ade8e watchdog/hardlockup: have the perf hardlockup use __weak functions more cleanly df95d3085caa watchdog/hardlockup: rename some "NMI watchdog" constants/function ed92e1ef5222 watchdog/hardlockup: move perf hardlockup watchdog petting to watchdog.c 77c12fc95980 watchdog/hardlockup: add a "cpu" param to watchdog_hardlockup_check() 1610611aadc2 watchdog/hardlockup: style changes to watchdog_hardlockup_check() / is_hardlockup() 81972551df9d watchdog/hardlockup: move perf hardlockup checking/panic to common watchdog.c 6ea0d04211a7 watchdog/perf: rename watchdog_hld.c to watchdog_perf.c 8b5c59a92b5b watchdog/hardlockup: add comments to touch_nmi_watchdog() 1fafaa7745ee watchdog/perf: ensure CPU-bound context when creating hardlockup detector event 730211182ed0 watchdog/hardlockup: change watchdog_nmi_enable() to void 810b560e8985 watchdog: remove WATCHDOG_DEFAULT 4379e59fe566 watchdog/perf: more properly prevent false positives with turbo modes * 5e008df11c55 watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config --- - The following one patch is the first of an 8 part series. We don't really care about it right now, but picking it enables picking later patches easier (just a context conflict, but still better to have no conflicts). 7755cec63ade arm64: perf: Move PMUv3 driver to drivers/perf