1
1
openmpi/opal/runtime/opal_params.h
Alina Sklarevich e4c4e7df5e Fix the calls to ibv_fork_init and remove btl_openib_want_fork_support.
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).
2015-02-25 10:58:50 +02:00

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