Add two arguments to the PML error callback function. This
allows the BTL to specify a specific ompi_proc_t that had an error. Also add an optional descriptive string. Currently, arguments are not used but will be by future failover PML. Changes based on RFC. Reviewed by George Bosilca. This commit was SVN r23174.
Этот коммит содержится в:
родитель
c63c4d6892
Коммит
03b3e75f86
@ -11,6 +11,7 @@
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -503,13 +504,17 @@ typedef int (*mca_btl_base_module_register_fn_t)(
|
||||
* Callback function that is called asynchronously on receipt
|
||||
* of an error from the transport layer
|
||||
*
|
||||
* @param[IN] btl BTL module
|
||||
* @param[IN] flags type of error
|
||||
* @param[IN] btl BTL module
|
||||
* @param[IN] flags type of error
|
||||
* @param[IN] errproc process that had an error
|
||||
* @param[IN] btlinfo descriptive string from the BTL
|
||||
*/
|
||||
|
||||
typedef void (*mca_btl_base_module_error_cb_fn_t)(
|
||||
struct mca_btl_base_module_t* btl,
|
||||
int32_t flags
|
||||
int32_t flags,
|
||||
struct ompi_proc_t* errproc,
|
||||
char* btlinfo
|
||||
);
|
||||
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
* Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2006-2007 Voltaire All rights reserved.
|
||||
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -3246,7 +3246,8 @@ static void handle_wc(mca_btl_openib_device_t* device, const uint32_t cq,
|
||||
/* Process a RECV */
|
||||
if(btl_openib_handle_incoming(openib_btl, endpoint, to_recv_frag(frag),
|
||||
wc->byte_len) != OMPI_SUCCESS) {
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL);
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL,
|
||||
NULL, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3263,7 +3264,8 @@ static void handle_wc(mca_btl_openib_device_t* device, const uint32_t cq,
|
||||
default:
|
||||
BTL_ERROR(("Unhandled work completion opcode is %d", wc->opcode));
|
||||
if(openib_btl)
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL);
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL,
|
||||
NULL, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3341,7 +3343,8 @@ error:
|
||||
}
|
||||
|
||||
if(openib_btl)
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL);
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static int poll_device(mca_btl_openib_device_t* device, int count)
|
||||
@ -3471,7 +3474,7 @@ static int progress_one_device(mca_btl_openib_device_t *device)
|
||||
ret = btl_openib_handle_incoming(btl, to_com_frag(frag)->endpoint,
|
||||
frag, size - sizeof(mca_btl_openib_footer_t));
|
||||
if (ret != OMPI_SUCCESS) {
|
||||
btl->error_cb(&btl->super, MCA_BTL_ERROR_FLAGS_FATAL);
|
||||
btl->error_cb(&btl->super, MCA_BTL_ERROR_FLAGS_FATAL, NULL, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3522,7 +3525,8 @@ error:
|
||||
mca_btl_openib_module_t* openib_btl =
|
||||
mca_btl_openib_component.openib_btls[i];
|
||||
if(openib_btl->device->got_fatal_event) {
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL);
|
||||
openib_btl->error_cb(&openib_btl->super, MCA_BTL_ERROR_FLAGS_FATAL,
|
||||
NULL, NULL);
|
||||
}
|
||||
}
|
||||
return count;
|
||||
|
@ -16,6 +16,7 @@
|
||||
* Copyright (c) 2006-2007 Voltaire All rights reserved.
|
||||
* Copyright (c) 2006-2009 Mellanox Technologies, Inc. All rights reserved.
|
||||
* Copyright (c) 2010 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved
|
||||
*
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
@ -1029,7 +1030,7 @@ void *mca_btl_openib_endpoint_invoke_error(void *context)
|
||||
}
|
||||
|
||||
/* Invoke the callback to the upper layer */
|
||||
btl->error_cb(&(btl->super), MCA_BTL_ERROR_FLAGS_FATAL);
|
||||
btl->error_cb(&(btl->super), MCA_BTL_ERROR_FLAGS_FATAL, NULL, NULL);
|
||||
|
||||
/* Will likely never get here */
|
||||
return NULL;
|
||||
|
@ -15,7 +15,7 @@
|
||||
* Copyright (c) 2009 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2009 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -82,7 +82,8 @@ mca_pml_csum_t mca_pml_csum = {
|
||||
|
||||
|
||||
void mca_pml_csum_error_handler( struct mca_btl_base_module_t* btl,
|
||||
int32_t flags );
|
||||
int32_t flags, ompi_proc_t* errproc,
|
||||
char* btlinfo );
|
||||
|
||||
int mca_pml_csum_enable(bool enable)
|
||||
{
|
||||
@ -632,8 +633,8 @@ void mca_pml_csum_process_pending_rdma(void)
|
||||
|
||||
|
||||
void mca_pml_csum_error_handler(
|
||||
struct mca_btl_base_module_t* btl,
|
||||
int32_t flags) {
|
||||
struct mca_btl_base_module_t* btl, int32_t flags,
|
||||
ompi_proc_t* errproc, char* btlinfo) {
|
||||
orte_errmgr.abort(-1, NULL);
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2006 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -66,7 +66,8 @@ mca_pml_dr_t mca_pml_dr = {
|
||||
};
|
||||
|
||||
void mca_pml_dr_error_handler( struct mca_btl_base_module_t* btl,
|
||||
int32_t flags );
|
||||
int32_t flags, ompi_proc_t* errproc,
|
||||
char* btlinfo );
|
||||
|
||||
int mca_pml_dr_enable(bool enable)
|
||||
{
|
||||
@ -317,8 +318,8 @@ int mca_pml_dr_dump(
|
||||
|
||||
|
||||
void mca_pml_dr_error_handler(
|
||||
struct mca_btl_base_module_t* btl,
|
||||
int32_t flags) {
|
||||
struct mca_btl_base_module_t* btl, int32_t flags,
|
||||
ompi_proc_t* errproc, char* btlinfo) {
|
||||
/* try failover ! */
|
||||
opal_output(0, "%s:%d:%s: failing BTL: %s", __FILE__, __LINE__, __func__,
|
||||
btl->btl_component->btl_version.mca_component_name);
|
||||
|
@ -12,7 +12,7 @@
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2008 UT-Battelle, LLC. All rights reserved.
|
||||
* Copyright (c) 2006-2008 University of Houston. All rights reserved.
|
||||
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -72,7 +72,8 @@ mca_pml_ob1_t mca_pml_ob1 = {
|
||||
|
||||
|
||||
void mca_pml_ob1_error_handler( struct mca_btl_base_module_t* btl,
|
||||
int32_t flags );
|
||||
int32_t flags, ompi_proc_t* errproc,
|
||||
char* btlinfo );
|
||||
|
||||
int mca_pml_ob1_enable(bool enable)
|
||||
{
|
||||
@ -601,8 +602,8 @@ void mca_pml_ob1_process_pending_rdma(void)
|
||||
|
||||
|
||||
void mca_pml_ob1_error_handler(
|
||||
struct mca_btl_base_module_t* btl,
|
||||
int32_t flags) {
|
||||
struct mca_btl_base_module_t* btl, int32_t flags,
|
||||
ompi_proc_t* errproc, char* btlname ) {
|
||||
orte_errmgr.abort(-1, NULL);
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user