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 |