From: Thomas Gleixner <tglx@linutronix.de> To: LKML <linux-kernel@vger.kernel.org> Cc: Ingo Molnar <mingo@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Borislav Petkov <bp@alien8.de>, Andrew Morton <akpm@linux-foundation.org>, Sebastian Siewior <bigeasy@linutronix.de>, Nicholas Piggin <npiggin@gmail.com>, Don Zickus <dzickus@redhat.com>, Chris Metcalf <cmetcalf@mellanox.com>, Ulrich Obergfell <uobergfe@redhat.com> Subject: [patch V2 28/29] lockup_detector/perf: Simplify deferred event destroy Date: Tue, 12 Sep 2017 21:37:22 +0200 Message-ID: <20170912194148.340708074@linutronix.de> (raw) In-Reply-To: <20170912193654.321505854@linutronix.de> [-- Attachment #0: lockup_detectorperf_Simplify_deferred_event_destroy.patch --] [-- Type: text/plain, Size: 1794 bytes --] Now that all functionality is properly serialized against CPU hotplug, remove the extra per cpu storage which holds the disabled events for cleanup. The core makes sure that cleanup happens before new events are created. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Don Zickus <dzickus@redhat.com> Cc: Chris Metcalf <cmetcalf@mellanox.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sebastian Siewior <bigeasy@linutronix.de> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Ulrich Obergfell <uobergfe@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/r/20170831073055.251195167@linutronix.de --- kernel/watchdog_hld.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) --- a/kernel/watchdog_hld.c +++ b/kernel/watchdog_hld.c @@ -21,7 +21,6 @@ static DEFINE_PER_CPU(bool, hard_watchdog_warn); static DEFINE_PER_CPU(bool, watchdog_nmi_touch); static DEFINE_PER_CPU(struct perf_event *, watchdog_ev); -static DEFINE_PER_CPU(struct perf_event *, dead_event); static struct cpumask dead_events_mask; static unsigned long hardlockup_allcpu_dumped; @@ -204,8 +203,6 @@ void hardlockup_detector_perf_disable(vo if (event) { perf_event_disable(event); - this_cpu_write(watchdog_ev, NULL); - this_cpu_write(dead_event, event); cpumask_set_cpu(smp_processor_id(), &dead_events_mask); watchdog_cpus--; } @@ -221,9 +218,9 @@ void hardlockup_detector_perf_cleanup(vo int cpu; for_each_cpu(cpu, &dead_events_mask) { - struct perf_event *event = per_cpu(dead_event, cpu); + struct perf_event *event = per_cpu(watchdog_ev, cpu); - per_cpu(dead_event, cpu) = NULL; + per_cpu(watchdog_ev, cpu) = NULL; perf_event_release_kernel(event); } cpumask_clear(&dead_events_mask);
next prev parent reply index Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-09-12 19:36 [patch V2 00/29] lockup_detector: Cure hotplug deadlocks and replace duct tape Thomas Gleixner 2017-09-12 19:36 ` [patch V2 01/29] hardlockup_detector: Provide interface to stop/restart perf events Thomas Gleixner 2017-09-14 10:40 ` [tip:core/urgent] watchdog/hardlockup: " tip-bot for Peter Zijlstra 2017-09-12 19:36 ` [patch V2 02/29] perf/x86/intel: Sanitize PMU HT bug workaround Thomas Gleixner 2017-09-14 10:40 ` [tip:core/urgent] perf/x86/intel, watchdog/core: " tip-bot for Peter Zijlstra 2017-09-12 19:36 ` [patch V2 03/29] lockup_detector: Provide interface to stop from poweroff() Thomas Gleixner 2017-09-14 10:40 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:36 ` [patch V2 04/29] parisc: Use lockup_detector_stop() Thomas Gleixner 2017-09-14 8:59 ` Helge Deller 2017-09-14 13:46 ` Don Zickus 2017-09-14 10:41 ` [tip:core/urgent] parisc, watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:36 ` [patch V2 05/29] lockup_detector: Remove broken suspend/resume interfaces Thomas Gleixner 2017-09-14 10:41 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 06/29] lockup_detector: Rework cpu hotplug locking Thomas Gleixner 2017-09-14 10:41 ` [tip:core/urgent] watchdog/core: Rework CPU " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 07/29] lockup_detector: Rename watchdog_proc_mutex Thomas Gleixner 2017-09-14 10:42 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 08/29] lockup_detector: Mark hardlockup_detector_disable() __init Thomas Gleixner 2017-09-14 10:42 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 09/29] lockup_detector/perf: Remove broken self disable on failure Thomas Gleixner 2017-09-14 10:43 ` [tip:core/urgent] watchdog/hardlockup/perf: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 10/29] lockup_detector/perf: Prevent cpu hotplug deadlock Thomas Gleixner 2017-09-14 10:43 ` [tip:core/urgent] watchdog/hardlockup/perf: Prevent CPU " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 11/29] lockup_detector: Remove park_in_progress obfuscation Thomas Gleixner 2017-09-12 19:37 ` [patch V2 12/29] lockup_detector: Cleanup stub functions Thomas Gleixner 2017-09-14 10:44 ` [tip:core/urgent] watchdog/core: Clean up " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 13/29] lockup_detector: Cleanup the ifdef maze Thomas Gleixner 2017-09-14 10:44 ` [tip:core/urgent] watchdog/core: Clean up the #ifdef maze tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 14/29] lockup_detector: Split out cpumask write function Thomas Gleixner 2017-09-14 10:45 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 15/29] smpboot/threads: Avoid runtime allocation Thomas Gleixner 2017-09-14 10:45 ` [tip:core/urgent] smpboot/threads, watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 16/29] lockup_detector: Create new thread handling infrastructure Thomas Gleixner 2017-09-14 10:45 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 17/29] lockup_detector: Get rid of the thread teardown/setup dance Thomas Gleixner 2017-09-14 10:46 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 18/29] lockup_detector: Further simplify sysctl handling Thomas Gleixner 2017-09-14 10:46 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 19/29] lockup_detector: Cleanup header mess Thomas Gleixner 2017-09-14 10:47 ` [tip:core/urgent] watchdog/core: Clean up " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 20/29] lockup_detector/sysctl: Get rid of the ifdeffery Thomas Gleixner 2017-09-14 10:47 ` [tip:core/urgent] watchdog/sysctl: Get rid of the #ifdeffery tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 21/29] lockup_detector: Cleanup sysctl variable name space Thomas Gleixner 2017-09-14 10:47 ` [tip:core/urgent] watchdog/sysctl: Clean up " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 22/29] lockup_detector: Make watchdog_nmi_reconfigure() two stage Thomas Gleixner 2017-09-14 10:48 ` [tip:core/urgent] watchdog/core, powerpc: " tip-bot for Thomas Gleixner 2017-10-03 0:29 ` [patch V2 22/29] lockup_detector: " Michael Ellerman 2017-10-03 6:50 ` Thomas Gleixner 2017-10-03 7:04 ` Thomas Gleixner 2017-10-03 10:01 ` Nicholas Piggin 2017-10-03 10:56 ` Thomas Gleixner 2017-10-03 11:36 ` Michael Ellerman 2017-10-03 12:13 ` Thomas Gleixner 2017-10-03 13:20 ` Thomas Gleixner 2017-10-03 19:27 ` Thomas Gleixner 2017-10-04 5:53 ` Michael Ellerman 2017-10-05 16:17 ` Don Zickus 2017-09-12 19:37 ` [patch V2 23/29] lockup_detector: Get rid of the racy update loop Thomas Gleixner 2017-09-14 10:48 ` [tip:core/urgent] watchdog/core: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 24/29] lockup_detector/perf: Implement init time perf validation Thomas Gleixner 2017-09-14 10:48 ` [tip:core/urgent] watchdog/hardlockup/perf: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 25/29] lockup_detector: Implement init time detection of perf Thomas Gleixner 2017-09-13 18:02 ` Don Zickus 2017-09-13 18:05 ` Thomas Gleixner 2017-09-14 5:27 ` Ingo Molnar 2017-09-14 10:49 ` [tip:core/urgent] watchdog/hardlockup/perf: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 26/29] lockup_detector/perf: Implement CPU enable replacement Thomas Gleixner 2017-09-14 10:49 ` [tip:core/urgent] watchdog/hardlockup/perf: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 27/29] lockup_detector: Use new perf CPU enable mechanism Thomas Gleixner 2017-09-14 10:50 ` [tip:core/urgent] watchdog/hardlockup/perf: " tip-bot for Thomas Gleixner 2017-09-12 19:37 ` Thomas Gleixner [this message] 2017-09-14 10:50 ` [tip:core/urgent] watchdog/hardlockup/perf: Simplify deferred event destroy tip-bot for Thomas Gleixner 2017-09-12 19:37 ` [patch V2 29/29] lockup_detector: Cleanup hotplug locking mess Thomas Gleixner 2017-09-14 10:50 ` [tip:core/urgent] watchdog/hardlockup: Clean up " tip-bot for Thomas Gleixner 2017-09-13 18:06 ` [patch V2 00/29] lockup_detector: Cure hotplug deadlocks and replace duct tape Don Zickus 2017-09-14 5:27 ` Ingo Molnar 2017-09-14 8:11 ` Thomas Gleixner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170912194148.340708074@linutronix.de \ --to=tglx@linutronix.de \ --cc=akpm@linux-foundation.org \ --cc=bigeasy@linutronix.de \ --cc=bp@alien8.de \ --cc=cmetcalf@mellanox.com \ --cc=dzickus@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=npiggin@gmail.com \ --cc=peterz@infradead.org \ --cc=uobergfe@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git