Re: Spinlock Related Debug Messages in Block Driver

From: Jens Axboe
Date: Tue Jul 11 2006 - 03:42:14 EST


On Tue, Jul 11 2006, Srinivas Ganji wrote:
> On 7/11/06, Jens Axboe <axboe@xxxxxxx> wrote:
> >On Tue, Jul 11 2006, Srinivas Ganji wrote:
> >> Dear All,
> >>
> >> I implemented the sample block driver for the removable devices and
> >> the code contains no statements related to the spin lock except a lock
> >> to the blk_init_queue API as shown below.
> >>
> >> spinlock_t qlock;
> >> gDisk->blkqueue = blk_init_queue(do_my_request, &gDisk->qlock);
> >>
> >> The kernel version is 2.6.10.
> >>
> >> Everything works fine but when I try to copy a file of huge size
> >> (about 100MB), the following debug messages are getting displayed on
> >> the console:
> >>
> >> Fc3: drivers/block/ll_rw_blk.c: 2351: spin_lock already locked by the
> >> drivers.
> >> Fc3: drivers/block/ll_rw_blk.c: 2468: spin_unlock not locked by the
> >drivers.
> >>
> >> In spite of these debug messages; the file is getting copied
> >successfully.
> >> I studied the Block driver 16th chapter in LDD third edition.
> >>
> >> Can any one provide a pointer to these debug messages. Do I need to
> >> implement any patches for the kernel.
> >
> >You need to initialize the lock passed to blk_init_queue() first. See eg
> >spin_lock_init(), or one of the static initializers
> >(SPIN_LOCK_UNLOCKED).
> >
> >--
> >Jens Axboe
>
> Dear Jen,
>
> Thanks for your reply.
> I used the spin_lock_init API before blk_init_queue API. Even though I
> got the error.
>
> Is there any other reason for gertting the error messages?

Then it's probably a bug in your driver. I cannot say more without
seeing the source.

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/