lkml.org 
[lkml]   [2022]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v1] io_uring: Add support for napi_busy_poll
    Hi Olivier,

    Thank you for the patch! Yet something to improve:

    [auto build test ERROR on linus/master]
    [also build test ERROR on v5.17-rc4]
    [cannot apply to next-20220217]
    [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/Olivier-Langlois/io_uring-Add-support-for-napi_busy_poll/20220220-190634
    base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 4f12b742eb2b3a850ac8be7dc4ed52976fc6cb0b
    config: nds32-allnoconfig (https://download.01.org/0day-ci/archive/20220221/202202210559.9VjKAZdv-lkp@intel.com/config)
    compiler: nds32le-linux-gcc (GCC) 11.2.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/ad36ae938f354b0cd3b38716572385f710accdb0
    git remote add linux-review https://github.com/0day-ci/linux
    git fetch --no-tags linux-review Olivier-Langlois/io_uring-Add-support-for-napi_busy_poll/20220220-190634
    git checkout ad36ae938f354b0cd3b38716572385f710accdb0
    # save the config file to linux build tree
    mkdir build_dir
    COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=nds32 SHELL=/bin/bash

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

    All errors (new ones prefixed by >>):

    fs/io_uring.c: In function 'io_ring_ctx_alloc':
    >> fs/io_uring.c:1472:28: error: 'struct io_ring_ctx' has no member named 'napi_list'
    1472 | INIT_LIST_HEAD(&ctx->napi_list);
    | ^~
    fs/io_uring.c: In function '__io_submit_flush_completions':
    fs/io_uring.c:2529:40: warning: variable 'prev' set but not used [-Wunused-but-set-variable]
    2529 | struct io_wq_work_node *node, *prev;
    | ^~~~


    vim +1472 fs/io_uring.c

    1413
    1414 static __cold struct io_ring_ctx *io_ring_ctx_alloc(struct io_uring_params *p)
    1415 {
    1416 struct io_ring_ctx *ctx;
    1417 int hash_bits;
    1418
    1419 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
    1420 if (!ctx)
    1421 return NULL;
    1422
    1423 /*
    1424 * Use 5 bits less than the max cq entries, that should give us around
    1425 * 32 entries per hash list if totally full and uniformly spread.
    1426 */
    1427 hash_bits = ilog2(p->cq_entries);
    1428 hash_bits -= 5;
    1429 if (hash_bits <= 0)
    1430 hash_bits = 1;
    1431 ctx->cancel_hash_bits = hash_bits;
    1432 ctx->cancel_hash = kmalloc((1U << hash_bits) * sizeof(struct hlist_head),
    1433 GFP_KERNEL);
    1434 if (!ctx->cancel_hash)
    1435 goto err;
    1436 __hash_init(ctx->cancel_hash, 1U << hash_bits);
    1437
    1438 ctx->dummy_ubuf = kzalloc(sizeof(*ctx->dummy_ubuf), GFP_KERNEL);
    1439 if (!ctx->dummy_ubuf)
    1440 goto err;
    1441 /* set invalid range, so io_import_fixed() fails meeting it */
    1442 ctx->dummy_ubuf->ubuf = -1UL;
    1443
    1444 if (percpu_ref_init(&ctx->refs, io_ring_ctx_ref_free,
    1445 PERCPU_REF_ALLOW_REINIT, GFP_KERNEL))
    1446 goto err;
    1447
    1448 ctx->flags = p->flags;
    1449 init_waitqueue_head(&ctx->sqo_sq_wait);
    1450 INIT_LIST_HEAD(&ctx->sqd_list);
    1451 INIT_LIST_HEAD(&ctx->cq_overflow_list);
    1452 init_completion(&ctx->ref_comp);
    1453 xa_init_flags(&ctx->io_buffers, XA_FLAGS_ALLOC1);
    1454 xa_init_flags(&ctx->personalities, XA_FLAGS_ALLOC1);
    1455 mutex_init(&ctx->uring_lock);
    1456 init_waitqueue_head(&ctx->cq_wait);
    1457 spin_lock_init(&ctx->completion_lock);
    1458 spin_lock_init(&ctx->timeout_lock);
    1459 INIT_WQ_LIST(&ctx->iopoll_list);
    1460 INIT_LIST_HEAD(&ctx->defer_list);
    1461 INIT_LIST_HEAD(&ctx->timeout_list);
    1462 INIT_LIST_HEAD(&ctx->ltimeout_list);
    1463 spin_lock_init(&ctx->rsrc_ref_lock);
    1464 INIT_LIST_HEAD(&ctx->rsrc_ref_list);
    1465 INIT_DELAYED_WORK(&ctx->rsrc_put_work, io_rsrc_put_work);
    1466 init_llist_head(&ctx->rsrc_put_llist);
    1467 INIT_LIST_HEAD(&ctx->tctx_list);
    1468 ctx->submit_state.free_list.next = NULL;
    1469 INIT_WQ_LIST(&ctx->locked_free_list);
    1470 INIT_DELAYED_WORK(&ctx->fallback_work, io_fallback_req_func);
    1471 INIT_WQ_LIST(&ctx->submit_state.compl_reqs);
    > 1472 INIT_LIST_HEAD(&ctx->napi_list);
    1473 return ctx;
    1474 err:
    1475 kfree(ctx->dummy_ubuf);
    1476 kfree(ctx->cancel_hash);
    1477 kfree(ctx);
    1478 return NULL;
    1479 }
    1480

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

    \
     
     \ /
      Last update: 2022-09-17 16:14    [W:2.733 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site