CC: [email protected]
TO: Jens Axboe <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git 
io_uring-worker.v2
head:   4447321e632ea67352411059af40d2b660461804
commit: 63c135924c321b50da3d97fd9ba08abbb5adabe5 [16/21] io_uring: move SQPOLL 
thread io-wq forked worker
:::::: branch date: 6 hours ago
:::::: commit date: 15 hours ago
config: x86_64-randconfig-s022-20210218 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-215-g0fb77bb6-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?id=63c135924c321b50da3d97fd9ba08abbb5adabe5
        git remote add block 
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
        git fetch --no-tags block io_uring-worker.v2
        git checkout 63c135924c321b50da3d97fd9ba08abbb5adabe5
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


"sparse warnings: (new ones prefixed by >>)"
   fs/io_uring.c:2867:24: sparse: sparse: incorrect type in return expression 
(different address spaces) @@     expected void [noderef] __user * @@     got 
struct io_buffer *[assigned] kbuf @@
   fs/io_uring.c:2867:24: sparse:     expected void [noderef] __user *
   fs/io_uring.c:2867:24: sparse:     got struct io_buffer *[assigned] kbuf
   fs/io_uring.c:4219:14: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct file *[assigned] file @@     
got struct file [noderef] __rcu * @@
   fs/io_uring.c:4219:14: sparse:     expected struct file *[assigned] file
   fs/io_uring.c:4219:14: sparse:     got struct file [noderef] __rcu *
   fs/io_uring.c:4846:72: sparse: sparse: incorrect type in argument 4 
(different base types) @@     expected int mask @@     got restricted __poll_t 
[usertype] mask @@
   fs/io_uring.c:4846:72: sparse:     expected int mask
   fs/io_uring.c:4846:72: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:4850:21: sparse: sparse: incorrect type in assignment 
(different base types) @@     expected unsigned int [usertype] result @@     
got restricted __poll_t [usertype] mask @@
   fs/io_uring.c:4850:21: sparse:     expected unsigned int [usertype] result
   fs/io_uring.c:4850:21: sparse:     got restricted __poll_t [usertype] mask
   fs/io_uring.c:4876:29: sparse: sparse: incorrect type in assignment 
(different base types) @@     expected unsigned int [usertype] result @@     
got restricted __poll_t @@
   fs/io_uring.c:4876:29: sparse:     expected unsigned int [usertype] result
   fs/io_uring.c:4876:29: sparse:     got restricted __poll_t
   fs/io_uring.c:4941:42: sparse: sparse: incorrect type in argument 2 
(different base types) @@     expected restricted __poll_t [usertype] mask @@   
  got unsigned int [usertype] result @@
   fs/io_uring.c:4941:42: sparse:     expected restricted __poll_t [usertype] 
mask
   fs/io_uring.c:4941:42: sparse:     got unsigned int [usertype] result
   fs/io_uring.c:5082:41: sparse: sparse: incorrect type in argument 4 
(different base types) @@     expected int mask @@     got restricted __poll_t 
[usertype] @@
   fs/io_uring.c:5082:41: sparse:     expected int mask
   fs/io_uring.c:5082:41: sparse:     got restricted __poll_t [usertype]
   fs/io_uring.c:5170:22: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5170:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5170:22: sparse:    right side has type int
   fs/io_uring.c:5172:22: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5172:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5172:22: sparse:    right side has type int
   fs/io_uring.c:5177:22: sparse: sparse: invalid assignment: &=
   fs/io_uring.c:5177:22: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5177:22: sparse:    right side has type int
   fs/io_uring.c:5179:14: sparse: sparse: invalid assignment: |=
   fs/io_uring.c:5179:14: sparse:    left side has type restricted __poll_t
   fs/io_uring.c:5179:14: sparse:    right side has type int
   fs/io_uring.c:5193:67: sparse: sparse: incorrect type in argument 4 
(different base types) @@     expected int mask @@     got restricted __poll_t 
[assigned] [usertype] mask @@
   fs/io_uring.c:5193:67: sparse:     expected int mask
   fs/io_uring.c:5193:67: sparse:     got restricted __poll_t [assigned] 
[usertype] mask
   fs/io_uring.c:5194:52: sparse: sparse: incorrect type in argument 5 
(different base types) @@     expected int events @@     got restricted 
__poll_t [usertype] events @@
   fs/io_uring.c:5194:52: sparse:     expected int events
   fs/io_uring.c:5194:52: sparse:     got restricted __poll_t [usertype] events
   fs/io_uring.c:5353:34: sparse: sparse: restricted __poll_t degrades to 
