RE: [PATCH] Fix rq->lock vs logbuf_lock unlock race
From: Bu, Yitian
Date: Wed Feb 20 2013 - 04:38:58 EST
> -----Original Message-----
> From: Peter Zijlstra [mailto:a.p.zijlstra@xxxxxxxxx]
> Sent: Wednesday, February 20, 2013 4:45 PM
> To: Bu, Yitian
> Cc: tglx@xxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; mingo@xxxxxxxxxx
> Subject: Re: [PATCH] Fix rq->lock vs logbuf_lock unlock race
> On Mon, 2013-02-18 at 12:53 +0000, Bu, Yitian wrote:
> > This patch is for kernel V3.7.9
> > From 8796f4a2175a323aaa49ea8dd0fe68678dd5dccd Mon Sep 17 00:00:00
> > From: ybu <ybu@xxxxxxxxxxxxxxxx>
> > Date: Mon, 18 Feb 2013 19:52:01 +0800
> > Subject: [PATCH] Fix rq->lock vs logbuf_lock unlock race
> > fix up the fallout from commit 07354eb1a74d1 ("locking printk:
> > Annotate logbuf_lock as raw")
> > Release console_sem after unlocking the logbuf_lock avoids some lock
> > inversion troubles between logbuf_lock and rq->lock.
> Please clarify how and where.. you're not actually supposed to use
> printk() while holding rq->lock.
1. the patch 0b5e1c5255e, which is written by you, release console_sem
after logbuf_lock. But the patch 07354eb1a revert one of your change, it
reintroduced a lock inversion problem which was fixed in 0b5e1c5255.
The purpose of my patch is the same as your patch 0b5e1c5255e.
2. from printk comment: "This is printk(). It can be called from any context.
We want it to work. ". I suppose to use printk in any context.