linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
@ 2004-11-24  7:24 Christopher S. Aker
  2004-11-24 13:01 ` Jens Axboe
  0 siblings, 1 reply; 9+ messages in thread
From: Christopher S. Aker @ 2004-11-24  7:24 UTC (permalink / raw)
  To: linux-kernel

Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
 [<c025eed4>] cfq_put_request+0xcc/0x119
 [<c0252520>] elv_put_request+0x25/0x27
 [<c02553a5>] __blk_put_request+0x66/0xab
 [<c0256647>] end_that_request_last+0x6a/0x10b
 [<c029d836>] scsi_end_request+0xbf/0xe6
 [<c029db11>] scsi_io_completion+0x117/0x4b6
 [<c029b2e2>] scsi_delete_timer+0x1a/0x66
 [<c02a9290>] sd_rw_intr+0x89/0x30f
 [<c0114472>] rebalance_tick+0xac/0xbb
 [<c0298e8a>] scsi_finish_command+0x85/0xd9
 [<c0298d9d>] scsi_softirq+0xb7/0xdd
 [<c011cba7>] __do_softirq+0xb7/0xc6
 [<c011cbe3>] do_softirq+0x2d/0x2f
 [<c01046b6>] do_IRQ+0x1e/0x24
 [<c0102db2>] common_interrupt+0x1a/0x20
 [<c01005da>] mwait_idle+0x31/0x48
 [<c01005a0>] cpu_idle+0x33/0x3c
 [<c046aa49>] start_kernel+0x175/0x1b1
 [<c046a4bd>] unknown_bootoption+0x0/0x1ab

-Chris

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-24  7:24 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402 Christopher S. Aker
@ 2004-11-24 13:01 ` Jens Axboe
  2004-11-24 13:24   ` Jens Axboe
  0 siblings, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2004-11-24 13:01 UTC (permalink / raw)
  To: Christopher S. Aker; +Cc: linux-kernel

On Wed, Nov 24 2004, Christopher S. Aker wrote:
> Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
>  [<c025eed4>] cfq_put_request+0xcc/0x119
>  [<c0252520>] elv_put_request+0x25/0x27
>  [<c02553a5>] __blk_put_request+0x66/0xab
>  [<c0256647>] end_that_request_last+0x6a/0x10b
>  [<c029d836>] scsi_end_request+0xbf/0xe6
>  [<c029db11>] scsi_io_completion+0x117/0x4b6
>  [<c029b2e2>] scsi_delete_timer+0x1a/0x66
>  [<c02a9290>] sd_rw_intr+0x89/0x30f
>  [<c0114472>] rebalance_tick+0xac/0xbb
>  [<c0298e8a>] scsi_finish_command+0x85/0xd9
>  [<c0298d9d>] scsi_softirq+0xb7/0xdd
>  [<c011cba7>] __do_softirq+0xb7/0xc6
>  [<c011cbe3>] do_softirq+0x2d/0x2f
>  [<c01046b6>] do_IRQ+0x1e/0x24
>  [<c0102db2>] common_interrupt+0x1a/0x20
>  [<c01005da>] mwait_idle+0x31/0x48
>  [<c01005a0>] cpu_idle+0x33/0x3c
>  [<c046aa49>] start_kernel+0x175/0x1b1
>  [<c046a4bd>] unknown_bootoption+0x0/0x1ab

It's a known issue, just not fixed yet... You can ignore the warning,
cfq recovers the condition.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-24 13:01 ` Jens Axboe
@ 2004-11-24 13:24   ` Jens Axboe
  2004-11-24 13:38     ` Christopher S. Aker
  0 siblings, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2004-11-24 13:24 UTC (permalink / raw)
  To: Christopher S. Aker; +Cc: linux-kernel

On Wed, Nov 24 2004, Jens Axboe wrote:
> On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
> >  [<c025eed4>] cfq_put_request+0xcc/0x119
> >  [<c0252520>] elv_put_request+0x25/0x27
> >  [<c02553a5>] __blk_put_request+0x66/0xab
> >  [<c0256647>] end_that_request_last+0x6a/0x10b
> >  [<c029d836>] scsi_end_request+0xbf/0xe6
> >  [<c029db11>] scsi_io_completion+0x117/0x4b6
> >  [<c029b2e2>] scsi_delete_timer+0x1a/0x66
> >  [<c02a9290>] sd_rw_intr+0x89/0x30f
> >  [<c0114472>] rebalance_tick+0xac/0xbb
> >  [<c0298e8a>] scsi_finish_command+0x85/0xd9
> >  [<c0298d9d>] scsi_softirq+0xb7/0xdd
> >  [<c011cba7>] __do_softirq+0xb7/0xc6
> >  [<c011cbe3>] do_softirq+0x2d/0x2f
> >  [<c01046b6>] do_IRQ+0x1e/0x24
> >  [<c0102db2>] common_interrupt+0x1a/0x20
> >  [<c01005da>] mwait_idle+0x31/0x48
> >  [<c01005a0>] cpu_idle+0x33/0x3c
> >  [<c046aa49>] start_kernel+0x175/0x1b1
> >  [<c046a4bd>] unknown_bootoption+0x0/0x1ab
> 
> It's a known issue, just not fixed yet... You can ignore the warning,
> cfq recovers the condition.

Is this an SMP machine, btw?

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-24 13:24   ` Jens Axboe
@ 2004-11-24 13:38     ` Christopher S. Aker
  2004-11-24 13:40       ` Jens Axboe
  0 siblings, 1 reply; 9+ messages in thread
From: Christopher S. Aker @ 2004-11-24 13:38 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

> On Wed, Nov 24 2004, Jens Axboe wrote:
> > On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > > Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
> > >  [<c025eed4>] cfq_put_request+0xcc/0x119
> > >  [<c0252520>] elv_put_request+0x25/0x27
> > >  [<c02553a5>] __blk_put_request+0x66/0xab
> > >  [<c0256647>] end_that_request_last+0x6a/0x10b
> > >  [<c029d836>] scsi_end_request+0xbf/0xe6
> > >  [<c029db11>] scsi_io_completion+0x117/0x4b6
> > >  [<c029b2e2>] scsi_delete_timer+0x1a/0x66
> > >  [<c02a9290>] sd_rw_intr+0x89/0x30f
> > >  [<c0114472>] rebalance_tick+0xac/0xbb
> > >  [<c0298e8a>] scsi_finish_command+0x85/0xd9
> > >  [<c0298d9d>] scsi_softirq+0xb7/0xdd
> > >  [<c011cba7>] __do_softirq+0xb7/0xc6
> > >  [<c011cbe3>] do_softirq+0x2d/0x2f
> > >  [<c01046b6>] do_IRQ+0x1e/0x24
> > >  [<c0102db2>] common_interrupt+0x1a/0x20
> > >  [<c01005da>] mwait_idle+0x31/0x48
> > >  [<c01005a0>] cpu_idle+0x33/0x3c
> > >  [<c046aa49>] start_kernel+0x175/0x1b1
> > >  [<c046a4bd>] unknown_bootoption+0x0/0x1ab
> > 
> > It's a known issue, just not fixed yet... You can ignore the warning,
> > cfq recovers the condition.
> 
> Is this an SMP machine, btw?

Yep.

-Chris


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-24 13:38     ` Christopher S. Aker
@ 2004-11-24 13:40       ` Jens Axboe
  2004-11-24 19:29         ` Christopher S. Aker
  0 siblings, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2004-11-24 13:40 UTC (permalink / raw)
  To: Christopher S. Aker; +Cc: linux-kernel

On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > On Wed, Nov 24 2004, Jens Axboe wrote:
> > > On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > > > Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
> > > >  [<c025eed4>] cfq_put_request+0xcc/0x119
> > > >  [<c0252520>] elv_put_request+0x25/0x27
> > > >  [<c02553a5>] __blk_put_request+0x66/0xab
> > > >  [<c0256647>] end_that_request_last+0x6a/0x10b
> > > >  [<c029d836>] scsi_end_request+0xbf/0xe6
> > > >  [<c029db11>] scsi_io_completion+0x117/0x4b6
> > > >  [<c029b2e2>] scsi_delete_timer+0x1a/0x66
> > > >  [<c02a9290>] sd_rw_intr+0x89/0x30f
> > > >  [<c0114472>] rebalance_tick+0xac/0xbb
> > > >  [<c0298e8a>] scsi_finish_command+0x85/0xd9
> > > >  [<c0298d9d>] scsi_softirq+0xb7/0xdd
> > > >  [<c011cba7>] __do_softirq+0xb7/0xc6
> > > >  [<c011cbe3>] do_softirq+0x2d/0x2f
> > > >  [<c01046b6>] do_IRQ+0x1e/0x24
> > > >  [<c0102db2>] common_interrupt+0x1a/0x20
> > > >  [<c01005da>] mwait_idle+0x31/0x48
> > > >  [<c01005a0>] cpu_idle+0x33/0x3c
> > > >  [<c046aa49>] start_kernel+0x175/0x1b1
> > > >  [<c046a4bd>] unknown_bootoption+0x0/0x1ab
> > > 
> > > It's a known issue, just not fixed yet... You can ignore the warning,
> > > cfq recovers the condition.
> > 
> > Is this an SMP machine, btw?
> 
> Yep.

Can you try this simple check to see if it triggers anything?

===== cfq-iosched.c 1.13 vs edited =====
--- 1.13/drivers/block/cfq-iosched.c	2004-10-30 01:35:21 +02:00
+++ edited/cfq-iosched.c	2004-11-24 14:40:13 +01:00
@@ -1389,6 +1389,8 @@
 	struct cfq_data *cfqd = q->elevator->elevator_data;
 	struct cfq_rq *crq = RQ_DATA(rq);
 
