Signed-off-by: Eric B Munson <[EMAIL PROTECTED]> --- Changes from V1: Rebase to libhuge 2.1
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 ca2ae36..fdca525 100644 --- a/hugeutils.c +++ b/hugeutils.c @@ -295,6 +295,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 9cda3eb..b3c3a38 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 ed7731e..6847c48 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 ------------------------------------------------------------------------------ SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. The future of the web can't happen without you. Join us at MIX09 to help pave the way to the Next Web now. Learn more and register at http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel