1
1
openmpi/ompi/mca/mpool/fake/mpool_fake_module.c
Patrick Geoffray 0f331b4c13 Define a "fake" mpool to provide a memory release callback for the
memory hooks (munmap) and initialize the mallopt component, and 
nothing else.
Use this mpool in the MX common initialization, supporting both BTL 
and MTL. Automatically set the MX_RCACHE environment variable to 
enable registration cache in MX.

Tested with success for munmap() and large free().

This commit was SVN r20003.
2008-11-15 04:17:58 +00:00

73 строки
2.2 KiB
C

/* -*- Mode: C; c-basic-offset:4 ; -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2007 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) 2008 Myricom. All rights reserved.
*
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#define OMPI_DISABLE_ENABLE_MEM_DEBUG 1
#include "ompi_config.h"
#include "opal/include/opal/align.h"
#include "orte/util/proc_info.h"
#include "orte/util/name_fns.h"
#include "orte/runtime/orte_globals.h"
#include "orte/util/show_help.h"
#include "mpool_fake.h"
#include <errno.h>
#include <string.h>
#include "ompi/mca/mpool/base/base.h"
#include "ompi/runtime/params.h"
/*
* Initializes the mpool module.
*/
void mca_mpool_fake_module_init(mca_mpool_fake_module_t* mpool)
{
mpool->super.mpool_component = &mca_mpool_fake_component.super;
mpool->super.mpool_base = NULL; /* no base .. */
mpool->super.mpool_alloc = NULL;
mpool->super.mpool_realloc = NULL;
mpool->super.mpool_free = NULL;
mpool->super.mpool_register = NULL;
mpool->super.mpool_find = NULL;
mpool->super.mpool_deregister = NULL;
mpool->super.mpool_release_memory = mca_mpool_fake_release_memory;
mpool->super.mpool_finalize = mca_mpool_fake_finalize;
mpool->super.mpool_ft_event = mca_mpool_fake_ft_event;
}
int mca_mpool_fake_release_memory(struct mca_mpool_base_module_t *mpool,
void *base, size_t size)
{
mca_mpool_fake_module_t *mpool_module = (mca_mpool_fake_module_t*)mpool;
mpool_module->resources.regcache_clean(base, size);
return OMPI_SUCCESS;
}
void mca_mpool_fake_finalize(struct mca_mpool_base_module_t *mpool)
{
;
}
int mca_mpool_fake_ft_event(int state)
{
return OMPI_SUCCESS;
}