io_uring_register_iowq_aff(3) — Linux manual page

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

io_uring_re...er_iowq_aff(3) liburing Manualio_uring_re...er_iowq_aff(3)

NAME         top

       io_uring_register_iowq_aff - register async worker CPU affinities

SYNOPSIS         top

       #include <sched.h>
       #include <liburing.h>

       int io_uring_register_iowq_aff(struct io_uring *ring,
                                      size_t cpusz,
                                      const cpu_set_t *mask);

       void io_uring_unregister_iowq_aff(struct io_uring *ring);

DESCRIPTION         top

       The io_uring_prep_register_iowq_aff(3) function registers a set
       of CPU affinities to be used by the io_uring async workers. By
       default, io_uring async workers are allowed to run on any CPU in
       the system. If this function is called with ring set to the ring
       in question and mask set to a pointer to a cpu_set_t value and
       cpusz set to the size of the CPU set, then async workers will
       only be allowed to run on the CPUs specified in the mask.
       Existing workers may need to hit a schedule point before they are
       migrated.

       For unregistration, io_uring_unregister_iowq_aff(3) may be called
       to restore CPU affinities to the default.

RETURN VALUE         top

       Returns 0 on success, or any of the following values in case of
       error.

       -EFAULT
              The kernel was unable to copy the memory pointer to by
              mask as it was invalid.

       -ENOMEM
              The kernel was unable to allocate memory for the new CPU
              mask.

       -EINVAL
              cpusz or mask was NULL/0, or any other value specified was
              invalid.

SEE ALSO         top

       io_uring_queue_init(3), io_uring_register(2)

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 2024-06-14.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2024-06-03.)  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.2                 March 13, 2022 io_uring_re...er_iowq_aff(3)