Re: cfq build breakage

From: Jens Axboe
Date: Tue Jun 28 2005 - 02:40:57 EST


On Mon, Jun 27 2005, Andrew Morton wrote:
> Jens Axboe <axboe@xxxxxxx> wrote:
> >
> > On Mon, Jun 27 2005, Andrew Morton wrote:
> > > Jeff Garzik <jgarzik@xxxxxxxxx> wrote:
> > > >
> > > >
> > > > In latest git tree...
> > > >
> > > > CC [M] drivers/block/cfq-iosched.o
> > > > drivers/block/cfq-iosched.c: In function `cfq_put_queue':
> > > > drivers/block/cfq-iosched.c:303: sorry, unimplemented: inlining failed
> > > > in call to 'cfq_pending_requests': function body not available
> > > > drivers/block/cfq-iosched.c:1080: sorry, unimplemented: called from here
> > > > drivers/block/cfq-iosched.c: In function `__cfq_may_queue':
> > > > drivers/block/cfq-iosched.c:1955: warning: the address of
> > > > `cfq_cfqq_must_alloc_slice', will always evaluate as `true'
> > > > make[2]: *** [drivers/block/cfq-iosched.o] Error 1
> > > > make[1]: *** [drivers/block] Error 2
> > > > make: *** [drivers] Error 2
> > >
> > > hm. The inline thing is trivial, but the misuse of
> > > cfq_cfqq_must_alloc_slice() means that we now wander into untested
> > > territory.
> >
> > Indeed, which compiler errors on that?
>
> 4.0 and later, I guess.

Ok

> > > @@ -1969,7 +1968,7 @@ __cfq_may_queue(struct cfq_data *cfqd, s
> > > * only allow 1 ELV_MQUEUE_MUST per slice, otherwise we
> > > * can quickly flood the queue with writes from a single task
> > > */
> > > - if (rw == READ || !cfq_cfqq_must_alloc_slice) {
> > > + if (rw == READ || !cfq_cfqq_must_alloc_slice(cfqq)) {
> > > cfq_mark_cfqq_must_alloc_slice(cfqq);
> > > return ELV_MQUEUE_MUST;
> > > }
> >
> > thanks, clearly a typo but inside if 0.
>
> But the other instance was inside `#if 1'. This fixup will change behaviour.

Hrmpf strange, I submitted what I built. Must be some silly slip up
here.

--
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/