All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boqun Feng <boqun.feng@gmail.com>
To: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Byungchul Park <byungchul.park@lge.com>,
	Bart Van Assche <Bart.VanAssche@wdc.com>,
	peterz@infradead.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
	"axboe@kernel.dk" <axboe@kernel.dk>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"sfr@canb.auug.org.au" <sfr@canb.auug.org.au>,
	"linux-next@vger.kernel.org" <linux-next@vger.kernel.org>,
	kernel-team@lge.com
Subject: Re: possible circular locking dependency detected [was: linux-next: Tree for Aug 22]
Date: Wed, 23 Aug 2017 13:35:01 +0800	[thread overview]
Message-ID: <20170823053501.GJ11771@tardis> (raw)
In-Reply-To: <20170823044648.GE10329@jagdpanzerIV.localdomain>

[-- Attachment #1: Type: text/plain, Size: 1855 bytes --]

On Wed, Aug 23, 2017 at 01:46:48PM +0900, Sergey Senozhatsky wrote:
> On (08/23/17 12:38), Boqun Feng wrote:
> [..]
> > diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
> > index 642fb5362507..a3709e15f609 100644
> > --- a/kernel/locking/lockdep.c
> > +++ b/kernel/locking/lockdep.c
> > @@ -1156,6 +1156,23 @@ print_circular_lock_scenario(struct held_lock *src,
> >  		__print_lock_name(target);
> >  		printk(KERN_CONT ");\n");
> 
> KERN_CONT and "\n" should not be together. "\n" flushes the cont
> buffer immediately.
> 

Hmm.. Not quite familiar with printk() stuffs, but I could see several
usages of printk(KERN_CONT "...\n") in kernel.

Did a bit research myself, and I now think the inappropriate use is to
use a KERN_CONT printk *after* another printk ending with a "\n". Am I
missing some recent changes or rules of KERN_CONT?

Regards,
Boqun

> 	-ss
> 
> >  		printk("\n *** DEADLOCK ***\n\n");
> > +	} else if (cross_lock(src->instance)) {
> > +		printk(" Possible unsafe locking scenario by crosslock:\n\n");
> > +		printk("       CPU0                    CPU1\n");
> > +		printk("       ----                    ----\n");
> > +		printk("  lock(");
> > +		__print_lock_name(target);
> > +		printk(KERN_CONT ");\n");
> > +		printk("  lock(");
> > +		__print_lock_name(source);
> > +		printk(KERN_CONT ");\n");
> > +		printk("                               lock(");
> > +		__print_lock_name(parent == source ? target : parent);
> > +		printk(KERN_CONT ");\n");
> > +		printk("                               unlock(");
> > +		__print_lock_name(source);
> > +		printk(KERN_CONT ");\n");
> > +		printk("\n *** DEADLOCK ***\n\n");
> >  	} else {
> >  		printk(" Possible unsafe locking scenario:\n\n");
> >  		printk("       CPU0                    CPU1\n");
> > -- 
> > 2.14.1
> > 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2017-08-23  5:35 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-22  8:38 linux-next: Tree for Aug 22 Stephen Rothwell
2017-08-22 10:47 ` possible circular locking dependency detected [was: linux-next: Tree for Aug 22] Sergey Senozhatsky
2017-08-22 21:43   ` Bart Van Assche
2017-08-22 21:43     ` Bart Van Assche
2017-08-23  0:03     ` Byungchul Park
2017-08-23  0:03       ` Byungchul Park
2017-08-23  2:36       ` Sergey Senozhatsky
2017-08-23  2:59         ` Byungchul Park
2017-08-23  3:49       ` Boqun Feng
2017-08-23  3:49         ` Boqun Feng
2017-08-23  4:38         ` Boqun Feng
2017-08-23  4:46           ` Sergey Senozhatsky
2017-08-23  5:35             ` Boqun Feng [this message]
2017-08-23  5:44               ` Sergey Senozhatsky
2017-08-23  5:55               ` Sergey Senozhatsky
2017-08-24  4:39                 ` Boqun Feng
2017-08-24  4:49                   ` Sergey Senozhatsky
2017-08-23  5:44           ` Byungchul Park
2017-08-23  4:46         ` Byungchul Park
2017-08-23  5:01           ` Boqun Feng
2017-08-23  7:53       ` Peter Zijlstra
2017-08-30  5:20       ` Sergey Senozhatsky
2017-08-30  5:43         ` Byungchul Park
2017-08-30  6:15           ` Sergey Senozhatsky
2017-08-30  8:42             ` Peter Zijlstra
2017-08-30  8:47               ` Peter Zijlstra
2017-08-30  8:53                 ` Byungchul Park
2017-08-30  8:53                   ` Byungchul Park
2017-08-30 12:30                 ` Sergey Senozhatsky
2017-08-22 18:11 ` linux-next: Tree for Aug 22 Stephen Rothwell
2017-08-22 18:14   ` Stephen Rothwell
2017-08-22 18:59     ` Paul E. McKenney
2017-08-22 18:59       ` Paul E. McKenney
2017-08-22 19:12       ` Stephen Rothwell
2017-08-22 19:32         ` Paul E. McKenney
2017-08-22 19:36           ` Paul E. McKenney
2017-08-22 21:57             ` Stephen Rothwell
2017-08-22 22:27               ` Stephen Rothwell

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=20170823053501.GJ11771@tardis \
    --to=boqun.feng@gmail.com \
    --cc=Bart.VanAssche@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=byungchul.park@lge.com \
    --cc=kernel-team@lge.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=peterz@infradead.org \
    --cc=sergey.senozhatsky.work@gmail.com \
    --cc=sfr@canb.auug.org.au \
    /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.