All of lore.kernel.org
 help / color / mirror / Atom feed
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>

  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: link
Be 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.