Re: [PATCH] virtiofs: Enable multiple request queues

From: kernel test robot
Date: Fri May 07 2021 - 21:20:18 EST


Hi Connor,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on fuse/for-next]
[also build test WARNING on linux/master linus/master v5.12 next-20210507]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Connor-Kuehl/virtiofs-Enable-multiple-request-queues/20210508-061611
base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
config: microblaze-randconfig-r001-20210507 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/6ffd4543401bc990353404b556d91cce34b017fc
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Connor-Kuehl/virtiofs-Enable-multiple-request-queues/20210508-061611
git checkout 6ffd4543401bc990353404b556d91cce34b017fc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=microblaze

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

fs/fuse/virtio_fs.c: In function 'virtio_fs_wake_pending_and_unlock':
>> fs/fuse/virtio_fs.c:1246:20: warning: variable 'fs' set but not used [-Wunused-but-set-variable]
1246 | struct virtio_fs *fs;
| ^~


vim +/fs +1246 fs/fuse/virtio_fs.c

a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1242
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1243 static void virtio_fs_wake_pending_and_unlock(struct fuse_iqueue *fiq)
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1244 __releases(fiq->lock)
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1245 {
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 @1246 struct virtio_fs *fs;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1247 struct fuse_req *req;
51fecdd2555b3e Vivek Goyal 2019-10-15 1248 struct virtio_fs_vq *fsvq;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1249 int ret;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1250
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1251 WARN_ON(list_empty(&fiq->pending));
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1252 req = list_last_entry(&fiq->pending, struct fuse_req, list);
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1253 clear_bit(FR_PENDING, &req->flags);
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1254 list_del_init(&req->list);
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1255 WARN_ON(!list_empty(&fiq->pending));
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1256 spin_unlock(&fiq->lock);
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1257
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1258 fs = fiq->priv;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1259
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1260 pr_debug("%s: opcode %u unique %#llx nodeid %#llx in.len %u out.len %u\n",
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1261 __func__, req->in.h.opcode, req->in.h.unique,
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1262 req->in.h.nodeid, req->in.h.len,
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1263 fuse_len_args(req->args->out_numargs, req->args->out_args));
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1264
6ffd4543401bc9 Connor Kuehl 2021-05-07 1265 fsvq = this_cpu_read(this_cpu_fsvq);
6ffd4543401bc9 Connor Kuehl 2021-05-07 1266
a9bfd9dd341756 Vivek Goyal 2019-10-15 1267 ret = virtio_fs_enqueue_req(fsvq, req, false);
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1268 if (ret < 0) {
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1269 if (ret == -ENOMEM || ret == -ENOSPC) {
a9bfd9dd341756 Vivek Goyal 2019-10-15 1270 /*
a9bfd9dd341756 Vivek Goyal 2019-10-15 1271 * Virtqueue full. Retry submission from worker
a9bfd9dd341756 Vivek Goyal 2019-10-15 1272 * context as we might be holding fc->bg_lock.
a9bfd9dd341756 Vivek Goyal 2019-10-15 1273 */
a9bfd9dd341756 Vivek Goyal 2019-10-15 1274 spin_lock(&fsvq->lock);
a9bfd9dd341756 Vivek Goyal 2019-10-15 1275 list_add_tail(&req->list, &fsvq->queued_reqs);
a9bfd9dd341756 Vivek Goyal 2019-10-15 1276 inc_in_flight_req(fsvq);
a9bfd9dd341756 Vivek Goyal 2019-10-15 1277 schedule_delayed_work(&fsvq->dispatch_work,
a9bfd9dd341756 Vivek Goyal 2019-10-15 1278 msecs_to_jiffies(1));
a9bfd9dd341756 Vivek Goyal 2019-10-15 1279 spin_unlock(&fsvq->lock);
a9bfd9dd341756 Vivek Goyal 2019-10-15 1280 return;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1281 }
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1282 req->out.h.error = ret;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1283 pr_err("virtio-fs: virtio_fs_enqueue_req() failed %d\n", ret);
51fecdd2555b3e Vivek Goyal 2019-10-15 1284
51fecdd2555b3e Vivek Goyal 2019-10-15 1285 /* Can't end request in submission context. Use a worker */
51fecdd2555b3e Vivek Goyal 2019-10-15 1286 spin_lock(&fsvq->lock);
51fecdd2555b3e Vivek Goyal 2019-10-15 1287 list_add_tail(&req->list, &fsvq->end_reqs);
51fecdd2555b3e Vivek Goyal 2019-10-15 1288 schedule_delayed_work(&fsvq->dispatch_work, 0);
51fecdd2555b3e Vivek Goyal 2019-10-15 1289 spin_unlock(&fsvq->lock);
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1290 return;
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1291 }
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1292 }
a62a8ef9d97da2 Stefan Hajnoczi 2018-06-12 1293

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip