All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Bharata B Rao <bharata@in.ibm.com>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
	Adrian Bunk <bunk@fs.tum.de>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Suparna Bhattacharya <suparna@in.ibm.com>
Subject: Re: 2.5.69-mjb1: undefined reference to `blk_queue_empty'
Date: Wed, 14 May 2003 10:32:24 +0200	[thread overview]
Message-ID: <20030514083224.GC13456@suse.de> (raw)
In-Reply-To: <20030514133843.H31823@in.ibm.com>

On Wed, May 14 2003, Bharata B Rao wrote:
> On Tue, May 13, 2003 at 08:11:55PM +0200, Jens Axboe wrote:
> > > >  
> > > >  	/* For now we assume we have the device to ourselves */
> > > >  	/* Just a quick sanity check */
> > > > -	if (!blk_queue_empty(bdev_get_queue(dump_bdev->bdev))) {
> > > > +	if (elv_next_request(bdev_get_queue(dump_bdev->bdev))) {
> > > >  		/* i/o in flight - safer to quit */
> > > >  		return -EBUSY;
> > > >  	}
> > 
> > this looks horribly racy (of the io scheduler internals corrupting
> > kind), I don't see you holding the queue lock here. some io schedulers
> > do non-significant amount of work inside they next_request functions,
> > moving from back-end lists to dispatch queue.
> > 
> 
> Jens,
> 
> All we want to do here is to check if there are requests in the
> queue. Hence thinking of using elv_queue_empty(). Do you think
> we still need to acquire queue lock for this ? This code will be
> run when we have stopped everything else in other cpus by putting
> them into spin.

That really has to be locked down as well. For your purpose, I think the
use of elv_queue_empty() is much better even though it really is an
internal function. The problem mainly comes from AS, that can have non
empty queue but still return NULL in elv_next_request().

But yes, it needs to be locked. If you have pinned the other CPUs, then
I suppose it should work. But it's still a violation of the locking
rules, and one would get in trouble dropping the queue lock from the io
scheduler elevator_queue_empty_fn. No one does that currently, but... So
please take the lock.

-- 
Jens Axboe


  reply	other threads:[~2003-05-14  8:23 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-11  3:44 2.5.69-mjb1 Martin J. Bligh
2003-05-11 13:33 ` 2.5.69-mjb1 Zwane Mwaikambo
2003-05-11 13:12   ` 2.5.69-mjb1 Martin J. Bligh
2003-05-12 13:29 ` 2.5.69-mjb1 William Lee Irwin III
2003-05-12 12:40   ` 2.5.69-mjb1 Martin J. Bligh
2003-05-12 15:03     ` 2.5.69-mjb1 William Lee Irwin III
2003-05-12 13:07       ` 2.5.69-mjb1 Martin J. Bligh
2003-05-12 15:34         ` 2.5.69-mjb1 Dave Hansen
2003-05-12 13:43           ` 2.5.69-mjb1 Martin J. Bligh
2003-05-12 15:11       ` 2.5.69-mjb1 Dave Hansen
2003-05-12 15:05     ` 2.5.69-mjb1 Dave Hansen
2003-05-13  1:23       ` [Lse-tech] 2.5.69-mjb1 William Lee Irwin III
2003-05-13  3:41         ` Martin J. Bligh
2003-05-13  6:27           ` William Lee Irwin III
2003-05-13  6:42           ` Andi Kleen
2003-05-12 20:51 ` 2.5.69-mjb1: undefined reference to `blk_queue_empty' Adrian Bunk
2003-05-13  3:51   ` Martin J. Bligh
2003-05-13  7:18     ` Bharata B Rao
2003-05-13 13:58       ` Martin J. Bligh
2003-05-13 18:11         ` Jens Axboe
2003-05-14  8:08           ` Bharata B Rao
2003-05-14  8:32             ` Jens Axboe [this message]
2003-05-15  4:07               ` Bharata B Rao
2003-05-15  7:29                 ` Jens Axboe
2003-05-15  9:16                   ` Bharata B Rao
2003-05-15 12:52                     ` Martin J. Bligh

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=20030514083224.GC13456@suse.de \
    --to=axboe@suse.de \
    --cc=bharata@in.ibm.com \
    --cc=bunk@fs.tum.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@aracnet.com \
    --cc=suparna@in.ibm.com \
    /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.