Re: [PATCH] block: Make rescuer threads per request_queue, not per bioset

From: kbuild test robot
Date: Wed Feb 08 2017 - 01:24:07 EST


Hi Kent,

[auto build test WARNING on linus/master]
[also build test WARNING on v4.10-rc7]
[cannot apply to next-20170207]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Kent-Overstreet/block-Make-rescuer-threads-per-request_queue-not-per-bioset/20170208-130414
config: x86_64-randconfig-x017-201706 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All warnings (new ones prefixed by >>):

In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/uapi/linux/capability.h:16,
from include/linux/capability.h:15,
from include/linux/sched.h:15,
from include/linux/kasan.h:4,
from kernel/sched/core.c:29:
kernel/sched/core.c: In function 'sched_submit_work':
kernel/sched/core.c:3445:7: error: implicit declaration of function 'bio_list_empty' [-Werror=implicit-function-declaration]
!bio_list_empty(&tsk->bio_list->bios) &&
^
include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^~~~
>> kernel/sched/core.c:3444:2: note: in expansion of macro 'if'
if (tsk->bio_list &&
^~
kernel/sched/core.c:3445:36: error: dereferencing pointer to incomplete type 'struct bio_plug_list'
!bio_list_empty(&tsk->bio_list->bios) &&
^
include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^~~~
>> kernel/sched/core.c:3444:2: note: in expansion of macro 'if'
if (tsk->bio_list &&
^~
kernel/sched/core.c:3447:3: error: implicit declaration of function 'blk_punt_blocked_bios' [-Werror=implicit-function-declaration]
blk_punt_blocked_bios(tsk->bio_list);
^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/if +3444 kernel/sched/core.c

3428
3429 /* causes final put_task_struct in finish_task_switch(). */
3430 __set_current_state(TASK_DEAD);
3431 current->flags |= PF_NOFREEZE; /* tell freezer to ignore us */
3432 __schedule(false);
3433 BUG();
3434 /* Avoid "noreturn function does return". */
3435 for (;;)
3436 cpu_relax(); /* For when BUG is null */
3437 }
3438
3439 static inline void sched_submit_work(struct task_struct *tsk)
3440 {
3441 if (!tsk->state || tsk_is_pi_blocked(tsk))
3442 return;
3443
> 3444 if (tsk->bio_list &&
3445 !bio_list_empty(&tsk->bio_list->bios) &&
3446 tsk->bio_list->q->rescue_workqueue)
3447 blk_punt_blocked_bios(tsk->bio_list);
3448
3449 /*
3450 * If we are going to sleep and we have plugged IO queued,
3451 * make sure to submit it to avoid deadlocks.
3452 */

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip