io_uring_submit(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | NOTES | SEE ALSO | COLOPHON

io_uring_submit(3)           liburing Manual          io_uring_submit(3)

NAME         top

       io_uring_submit - submit requests to the submission queue

SYNOPSIS         top

       #include <liburing.h>

       int io_uring_submit(struct io_uring *ring);

DESCRIPTION         top

       The io_uring_submit(3) function submits the next events to the
       submission queue belonging to the ring.

       After the caller retrieves a submission queue entry (SQE) with
       io_uring_get_sqe(3) and prepares the SQE using one of the
       provided helpers, it can be submitted with io_uring_submit(3).

RETURN VALUE         top

       On success io_uring_submit(3) returns the number of submitted
       submission queue entries, if SQPOLL is not used.  If SQPOLL is
       used, the return value may report a higher number of submitted
       entries than actually submitted. If the the user requires
       accurate information about how many submission queue entries have
       been successfully submitted, while using SQPOLL, the user must
       fall back to repeatedly submitting a single submission queue
       entry. On failure it returns -errno.

NOTES         top

       For any request that passes in data in a struct, that data must
       remain valid until the request has been successfully submitted.
       It need not remain valid until completion. Once a request has
       been submitted, the in-kernel state is stable. Very early kernels
       (5.4 and earlier) required state to be stable until the
       completion occurred. Applications can test for this behavior by
       inspecting the IORING_FEAT_SUBMIT_STABLE flag passed back from
       io_uring_queue_init_params(3).  In general, the man pages for the
       individual prep helpers will have a note mentioning this fact as
       well, if required for the given command.

SEE ALSO         top

       io_uring_get_sqe(3), io_uring_submit_and_wait(3),
       io_uring_submit_and_wait_timeout(3)

COLOPHON         top

       This page is part of the liburing (A library for io_uring)
       project.  Information about the project can be found at 
       ⟨https://github.com/axboe/liburing⟩.  If you have a bug report for
       this manual page, send it to io-uring@vger.kernel.org.  This page
       was obtained from the project's upstream Git repository
       ⟨https://github.com/axboe/liburing⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-19.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

liburing-2.1                November 15, 2021         io_uring_submit(3)

Pages that refer to this page: io_uring_setup(2)io_uring_cq_advance(3)io_uring_cqe_seen(3)io_uring_cq_ready(3)io_uring_get_sqe(3)io_uring_peek_cqe(3)io_uring_prep_accept(3)io_uring_prep_accept_direct(3)io_uring_prep_cancel(3)io_uring_prep_cancel64(3)io_uring_prep_cancel_fd(3)io_uring_prep_close(3)io_uring_prep_close_direct(3)io_uring_prep_cmd(3)io_uring_prep_connect(3)io_uring_prep_fadvise(3)io_uring_prep_fallocate(3)io_uring_prep_files_update(3)io_uring_prep_fixed_fd_install(3)io_uring_prep_fsync(3)io_uring_prep_futex_wait(3)io_uring_prep_futex_waitv(3)io_uring_prep_futex_wake(3)io_uring_prep_link(3)io_uring_prep_linkat(3)io_uring_prep_madvise(3)io_uring_prep_mkdir(3)io_uring_prep_mkdirat(3)io_uring_prep_multishot_accept(3)io_uring_prep_multishot_accept_direct(3)io_uring_prep_nop(3)io_uring_prep_openat2(3)io_uring_prep_openat2_direct(3)io_uring_prep_openat(3)io_uring_prep_openat_direct(3)io_uring_prep_poll_add(3)io_uring_prep_poll_multishot(3)io_uring_prep_poll_remove(3)io_uring_prep_poll_update(3)io_uring_prep_provide_buffers(3)io_uring_prep_read(3)io_uring_prep_read_multishot(3)io_uring_prep_readv2(3)io_uring_prep_readv(3)io_uring_prep_recv(3)io_uring_prep_recvmsg(3)io_uring_prep_recvmsg_multishot(3)io_uring_prep_recv_multishot(3)io_uring_prep_remove_buffers(3)io_uring_prep_rename(3)io_uring_prep_renameat(3)io_uring_prep_send(3)io_uring_prep_sendmsg(3)io_uring_prep_sendmsg_zc(3)io_uring_prep_sendto(3)io_uring_prep_send_zc(3)io_uring_prep_send_zc_fixed(3)io_uring_prep_shutdown(3)io_uring_prep_socket(3)io_uring_prep_socket_direct(3)io_uring_prep_socket_direct_alloc(3)io_uring_prep_splice(3)io_uring_prep_statx(3)io_uring_prep_symlink(3)io_uring_prep_symlinkat(3)io_uring_prep_sync_file_range(3)io_uring_prep_tee(3)io_uring_prep_timeout(3)io_uring_prep_timeout_remove(3)io_uring_prep_timeout_update(3)io_uring_prep_unlink(3)io_uring_prep_unlinkat(3)io_uring_prep_waitid(3)io_uring_prep_write(3)io_uring_prep_writev2(3)io_uring_prep_writev(3)io_uring_sqe_set_flags(3)io_uring_sqring_wait(3)io_uring_submit(3)io_uring_submit_and_get_events(3)io_uring_submit_and_wait(3)io_uring_submit_and_wait_timeout(3)io_uring_wait_cqe(3)io_uring_wait_cqe_nr(3)io_uring_wait_cqes(3)io_uring_wait_cqe_timeout(3)