From 4dd680827275dc2f74efefd081e84336b990e2a7 Mon Sep 17 00:00:00 2001 From: johann Date: Tue, 22 Sep 2009 22:43:36 +0000 Subject: [PATCH] Branch b1_8 b=18505 i=adilger i=andrew Limit number of locks based on low mem on 32-bit systems. --- lnet/include/libcfs/darwin/darwin-mem.h | 1 + lnet/include/libcfs/linux/linux-mem.h | 7 +++++++ lnet/include/libcfs/winnt/portals_utils.h | 1 + 3 files changed, 9 insertions(+) diff --git a/lnet/include/libcfs/darwin/darwin-mem.h b/lnet/include/libcfs/darwin/darwin-mem.h index 95bfa06..c7dd0a0 100644 --- a/lnet/include/libcfs/darwin/darwin-mem.h +++ b/lnet/include/libcfs/darwin/darwin-mem.h @@ -229,6 +229,7 @@ void cfs_mem_cache_free ( cfs_mem_cache_t *, void *); */ /* XXX Liang: num_physpages... fix me */ #define num_physpages (64 * 1024) +#define CFS_NUM_CACHEPAGES num_physpages #define CFS_DECL_MMSPACE #define CFS_MMSPACE_OPEN do {} while(0) diff --git a/lnet/include/libcfs/linux/linux-mem.h b/lnet/include/libcfs/linux/linux-mem.h index 8f0de46..577b1aa 100644 --- a/lnet/include/libcfs/linux/linux-mem.h +++ b/lnet/include/libcfs/linux/linux-mem.h @@ -114,6 +114,13 @@ extern void __cfs_free_pages(cfs_page_t *page, unsigned int order); #define libcfs_memory_pressure_set() do { current->flags |= PF_MEMALLOC; } while(0) #define libcfs_memory_pressure_clr() do { current->flags &= ~PF_MEMALLOC; } while (0) +#if BITS_PER_LONG == 32 +/* limit to lowmem on 32-bit systems */ +#define CFS_NUM_CACHEPAGES min(num_physpages, 1UL << (30-CFS_PAGE_SHIFT) *3/4) +#else +#define CFS_NUM_CACHEPAGES num_physpages +#endif + /* * In Linux there is no way to determine whether current execution context is * blockable. diff --git a/lnet/include/libcfs/winnt/portals_utils.h b/lnet/include/libcfs/winnt/portals_utils.h index 609fba6..1e0f019 100644 --- a/lnet/include/libcfs/winnt/portals_utils.h +++ b/lnet/include/libcfs/winnt/portals_utils.h @@ -172,6 +172,7 @@ static int copy_to_user(void *to, void *from, int c) ) #define num_physpages (64 * 1024) +#define CFS_NUM_CACHEPAGES num_physpages #define snprintf _snprintf #define vsnprintf _vsnprintf -- 1.8.3.1