Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


ibv_fork_init(3) — Linux manual page

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

IBV_FORK_INIT(3)      Libibverbs Programmer’s ManualIBV_FORK_INIT(3)

NAME        top

       ibv_fork_init - initialize libibverbs to support fork()

SYNOPSIS        top

              #include <infiniband/verbs.h>              int ibv_fork_init(void);

DESCRIPTION        top

ibv_fork_init()initializes libibverbs’s data structures to handlefork()function calls correctly and avoid data corruption, whetherfork()is called explicitly or implicitly (such as insystem()).       It is not necessary to use this function if all parent process       threads are always blocked until all child processes end or change       address spaces via anexec()operation.

RETURN VALUE        top

ibv_fork_init()returns 0 on success, or the value of errno on       failure (which indicates the failure reason).  An error value of       EINVAL indicates that there had been RDMA memory registration       already and it is therefore not safe anymore to fork.

NOTES        top

ibv_fork_init()works on Linux kernels supporting theMADV_DONTFORKflag formadvise()(2.6.17 and higher).       Setting the environment variableRDMAV_FORK_SAFEorIBV_FORK_SAFE       has the same effect as callingibv_fork_init().       Setting the environment variableRDMAV_HUGEPAGES_SAFEtells the       library to check the underlying page size used by the kernel for       memory regions.  This is required if an application uses huge       pages either directly or indirectly via a library such as       libhugetlbfs.       Callingibv_fork_init()will reduce performance due to an extra       system call for every memory registration, and the additional       memory allocated to track memory regions.  The precise performance       impact depends on the workload and usually will not be       significant.       SettingRDMAV_HUGEPAGES_SAFEadds further overhead to all memory       registrations.

SEE ALSO        top

exec(3),fork(2),ibv_get_device_list(3),system(3),wait(2)

AUTHOR        top

       Dotan Barak ⟨dotanba@gmail.com⟩

COLOPHON        top

       This page is part of therdma-core (RDMA Core Userspace Libraries       and Daemons) project.  Information about the project can be found       at ⟨https://github.com/linux-rdma/rdma-core⟩.  If you have a bug       report for this manual page, send it to       linux-rdma@vger.kernel.org.  This page was obtained from the       project's upstream Git repository       ⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2025-08-11.  (At       that time, the date of the most recent commit that was found in       the repository was 2025-08-04.)  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 isnot part of the original manual page), send a mail to       man-pages@man7.orglibibverbs                      2006-10-31IBV_FORK_INIT(3)

Pages that refer to this page:ibv_free_device_list(3)ibv_get_device_list(3)ibv_is_fork_initialized(3)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp