Signed-off-by: Eric B Munson <[EMAIL PROTECTED]> --- hugeutils.c | 5 +++++ libhugetlbfs_internal.h | 1 + shm.c | 11 ++--------- 3 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/hugeutils.c b/hugeutils.c index 1eae936..ad9d4a6 100644 --- a/hugeutils.c +++ b/hugeutils.c @@ -293,6 +293,11 @@ void hugetlbfs_setup_env() env = getenv("HUGETLB_MORECORE_SHRINK"); if (env && strcasecmp(env, "yes") == 0) __hugetlb_opts.shrink_ok = 1; + + /* Determine if shmget() calls should be overridden */ + env = getenv("HUGETLB_SHM"); + if (env && !strcmp(env, "yes")) + __hugetlb_opts.shm_enabled = 1; } /* diff --git a/libhugetlbfs_internal.h b/libhugetlbfs_internal.h index dae4247..de85435 100644 --- a/libhugetlbfs_internal.h +++ b/libhugetlbfs_internal.h @@ -59,6 +59,7 @@ struct libhugeopts_t { int min_copy; int sharing; int shrink_ok; + int shm_enabled; unsigned long force_elfmap; char *ld_preload; char *elfmap; diff --git a/shm.c b/shm.c index ac3b52a..b3def09 100644 --- a/shm.c +++ b/shm.c @@ -34,9 +34,7 @@ int shmget(key_t key, size_t size, int shmflg) static int (*real_shmget)(key_t key, size_t size, int shmflg) = NULL; char *error; int retval; - char *hugetlbshm_env; size_t aligned_size = size; - int hugetlbshm_enabled = 0; DEBUG("hugetlb_shmem: entering overridden shmget() call\n"); @@ -49,13 +47,8 @@ int shmget(key_t key, size_t size, int shmflg) } } - /* Determine if shmget() calls should be overridden */ - hugetlbshm_env = getenv("HUGETLB_SHM"); - if (hugetlbshm_env && !strcmp(hugetlbshm_env, "yes")) - hugetlbshm_enabled = 1; - /* Align the size and set SHM_HUGETLB on request */ - if (hugetlbshm_enabled) { + if (__hugetlb_opts.shm_enabled) { /* * Use /proc/meminfo because shm always uses the system * default huge page size. @@ -75,7 +68,7 @@ int shmget(key_t key, size_t size, int shmflg) /* Call the "real" shmget. If hugepages fail, use small pages */ retval = real_shmget(key, aligned_size, shmflg); - if (retval == -1 && hugetlbshm_enabled) { + if (retval == -1 && __hugetlb_opts.shm_enabled) { WARNING("While overriding shmget(%zd) to add SHM_HUGETLB: %s\n", aligned_size, strerror(errno)); shmflg &= ~SHM_HUGETLB; -- 1.6.0.3 ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel