21 Sep, 2020

1 commit

  • It would seem none of the kernel continuous integration does this:
    $ cd tools/io_uring
    $ make

    Otherwise it may have noticed:
    cc -Wall -Wextra -g -D_GNU_SOURCE -c -o io_uring-bench.o
    io_uring-bench.c
    io_uring-bench.c:133:12: error: static declaration of ‘gettid’
    follows non-static declaration
    133 | static int gettid(void)
    | ^~~~~~
    In file included from /usr/include/unistd.h:1170,
    from io_uring-bench.c:27:
    /usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:16: note:
    previous declaration of ‘gettid’ was here
    34 | extern __pid_t gettid (void) __THROW;
    | ^~~~~~
    make: *** [: io_uring-bench.o] Error 1

    The problem on Ubuntu 20.04 (with lk 5.9.0-rc5) is that unistd.h
    already defines gettid(). So prefix the local definition with
    "lk_".

    Signed-off-by: Douglas Gilbert
    Signed-off-by: Jens Axboe

    Douglas Gilbert
     

22 Jun, 2020

1 commit

  • poll events should be 32-bits to cover EPOLLEXCLUSIVE.

    Explicit word-swap the poll32_events for big endian to make sure the ABI
    is not changed. We call this feature IORING_FEAT_POLL_32BITS,
    applications who want to use EPOLLEXCLUSIVE should check the feature bit
    first.

    Signed-off-by: Jiufei Xue
    Signed-off-by: Jens Axboe

    Jiufei Xue
     

24 May, 2019

2 commits

  • Various fixes and changes have been applied to liburing since we
    copied some select bits to the kernel testing/examples part, sync
    up with liburing to get those changes.

    Most notable is the change that split the CQE reading into the peek
    and seen event, instead of being just a single function. Also fixes
    an unsigned wrap issue in io_uring_submit(), leak of 'fd' in setup
    if we fail, and various other little issues.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Currently fails with:

    io_uring-bench.o: In function `main':
    /home/axboe/git/linux-block/tools/io_uring/io_uring-bench.c:560: undefined reference to `pthread_create'
    /home/axboe/git/linux-block/tools/io_uring/io_uring-bench.c:588: undefined reference to `pthread_join'
    collect2: error: ld returned 1 exit status
    Makefile:11: recipe for target 'io_uring-bench' failed
    make: *** [io_uring-bench] Error 1

    Move -lpthread to the end.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

09 Apr, 2019

1 commit


07 Mar, 2019

1 commit

  • This adds two test programs in tools/io_uring/ that demonstrate both
    the raw io_uring API (and all features) through a small benchmark
    app, io_uring-bench, and the liburing exposed API in a simplified
    cp(1) implementation through io_uring-cp.

    Signed-off-by: Jens Axboe

    Jens Axboe