+	WARN_ON(!spin_is_locked(q->queue_lock));
+
 	if (crq) {
 		struct cfq_queue *cfqq = crq->cfq_queue;
 

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-24 13:40       ` Jens Axboe
@ 2004-11-24 19:29         ` Christopher S. Aker
  2004-11-25 18:43           ` Jens Axboe
  0 siblings, 1 reply; 9+ messages in thread
From: Christopher S. Aker @ 2004-11-24 19:29 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-kernel

> Can you try this simple check to see if it triggers anything?
>
> ===== cfq-iosched.c 1.13 vs edited =====
> --- 1.13/drivers/block/cfq-iosched.c 2004-10-30 01:35:21 +02:00
> +++ edited/cfq-iosched.c 2004-11-24 14:40:13 +01:00
> @@ -1389,6 +1389,8 @@
>   struct cfq_data *cfqd = q->elevator->elevator_data;
>   struct cfq_rq *crq = RQ_DATA(rq);
>
> + WARN_ON(!spin_is_locked(q->queue_lock));
> +
>   if (crq) {
>   struct cfq_queue *cfqq = crq->cfq_queue;

I'd be happy to, but I won't have a free machine for a couple of days.  I'll can
probably give it a shot during the weekend...

-Chris


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-24 19:29         ` Christopher S. Aker
@ 2004-11-25 18:43           ` Jens Axboe
  2004-11-26  7:43             ` Jens Axboe
  0 siblings, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2004-11-25 18:43 UTC (permalink / raw)
  To: Christopher S. Aker; +Cc: linux-kernel, Andrew Morton

On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > Can you try this simple check to see if it triggers anything?
> >
> > ===== cfq-iosched.c 1.13 vs edited =====
> > --- 1.13/drivers/block/cfq-iosched.c 2004-10-30 01:35:21 +02:00
> > +++ edited/cfq-iosched.c 2004-11-24 14:40:13 +01:00
> > @@ -1389,6 +1389,8 @@
> >   struct cfq_data *cfqd = q->elevator->elevator_data;
> >   struct cfq_rq *crq = RQ_DATA(rq);
> >
> > + WARN_ON(!spin_is_locked(q->queue_lock));
> > +
> >   if (crq) {
> >   struct cfq_queue *cfqq = crq->cfq_queue;
> 
> I'd be happy to, but I won't have a free machine for a couple of days.
> I'll can probably give it a shot during the weekend...

Nevermind, here's a patch to fix it. I was so focused on the decrement
side of things that I forgot to check the increment, pretty silly error
really.

Signed-off-by: Jens Axboe <axboe@suse.de>

===== drivers/block/cfq-iosched.c 1.12 vs edited =====
--- 1.12/drivers/block/cfq-iosched.c	2004-10-28 09:40:02 +02:00
+++ edited/drivers/block/cfq-iosched.c	2004-11-25 19:39:39 +01:00
@@ -1398,10 +1398,7 @@
 		if (crq->io_context)
 			put_io_context(crq->io_context->ioc);
 
-		if (!cfqq->allocated[crq->is_write]) {
-			WARN_ON(1);
-			cfqq->allocated[crq->is_write] = 1;
-		}
+		BUG_ON(!cfqq->allocated[crq->is_write]);
 		cfqq->allocated[crq->is_write]--;
 
 		mempool_free(crq, cfqd->crq_pool);
@@ -1442,6 +1439,7 @@
 	if (cfqq->allocated[rw] >= cfqd->max_queued)
 		goto out_lock;
 
+	cfqq->allocated[rw]++;
 	spin_unlock_irqrestore(q->queue_lock, flags);
 
 	/*
@@ -1465,7 +1463,6 @@
 		crq->in_flight = crq->accounted = crq->is_sync = 0;
 		crq->is_write = rw;
 		rq->elevator_private = crq;
-		cfqq->allocated[rw]++;
 		cfqq->alloc_limit[rw] = 0;
 		return 0;
 	}
@@ -1473,6 +1470,7 @@
 	put_io_context(cic->ioc);
 err:
 	spin_lock_irqsave(q->queue_lock, flags);
+	cfqq->allocated[rw]--;
 	cfq_put_queue(cfqq);
 out_lock:
 	spin_unlock_irqrestore(q->queue_lock, flags);

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-25 18:43           ` Jens Axboe
@ 2004-11-26  7:43             ` Jens Axboe
  2004-11-26  8:07               ` Jens Axboe
  0 siblings, 1 reply; 9+ messages in thread
From: Jens Axboe @ 2004-11-26  7:43 UTC (permalink / raw)
  To: Christopher S. Aker; +Cc: linux-kernel, Andrew Morton

On Thu, Nov 25 2004, Jens Axboe wrote:
> On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > > Can you try this simple check to see if it triggers anything?
> > >
> > > ===== cfq-iosched.c 1.13 vs edited =====
> > > --- 1.13/drivers/block/cfq-iosched.c 2004-10-30 01:35:21 +02:00
> > > +++ edited/cfq-iosched.c 2004-11-24 14:40:13 +01:00
> > > @@ -1389,6 +1389,8 @@
> > >   struct cfq_data *cfqd = q->elevator->elevator_data;
> > >   struct cfq_rq *crq = RQ_DATA(rq);
> > >
> > > + WARN_ON(!spin_is_locked(q->queue_lock));
> > > +
> > >   if (crq) {
> > >   struct cfq_queue *cfqq = crq->cfq_queue;
> > 
> > I'd be happy to, but I won't have a free machine for a couple of days.
> > I'll can probably give it a shot during the weekend...
> 
> Nevermind, here's a patch to fix it. I was so focused on the decrement
> side of things that I forgot to check the increment, pretty silly error
> really.

And a small fix is needed on top of that, in case of hash type changes
(writing to hash_key).

Signed-off-by: Jens Axboe <axboe@suse.de>

===== drivers/block/cfq-iosched.c 1.13 vs edited =====
--- 1.13/drivers/block/cfq-iosched.c	2004-10-30 01:35:21 +02:00
+++ edited/drivers/block/cfq-iosched.c	2004-11-26 08:40:36 +01:00
@@ -1398,10 +1398,7 @@
 		if (crq->io_context)
 			put_io_context(crq->io_context->ioc);
 
-		if (!cfqq->allocated[crq->is_write]) {
-			WARN_ON(1);
-			cfqq->allocated[crq->is_write] = 1;
-		}
+		BUG_ON(!cfqq->allocated[crq->is_write]);
 		cfqq->allocated[crq->is_write]--;
 
 		mempool_free(crq, cfqd->crq_pool);
@@ -1439,20 +1436,30 @@
 #endif
 	}
 
+repeat:
 	if (cfqq->allocated[rw] >= cfqd->max_queued)
 		goto out_lock;
 
+	cfqq->allocated[rw]++;
 	spin_unlock_irqrestore(q->queue_lock, flags);
 
 	/*
-	 * if hashing type has changed, the cfq_queue might change here. we
-	 * don't bother rechecking ->allocated since it should be a rare
-	 * event
+	 * if hashing type has changed, the cfq_queue might change here.
 	 */
 	cic = cfq_get_io_context(&cfqq, gfp_mask);
 	if (!cic)
 		goto err;
 
+	/*
+	 * repeat allocation checks on queue change
+	 */
+	if (unlikely(cic->cfqq != cfqq)) {
+		spin_lock_irqsave(q->queue_lock, flags);
+		cfqq->allocated[rw]--;
+		cfqq = cic->cfqq;
+		goto repeat;
+	}
+
 	crq = mempool_alloc(cfqd->crq_pool, gfp_mask);
 	if (crq) {
 		RB_CLEAR(&crq->rb_node);
@@ -1465,7 +1472,6 @@
 		crq->in_flight = crq->accounted = crq->is_sync = 0;
 		crq->is_write = rw;
 		rq->elevator_private = crq;
-		cfqq->allocated[rw]++;
 		cfqq->alloc_limit[rw] = 0;
 		return 0;
 	}
@@ -1473,6 +1479,7 @@
 	put_io_context(cic->ioc);
 err:
 	spin_lock_irqsave(q->queue_lock, flags);
+	cfqq->allocated[rw]--;
 	cfq_put_queue(cfqq);
 out_lock:
 	spin_unlock_irqrestore(q->queue_lock, flags);

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402
  2004-11-26  7:43             ` Jens Axboe
@ 2004-11-26  8:07               ` Jens Axboe
  0 siblings, 0 replies; 9+ messages in thread
From: Jens Axboe @ 2004-11-26  8:07 UTC (permalink / raw)
  To: Christopher S. Aker; +Cc: linux-kernel, Andrew Morton

On Fri, Nov 26 2004, Jens Axboe wrote:
> On Thu, Nov 25 2004, Jens Axboe wrote:
> > On Wed, Nov 24 2004, Christopher S. Aker wrote:
> > > > Can you try this simple check to see if it triggers anything?
> > > >
> > > > ===== cfq-iosched.c 1.13 vs edited =====
> > > > --- 1.13/drivers/block/cfq-iosched.c 2004-10-30 01:35:21 +02:00
> > > > +++ edited/cfq-iosched.c 2004-11-24 14:40:13 +01:00
> > > > @@ -1389,6 +1389,8 @@
> > > >   struct cfq_data *cfqd = q->elevator->elevator_data;
> > > >   struct cfq_rq *crq = RQ_DATA(rq);
> > > >
> > > > + WARN_ON(!spin_is_locked(q->queue_lock));
> > > > +
> > > >   if (crq) {
> > > >   struct cfq_queue *cfqq = crq->cfq_queue;
> > > 
> > > I'd be happy to, but I won't have a free machine for a couple of days.
> > > I'll can probably give it a shot during the weekend...
> > 
> > Nevermind, here's a patch to fix it. I was so focused on the decrement
> > side of things that I forgot to check the increment, pretty silly error
> > really.
> 
> And a small fix is needed on top of that, in case of hash type changes
> (writing to hash_key).

... And that one relied on another hashing change I made locally. 3rd
time is the charm,.

Signed-off-by: Jens Axboe <axboe@suse.de>

===== drivers/block/cfq-iosched.c 1.13 vs edited =====
--- 1.13/drivers/block/cfq-iosched.c	2004-10-30 01:35:21 +02:00
+++ edited/drivers/block/cfq-iosched.c	2004-11-26 09:06:38 +01:00
@@ -1398,10 +1398,7 @@
 		if (crq->io_context)
 			put_io_context(crq->io_context->ioc);
 
-		if (!cfqq->allocated[crq->is_write]) {
-			WARN_ON(1);
-			cfqq->allocated[crq->is_write] = 1;
-		}
+		BUG_ON(!cfqq->allocated[crq->is_write]);
 		cfqq->allocated[crq->is_write]--;
 
 		mempool_free(crq, cfqd->crq_pool);
@@ -1421,7 +1418,7 @@
 	struct cfq_data *cfqd = q->elevator->elevator_data;
 	struct cfq_io_context *cic;
 	const int rw = rq_data_dir(rq);
-	struct cfq_queue *cfqq;
+	struct cfq_queue *cfqq, *saved_cfqq;
 	struct cfq_rq *crq;
 	unsigned long flags;
 
@@ -1439,20 +1436,30 @@
 #endif
 	}
 
+repeat:
 	if (cfqq->allocated[rw] >= cfqd->max_queued)
 		goto out_lock;
 
+	cfqq->allocated[rw]++;
 	spin_unlock_irqrestore(q->queue_lock, flags);
 
 	/*
-	 * if hashing type has changed, the cfq_queue might change here. we
-	 * don't bother rechecking ->allocated since it should be a rare
-	 * event
+	 * if hashing type has changed, the cfq_queue might change here.
 	 */
+	saved_cfqq = cfqq;
 	cic = cfq_get_io_context(&cfqq, gfp_mask);
 	if (!cic)
 		goto err;
 
+	/*
+	 * repeat allocation checks on queue change
+	 */
+	if (unlikely(saved_cfqq != cfqq)) {
+		spin_lock_irqsave(q->queue_lock, flags);
+		saved_cfqq->allocated[rw]--;
+		goto repeat;
+	}
+
 	crq = mempool_alloc(cfqd->crq_pool, gfp_mask);
 	if (crq) {
 		RB_CLEAR(&crq->rb_node);
@@ -1465,7 +1472,6 @@
 		crq->in_flight = crq->accounted = crq->is_sync = 0;
 		crq->is_write = rw;
 		rq->elevator_private = crq;
-		cfqq->allocated[rw]++;
 		cfqq->alloc_limit[rw] = 0;
 		return 0;
 	}
@@ -1473,6 +1479,7 @@
 	put_io_context(cic->ioc);
 err:
 	spin_lock_irqsave(q->queue_lock, flags);
+	cfqq->allocated[rw]--;
 	cfq_put_queue(cfqq);
 out_lock:
 	spin_unlock_irqrestore(q->queue_lock, flags);

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-11-27  7:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-24  7:24 2.6.10-rc2-bk7 - Badness in cfq_put_request at drivers/block/cfq-iosched.c:1402 Christopher S. Aker
2004-11-24 13:01 ` Jens Axboe
2004-11-24 13:24   ` Jens Axboe
2004-11-24 13:38     ` Christopher S. Aker
2004-11-24 13:40       ` Jens Axboe
2004-11-24 19:29         ` Christopher S. Aker
2004-11-25 18:43           ` Jens Axboe
2004-11-26  7:43             ` Jens Axboe
2004-11-26  8:07               ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).