From: Byungchul Park <byungchul.park@lge.com> To: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org>, peterz@infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@lge.com Subject: Re: [PATCH 1/2] lockdep: Introduce CROSSRELEASE_STACK_TRACE and make it not unwind as default Date: Thu, 19 Oct 2017 11:00:33 +0900 [thread overview] Message-ID: <20171019020033.GG32368@X58A-UD3R> (raw) In-Reply-To: <alpine.DEB.2.20.1710181533260.1925@nanos> On Wed, Oct 18, 2017 at 03:36:05PM +0200, Thomas Gleixner wrote: > On Wed, 18 Oct 2017, Ingo Molnar wrote: > > * Thomas Gleixner <tglx@linutronix.de> wrote: > > > > > On Wed, 18 Oct 2017, Byungchul Park wrote: > > > > #ifdef CONFIG_LOCKDEP_CROSSRELEASE > > > > +#ifdef CONFIG_CROSSRELEASE_STACK_TRACE > > > > #define MAX_XHLOCK_TRACE_ENTRIES 5 > > > > +#else > > > > +#define MAX_XHLOCK_TRACE_ENTRIES 1 > > > > +#endif > > > > > > > > /* > > > > * This is for keeping locks waiting for commit so that true dependencies > > > > diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c > > > > index e36e652..5c2ddf2 100644 > > > > --- a/kernel/locking/lockdep.c > > > > +++ b/kernel/locking/lockdep.c > > > > @@ -4863,8 +4863,13 @@ static void add_xhlock(struct held_lock *hlock) > > > > xhlock->trace.nr_entries = 0; > > > > xhlock->trace.max_entries = MAX_XHLOCK_TRACE_ENTRIES; > > > > xhlock->trace.entries = xhlock->trace_entries; > > > > +#ifdef CONFIG_CROSSRELEASE_STACK_TRACE > > > > xhlock->trace.skip = 3; > > > > save_stack_trace(&xhlock->trace); > > > > +#else > > > > + xhlock->trace.nr_entries = 1; > > > > + xhlock->trace.entries[0] = hlock->acquire_ip; > > > > +#endif > > > > > > Hmm. Would it be possible to have this switchable at boot time via a > > > command line parameter? So in case of a splat with no stack trace, one > > > could just reboot and set something like 'lockdep_fullstack' on the kernel > > > command line to get the full data without having to recompile the kernel. > > > > Yeah, and I'd suggest keeping the Kconfig option to default-enable that boot > > option as well - i.e. let's have both. > > That makes sense. Like we have with debug objects: > DEBUG_OBJECTS_ENABLE_DEFAULT. Thank you very much for the suggestion. I will work for it. > Which reminds me that I wanted to convert them to static_key so they are > zero overhead when disabled. Sigh, why are todo lists growth only? > > Thanks, > > tglx
WARNING: multiple messages have this Message-ID (diff)
From: Byungchul Park <byungchul.park@lge.com> To: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org>, peterz@infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@lge.com Subject: Re: [PATCH 1/2] lockdep: Introduce CROSSRELEASE_STACK_TRACE and make it not unwind as default Date: Thu, 19 Oct 2017 11:00:33 +0900 [thread overview] Message-ID: <20171019020033.GG32368@X58A-UD3R> (raw) In-Reply-To: <alpine.DEB.2.20.1710181533260.1925@nanos> On Wed, Oct 18, 2017 at 03:36:05PM +0200, Thomas Gleixner wrote: > On Wed, 18 Oct 2017, Ingo Molnar wrote: > > * Thomas Gleixner <tglx@linutronix.de> wrote: > > > > > On Wed, 18 Oct 2017, Byungchul Park wrote: > > > > #ifdef CONFIG_LOCKDEP_CROSSRELEASE > > > > +#ifdef CONFIG_CROSSRELEASE_STACK_TRACE > > > > #define MAX_XHLOCK_TRACE_ENTRIES 5 > > > > +#else > > > > +#define MAX_XHLOCK_TRACE_ENTRIES 1 > > > > +#endif > > > > > > > > /* > > > > * This is for keeping locks waiting for commit so that true dependencies > > > > diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c > > > > index e36e652..5c2ddf2 100644 > > > > --- a/kernel/locking/lockdep.c > > > > +++ b/kernel/locking/lockdep.c > > > > @@ -4863,8 +4863,13 @@ static void add_xhlock(struct held_lock *hlock) > > > > xhlock->trace.nr_entries = 0; > > > > xhlock->trace.max_entries = MAX_XHLOCK_TRACE_ENTRIES; > > > > xhlock->trace.entries = xhlock->trace_entries; > > > > +#ifdef CONFIG_CROSSRELEASE_STACK_TRACE > > > > xhlock->trace.skip = 3; > > > > save_stack_trace(&xhlock->trace); > > > > +#else > > > > + xhlock->trace.nr_entries = 1; > > > > + xhlock->trace.entries[0] = hlock->acquire_ip; > > > > +#endif > > > > > > Hmm. Would it be possible to have this switchable at boot time via a > > > command line parameter? So in case of a splat with no stack trace, one > > > could just reboot and set something like 'lockdep_fullstack' on the kernel > > > command line to get the full data without having to recompile the kernel. > > > > Yeah, and I'd suggest keeping the Kconfig option to default-enable that boot > > option as well - i.e. let's have both. > > That makes sense. Like we have with debug objects: > DEBUG_OBJECTS_ENABLE_DEFAULT. Thank you very much for the suggestion. I will work for it. > Which reminds me that I wanted to convert them to static_key so they are > zero overhead when disabled. Sigh, why are todo lists growth only? > > Thanks, > > tglx -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-10-19 2:00 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-10-18 9:13 [PATCH 1/2] lockdep: Introduce CROSSRELEASE_STACK_TRACE and make it not unwind as default Byungchul Park 2017-10-18 9:13 ` Byungchul Park 2017-10-18 9:13 ` [PATCH 2/2] lockdep: Remove BROKEN flag of LOCKDEP_CROSSRELEASE Byungchul Park 2017-10-18 9:13 ` Byungchul Park 2017-10-18 10:12 ` Ingo Molnar 2017-10-18 10:12 ` Ingo Molnar 2017-10-19 1:58 ` Byungchul Park 2017-10-19 1:58 ` Byungchul Park 2017-10-18 10:09 ` [PATCH 1/2] lockdep: Introduce CROSSRELEASE_STACK_TRACE and make it not unwind as default Ingo Molnar 2017-10-18 10:09 ` Ingo Molnar 2017-10-19 4:32 ` Byungchul Park 2017-10-19 4:32 ` Byungchul Park 2017-10-19 5:57 ` Ingo Molnar 2017-10-19 5:57 ` Ingo Molnar 2017-10-19 6:11 ` Byungchul Park 2017-10-19 6:11 ` Byungchul Park 2017-10-19 6:22 ` Ingo Molnar 2017-10-19 6:22 ` Ingo Molnar 2017-10-19 6:36 ` Byungchul Park 2017-10-19 6:36 ` Byungchul Park 2017-10-19 8:05 ` Ingo Molnar 2017-10-19 8:05 ` Ingo Molnar 2017-10-19 6:22 ` Byungchul Park 2017-10-19 6:22 ` Byungchul Park 2017-10-19 8:10 ` Ingo Molnar 2017-10-19 8:10 ` Ingo Molnar 2017-10-19 9:02 ` 박병철/선임연구원/SW Platform(연)AOT팀(byungchul.park@lge.com) 2017-10-19 9:02 ` 박병철/선임연구원/SW Platform(연)AOT팀(byungchul.park@lge.com) 2017-10-19 9:41 ` Ingo Molnar 2017-10-19 9:41 ` Ingo Molnar 2017-10-18 13:23 ` Thomas Gleixner 2017-10-18 13:23 ` Thomas Gleixner 2017-10-18 13:30 ` Ingo Molnar 2017-10-18 13:30 ` Ingo Molnar 2017-10-18 13:36 ` Thomas Gleixner 2017-10-18 13:36 ` Thomas Gleixner 2017-10-18 14:15 ` Matthew Wilcox 2017-10-18 14:15 ` Matthew Wilcox 2017-10-18 14:35 ` Thomas Gleixner 2017-10-18 14:35 ` Thomas Gleixner 2017-10-18 17:05 ` Ingo Molnar 2017-10-18 17:05 ` Ingo Molnar 2017-10-19 2:00 ` Byungchul Park [this message] 2017-10-19 2:00 ` Byungchul Park
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=20171019020033.GG32368@X58A-UD3R \ --to=byungchul.park@lge.com \ --cc=kernel-team@lge.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mingo@kernel.org \ --cc=peterz@infradead.org \ --cc=tglx@linutronix.de \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.