blob: 7659236c5ab2182060f5158e2451a7ec01a7cc8f [file] [log] [blame]
Garrett Cooperecd667e2011-01-19 01:06:18 -08001#ifndef _MEM_H
2#define _MEM_H
Caspar Zhang45434382011-08-02 18:00:45 +08003#include "config.h"
Garrett Cooperecd667e2011-01-19 01:06:18 -08004#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 Zhang233e1222011-12-23 13:02:56 +080022#define PATH_MEMINFO "/proc/meminfo"
Garrett Cooperecd667e2011-01-19 01:06:18 -080023
24char overcommit[BUFSIZ];
25int opt_num, opt_size, opt_unit;
26char *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.]. */
29char ***memory;
30
31void oom(int testcase, int mempolicy, int lite);
32void testoom(int mempolicy, int lite, int numa);
33long count_numa(void);
34int path_exist(const char *path, ...);
35int alloc_mem(long int length, int testcase);
36void test_alloc(int testcase, int lite);
37void gather_cpus(char *cpus);
38void umount_mem(char *path, char *path_new);
39void mount_mem(char *name, char *fs, char *options, char *path, char *path_new);
40void cleanup(void);
41void setup(void);
42void ksm_usage(void);
43void check(char *path, long int value);
44void verify(char value, int proc, int start, int end, int start2, int end2);
45void 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);
48void create_same_memory(int size, int num, int unit);
49void check_ksm_options(int *size, int *num, int *unit);
50void write_cpusets(void);
51void write_memcg(void);
Caspar Zhang233e1222011-12-23 13:02:56 +080052long read_meminfo(char *item);
Garrett Cooperecd667e2011-01-19 01:06:18 -080053#endif