
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
74 строки
1.6 KiB
C
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 */
|