summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-02-08test/ring-leak: silence "sending fd" messageJens Axboe
We assume that a silent test is good. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-08Add sigmask parameter to io_uring_enterJeff Moyer
Update liburing and io_uring_enter.2 to match the kernel. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-08syscall: update io_uring_enter() to match kernel typeJens Axboe
We would randomly fail depending on what garbage was passed in the two sigset related fields. Reported-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-08man/io_uring_register.2: add EMFILE errnoJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-07test/ring-leak: add test app demonstrating leak of io_uring instanceJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-05man/io_uring_setup: mention that IORING_SETUP_SQPOLL needs fixed filesJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-02-05io_uring_register takes 4 argsJeff Moyer
Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-31src/io_uring.h: sync with kernel headerJens Axboe
Just a removal of the IORING_MAX_ENTRIES user visible define. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-31man/io_uring_enter.2: we no longer EBUSY on mutex trylock failureJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-30man: add io_uring_setup.2 man pageJeff Moyer
Initial man page for io_uring_setup. Content was taken from the kernel commit logs and from an LWN article written by Jon Corbet. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-29Update kernel io_uring headerJens Axboe
- struct io_uring_params changed (u16 -> u32 for sq options) - Use unsigned for the flag types Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-26man: fixup description of fixed files I/OJeff Moyer
The man page suggests that IOSQE_FIXED_FILE must be specified for all sqes when the io_uring instance has files registered. This is not the case, so clear that up. Also fix a typo (few->new) while we're in there. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-26man: io_uring_register: use a .TP list for flagsJeff Moyer
This seems to be the canonical way to do things. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-26man: alphabetize the error section for io_uring_registerJeff Moyer
This also includes a couple of whitespace cleanups. Most man pages don't leave spaces between directives. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-23System calls have been renumberedJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-22io_uring_enter.2 man pageJeff Moyer
Initial man page for io_uring_enter. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-18test/poll: ignore parent dyingJens Axboe
The parent may well die before the child is done, as long as it wrote to the pipe, we're fine. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-18test/poll: simply test caseJens Axboe
Just setup one ring in the child process, and poll for when the read side of the pipe is readable. From the parent, write something to the pipe. If nothing happens within 1 second, fail the test. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-18test/poll-cancel: improve test caseJens Axboe
- Add a timeout, if we don't finish in one second we are definitely hung because the poll remove command didn't work. - Don't assume completion ordering Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-18Switch to IORING_OP_POLL_ADD/REMOVEJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17Split src/io_uring.c upJens Axboe
Let's have the various helpers be in usefully named functions, no need to bundle them all into the same one. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17liburing: ensure prep helpers actually set iovec countJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-1732-bit fixesJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17Add sqe prep helpersJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17man: add a man page for io_uring_registerJeff Moyer
Initial content was taken from the kernel commits (Jens Axboe). Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17Update POLL APIJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17Add IORING_OP_POLL_CANCEL testJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-17Add test case for IORING_OP_POLLJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-16Update barriers for x86/x86-64Jens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-16Sync with upstream APIJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-15Add configure scriptJens Axboe
Some older installs don't have __kernel_rwf_t in linux/fs.h, so add a check for that. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-13Add x86 32-bit supportJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-13io_uring_get_iocb() -> io_uring_get_sqe()Jens Axboe
Missed this part when the switch was made to full 'sqe'. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-13Sync io_uring.h with the kernelJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-11Sync with kernel APIJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-10io_queue_init: pass in flags, not io_uring_paramsJens Axboe
We don't need any of the information in there in the caller, and this makes it harder to abuse as we don't require the caller to have memset() the struct first. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-10Fix test casesJens Axboe
- Don't use polled IO for the io_uring-test, that'll fail if the fs/device doesn't suppor it - copy read-in was broken for io_uring-cp Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-10Update to newer APIJens Axboe
- Fixed buffers are now available through io_uring_register() - Various thread/wq options are now dead and automatic instead - sqe->index is now sqe->buf_index - Fixed buffers require flag, not separate opcode Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-10Update APIJens Axboe
- io_uring_sqe added a data field that's passed back at completion - io_uring_sqe added an index field, for fixed buffer locations - io_uring_setup(2) system call added a 'nr_iovecs' field Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-09Update to newer APIJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08liburing: include the ring fd in the io_uringJens Axboe
No point in keeping these separate. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08Add simple test/ MakefileJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08Add sample 'cp' programJens Axboe
Don't rely on this for anything, it's just a test case / demo. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08Change API to provide io_uring struct abstractionJens Axboe
This is cleaner than having the app juggle an SQ and CQ ring, just wrap them in struct io_uring and have the API always take that. This means the app doesn't need to worry about the different types of rings, and that we only need to pass in one argument for setup/teardown. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08liburing: add io_uring_iocb_from_ev() helperJens Axboe
Returns the iocb associated with a completion event. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08Add option for getting a completion without waitingJens Axboe
This now exposes two helpers: io_uring_get_completion() Return a completion, if we have one (or more) available in the ring io_uring_wait_completion() Return a completion, waiting for it if necessary Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-08Initial commitJens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>