
In order to have an effect, ibv_fork_init should be called in the beginning of the verbs initialization flow - before the calls to the ibv_create_qp and ibv_create_cq verbs. These functions are called from the oob/ud code and by the time the other verbs components (btl openib, pml yalla, ...) call ibv_fork_init, it's too late. This commit forces the call to ibv_fork_init (if it's requested) right at the beginning of all the components that are using verbs. (ibv_fork_init() can be safely called multiple times) This commit also removes the btl_openib_want_fork_support mca parameter and adds a new mca parameter instead - opal_verbs_want_fork_support. Through this new parameter, fork support may be requested for ALL components. The default value for this parameter is set to 1. Before this commit the btl_openib_want_fork_support parameter didn't provide fork support for the openib btl if its value was set to 1. (because when openib called ibv_fork_init, it was already after the calls to ibv_create_* in oob/ud and thereofre it failed).
69 строки
2.1 KiB
C
69 строки
2.1 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* Copyright (c) 2006 Los Alamos National Security, LLC. All rights
|
|
* reserved.
|
|
* Copyright (c) 2008-2012 Cisco Systems, Inc. All rights reserved.
|
|
* Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
|
|
* Copyright (c) 2010-2013 Los Alamos National Security, LLC.
|
|
* All rights reserved.
|
|
* Copyright (c) 2014 Hochschule Esslingen. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#if !defined(OPAL_PARAMS_H)
|
|
#define OPAL_PARAMS_H
|
|
|
|
extern char *opal_signal_string;
|
|
extern char *opal_net_private_ipv4;
|
|
extern char *opal_set_max_sys_limits;
|
|
|
|
int opal_verbs_want_fork_support;
|
|
|
|
#if OPAL_ENABLE_TIMING
|
|
extern char *opal_timing_sync_file;
|
|
extern char *opal_timing_output;
|
|
extern bool opal_timing_overhead;
|
|
#endif
|
|
|
|
OPAL_DECLSPEC extern int opal_initialized;
|
|
OPAL_DECLSPEC extern bool opal_built_with_cuda_support;
|
|
|
|
/**
|
|
* * Whether we want to enable CUDA GPU buffer send and receive support.
|
|
* */
|
|
OPAL_DECLSPEC extern bool opal_cuda_support;
|
|
|
|
/**
|
|
* Whether to use the "leave pinned" protocol or not (0 = no, 1 = yes,
|
|
* -1 = determine at runtime).
|
|
*/
|
|
OPAL_DECLSPEC extern int opal_leave_pinned;
|
|
|
|
/**
|
|
* Whether to use the "leave pinned pipeline" protocol or not.
|
|
*/
|
|
OPAL_DECLSPEC extern bool opal_leave_pinned_pipeline;
|
|
|
|
#if OPAL_ENABLE_DEBUG
|
|
extern bool opal_progress_debug;
|
|
#endif
|
|
|
|
#if OPAL_ENABLE_FT_CR == 1
|
|
extern bool opal_base_distill_checkpoint_ready;
|
|
#endif
|
|
|
|
#endif
|