integer
   fs/io_uring.c:5352:57: sparse: sparse: restricted __poll_t degrades to 
integer
   fs/io_uring.c:5352:22: sparse: sparse: incorrect type in assignment 
(different base types) @@     expected restricted __poll_t [usertype] events @@ 
    got unsigned int @@
   fs/io_uring.c:5352:22: sparse:     expected restricted __poll_t [usertype] 
events
   fs/io_uring.c:5352:22: sparse:     got unsigned int
   fs/io_uring.c:7085:13: sparse: sparse: context imbalance in 
'io_sq_thread_unpark' - wrong count at exit
   fs/io_uring.c:7097:13: sparse: sparse: context imbalance in 
'io_sq_thread_park' - wrong count at exit
>> fs/io_uring.c:7155:17: sparse: sparse: context imbalance in 
>> 'io_sq_thread_finish' - different lock contexts for basic block
   fs/io_uring.c:8646:25: sparse: sparse: context imbalance in 
'io_uring_cancel_files' - unexpected unlock
   fs/io_uring.c:8691:9: sparse: sparse: context imbalance in 
'io_uring_cancel_task_requests' - different lock contexts for basic block

vim +/io_sq_thread_finish +7155 fs/io_uring.c

63c135924c321b Jens Axboe    2021-02-17  7128  
63c135924c321b Jens Axboe    2021-02-17  7129  static void 
io_sq_thread_finish(struct io_ring_ctx *ctx)
63c135924c321b Jens Axboe    2021-02-17  7130  {
63c135924c321b Jens Axboe    2021-02-17  7131   struct io_sq_data *sqd = 
ctx->sq_data;
63c135924c321b Jens Axboe    2021-02-17  7132  
63c135924c321b Jens Axboe    2021-02-17  7133   if (sqd) {
63c135924c321b Jens Axboe    2021-02-17  7134           if (sqd->thread) {
2bbcd6d3b36a75 Roman Penyaev 2019-05-16  7135                   /*
63c135924c321b Jens Axboe    2021-02-17  7136                    * We may 
arrive here from the error branch in
63c135924c321b Jens Axboe    2021-02-17  7137                    * 
io_sq_offload_create() where the kthread is created
63c135924c321b Jens Axboe    2021-02-17  7138                    * without 
being waked up, thus wake it up now to make
63c135924c321b Jens Axboe    2021-02-17  7139                    * sure the 
wait will complete.
2bbcd6d3b36a75 Roman Penyaev 2019-05-16  7140                    */
63c135924c321b Jens Axboe    2021-02-17  7141                   
wake_up_process(sqd->thread);
63c135924c321b Jens Axboe    2021-02-17  7142                   
wait_for_completion(&ctx->sq_thread_comp);
63c135924c321b Jens Axboe    2021-02-17  7143  
63c135924c321b Jens Axboe    2021-02-17  7144                   
io_sq_thread_park(sqd);
534ca6d684f1fe Jens Axboe    2020-09-02  7145           }
534ca6d684f1fe Jens Axboe    2020-09-02  7146  
63c135924c321b Jens Axboe    2021-02-17  7147           
mutex_lock(&sqd->ctx_lock);
63c135924c321b Jens Axboe    2021-02-17  7148           
list_del(&ctx->sqd_list);
63c135924c321b Jens Axboe    2021-02-17  7149           
io_sqd_update_thread_idle(sqd);
63c135924c321b Jens Axboe    2021-02-17  7150           
mutex_unlock(&sqd->ctx_lock);
63c135924c321b Jens Axboe    2021-02-17  7151  
63c135924c321b Jens Axboe    2021-02-17  7152           if (sqd->thread)
63c135924c321b Jens Axboe    2021-02-17  7153                   
io_sq_thread_unpark(sqd);
63c135924c321b Jens Axboe    2021-02-17  7154  
63c135924c321b Jens Axboe    2021-02-17 @7155           io_put_sq_data(sqd);
63c135924c321b Jens Axboe    2021-02-17  7156           ctx->sq_data = NULL;
534ca6d684f1fe Jens Axboe    2020-09-02  7157   }
534ca6d684f1fe Jens Axboe    2020-09-02  7158  }
534ca6d684f1fe Jens Axboe    2020-09-02  7159  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to