IBV_ALLOC_TD(3)        Libibverbs Programmer's Manual        IBV_ALLOC_TD(3)

NAME         top

       ibv_alloc_td(),  ibv_dealloc_td()  -  allocate  and deallocate thread
       domain object

SYNOPSIS         top

       #include <infiniband/verbs.h>

       struct ibv_td *ibv_alloc_td(struct ibv_context *context,
                                   struct ibv_td_init_attr *init_attr);

       int ibv_dealloc_td(struct ibv_td *td);

DESCRIPTION         top

       ibv_alloc_td() allocates a thread domain object for the RDMA device
       context context.

       The thread domain object defines how the verbs libraries and provider
       will use locks and additional hardware capabilities to achieve best
       performance for handling multi-thread or single-thread protection.
       An application assigns verbs resources to a thread domain when it
       creates a verbs object.

       If the ibv_td object is specified then any objects created under this
       thread domain will disable internal locking designed to protect
       against concurrent access to that object from multiple user threads.
       By default all verbs objects are safe for multi-threaded access,
       whether or not a thread domain is specified.

       A struct ibv_td can be added to a parent domain via
       ibv_alloc_parent_domain() and then the parent domain can be used to
       create verbs objects.

       ibv_dealloc_td() will deallocate the thread domain td.  All resources
       created with the td should be destroyed prior to deallocating the td.

RETURN VALUE         top

       ibv_alloc_td() returns a pointer to the allocated struct ibv_td
       object, or NULL if the request fails (and sets errno to indicate the
       failure reason).

       ibv_dealloc_td() returns 0 on success, or the value of errno on
       failure (which indicates the failure reason).

SEE ALSO         top


AUTHORS         top

       Alex Rosenbaum <>

       Yishai Hadas <>

COLOPHON         top

       This page is part of the rdma-core (RDMA Core Userspace Libraries and
       Daemons) project.  Information about the project can be found at 
       ⟨⟩.  If you have a bug report
       for this manual page, send it to  This
       page was obtained from the project's upstream Git repository
       ⟨⟩ on 2019-07-28.  (At
       that time, the date of the most recent commit that was found in the
       repository was 2019-07-25.)  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

libibverbs                       2017-11-06                  IBV_ALLOC_TD(3)

Pages that refer to this page: ibv_alloc_parent_domain(3)