Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler
From: Paolo Valente
Date: Wed Apr 12 2017 - 02:02:06 EST
> Il giorno 11 apr 2017, alle ore 20:31, Bart Van Assche <bart.vanassche@xxxxxxxxxxx> ha scritto:
>
> On Tue, 2017-04-11 at 19:37 +0200, Paolo Valente wrote:
>> Just pushed:
>> https://github.com/Algodev-github/bfq-mq/tree/add-bfq-mq-logical
>
> Thanks!
>
> But are you aware that the code on that branch doesn't build?
>
> $ make all
> [ ... ]
> ERROR: "bfq_mark_bfqq_busy" [block/bfq-wf2q.ko] undefined!
> ERROR: "bfqg_stats_update_dequeue" [block/bfq-wf2q.ko] undefined!
> [ ... ]
>
> $ PAGER= git grep bfq_mark_bfqq_busy
> block/bfq-wf2q.c: bfq_mark_bfqq_busy(bfqq);
>
That's exactly the complain of the kbuild test robot. As I wrote,
build completes with no problem in my test system (Ubuntu 16.04, gcc
5.4.0), even with the exact offending tree and .config that the robot
reports.
I didn't understand what is going on. In your case, as well as for
the test robot, the compilation of the file block/bfq-wf2q.c as a
module component fails, because that file does not contain the
definition of the reported functions. But that definition is
(uniquely) in the file block/bfq-iosched.c, which is to be compiled
with the former file, according to the following rule in
block/Makefile:
obj-$(CONFIG_IOSCHED_BFQ) += bfq-iosched.o bfq-wf2q.o bfq-cgroup.o
I have tried all combinations of configurations for bfq (builti-in or
module, with or without cgrousp support), always successfully. If it
makes any sense to share this information, these are the exact
commands I used to test al combinations (in addition to make full
builds in some cases, and try make all as in your case):
make O=builddir M=block
and
make O=builddir M=block modules
Where is my mistake?
Thanks,
Paolo
> Bart.