1
1
openmpi/oshmem/mca/sshmem/sysv/sshmem_sysv.h
Igor Ivanov d82dc7f67f OSHMEM: Add two new mca variables
Added use_hp flag in sshmem/sysv variable to control huge page usage;
Added shared_mr sshmem/verbs;
Both paraemetes are set in auto.
Fix help messages

fixed by Igor, reviewed by @miked-mellanox and @alex-mikheev
2014-10-05 14:25:39 +03:00

74 строки
1.6 KiB
C

/*
* Copyright (c) 2014 Mellanox Technologies, Inc.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef MCA_SSHMEM_SYSV_EXPORT_H
#define MCA_SSHMEM_SYSV_EXPORT_H
#include "oshmem_config.h"
#include "opal/util/sys_limits.h"
#include "oshmem/mca/sshmem/sshmem.h"
BEGIN_C_DECLS
/**
* globally exported variable to hold the sysv component.
*/
typedef struct mca_sshmem_sysv_component_t {
/* base component struct */
mca_sshmem_base_component_t super;
/* priority for sysv component */
int priority;
int use_hp;
} mca_sshmem_sysv_component_t;
OSHMEM_MODULE_DECLSPEC extern mca_sshmem_sysv_component_t
mca_sshmem_sysv_component;
typedef struct mca_sshmem_sysv_module_t {
mca_sshmem_base_module_t super;
} mca_sshmem_sysv_module_t;
extern mca_sshmem_sysv_module_t mca_sshmem_sysv_module;
/*
* Get current huge page size
*/
static size_t oshmem_gethugepagesize(void)
{
static size_t huge_page_size = 0;
char buf[256];
int size_kb;
FILE *f;
/* Cache the huge page size value */
if (huge_page_size == 0) {
f = fopen("/proc/meminfo", "r");
if (f != NULL) {
while (fgets(buf, sizeof(buf), f)) {
if (sscanf(buf, "Hugepagesize: %d kB", &size_kb) == 1) {
huge_page_size = size_kb * 1024L;
break;
}
}
fclose(f);
}
if (huge_page_size == 0) {
huge_page_size = 2 * 1024L *1024L;
}
}
return huge_page_size;
}
END_C_DECLS
#endif /* MCA_SSHMEM_SYSV_EXPORT_H */