| Garrett Cooper | ecd667e | 2011-01-19 01:06:18 -0800 | [diff] [blame] | 1 | #ifndef _MEM_H | 
|  | 2 | #define _MEM_H | 
| Caspar Zhang | 4543438 | 2011-08-02 18:00:45 +0800 | [diff] [blame] | 3 | #include "config.h" | 
| Garrett Cooper | ecd667e | 2011-01-19 01:06:18 -0800 | [diff] [blame] | 4 | #include "test.h" | 
|  | 5 | #include "usctest.h" | 
|  | 6 |  | 
|  | 7 | #define LENGTH			(3UL<<30) | 
|  | 8 | #define SYSFS_OVER		"/proc/sys/vm/overcommit_memory" | 
|  | 9 | #define OVERCOMMIT		1 | 
|  | 10 | #define NORMAL			2 | 
|  | 11 | #define MLOCK			3 | 
|  | 12 | #define KSM			4 | 
|  | 13 | #define CPATH			"/dev/cpuset" | 
|  | 14 | #define CPATH_NEW		CPATH "/1" | 
|  | 15 | #define MAXNODES		512 | 
|  | 16 | #define MEMCG_PATH		"/dev/cgroup" | 
|  | 17 | #define MEMCG_PATH_NEW		MEMCG_PATH "/1" | 
|  | 18 | #define TESTMEM			(1UL<<30) | 
|  | 19 | #define MB			(1UL<<20) | 
|  | 20 | #define PATH_SYS_SYSTEM		"/sys/devices/system" | 
|  | 21 | #define PATH_KSM		"/sys/kernel/mm/ksm/" | 
| Caspar Zhang | 233e122 | 2011-12-23 13:02:56 +0800 | [diff] [blame^] | 22 | #define PATH_MEMINFO		"/proc/meminfo" | 
| Garrett Cooper | ecd667e | 2011-01-19 01:06:18 -0800 | [diff] [blame] | 23 |  | 
|  | 24 | char overcommit[BUFSIZ]; | 
|  | 25 | int opt_num, opt_size, opt_unit; | 
|  | 26 | char *opt_numstr, *opt_sizestr, *opt_unitstr; | 
|  | 27 | /* memory pointer to identify per process, MB unit, and byte like | 
|  | 28 | memory[process No.][MB unit No.][byte No.]. */ | 
|  | 29 | char ***memory; | 
|  | 30 |  | 
|  | 31 | void oom(int testcase, int mempolicy, int lite); | 
|  | 32 | void testoom(int mempolicy, int lite, int numa); | 
|  | 33 | long count_numa(void); | 
|  | 34 | int path_exist(const char *path, ...); | 
|  | 35 | int alloc_mem(long int length, int testcase); | 
|  | 36 | void test_alloc(int testcase, int lite); | 
|  | 37 | void gather_cpus(char *cpus); | 
|  | 38 | void umount_mem(char *path, char *path_new); | 
|  | 39 | void mount_mem(char *name, char *fs, char *options, char *path, char *path_new); | 
|  | 40 | void cleanup(void); | 
|  | 41 | void setup(void); | 
|  | 42 | void ksm_usage(void); | 
|  | 43 | void check(char *path, long int value); | 
|  | 44 | void verify(char value, int proc, int start, int end, int start2, int end2); | 
|  | 45 | void group_check(int run, int pages_shared, int pages_sharing, | 
|  | 46 | int pages_volatile, int pages_unshared, int sleep_millisecs, | 
|  | 47 | int pages_to_scan); | 
|  | 48 | void create_same_memory(int size, int num, int unit); | 
|  | 49 | void check_ksm_options(int *size, int *num, int *unit); | 
|  | 50 | void write_cpusets(void); | 
|  | 51 | void write_memcg(void); | 
| Caspar Zhang | 233e122 | 2011-12-23 13:02:56 +0800 | [diff] [blame^] | 52 | long read_meminfo(char *item); | 
| Garrett Cooper | ecd667e | 2011-01-19 01:06:18 -0800 | [diff] [blame] | 53 | #endif |