blob: e22c5d95222bba737e57cca062e278b9bb0d94cf [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"
Caspar Zhang2031d3c2011-12-23 18:03:56 +080015#if defined(__powerpc__) || defined(__powerpc64__)
16#define MAXNODES 256
17#else
Garrett Cooperecd667e2011-01-19 01:06:18 -080018#define MAXNODES 512
Caspar Zhang2031d3c2011-12-23 18:03:56 +080019#endif
Garrett Cooperecd667e2011-01-19 01:06:18 -080020#define MEMCG_PATH "/dev/cgroup"
21#define MEMCG_PATH_NEW MEMCG_PATH "/1"
22#define TESTMEM (1UL<<30)
23#define MB (1UL<<20)
24#define PATH_SYS_SYSTEM "/sys/devices/system"
25#define PATH_KSM "/sys/kernel/mm/ksm/"
Caspar Zhang233e1222011-12-23 13:02:56 +080026#define PATH_MEMINFO "/proc/meminfo"
Garrett Cooperecd667e2011-01-19 01:06:18 -080027
28char overcommit[BUFSIZ];
29int opt_num, opt_size, opt_unit;
30char *opt_numstr, *opt_sizestr, *opt_unitstr;
31/* memory pointer to identify per process, MB unit, and byte like
32 memory[process No.][MB unit No.][byte No.]. */
33char ***memory;
34
35void oom(int testcase, int mempolicy, int lite);
36void testoom(int mempolicy, int lite, int numa);
37long count_numa(void);
38int path_exist(const char *path, ...);
39int alloc_mem(long int length, int testcase);
40void test_alloc(int testcase, int lite);
41void gather_cpus(char *cpus);
42void umount_mem(char *path, char *path_new);
43void mount_mem(char *name, char *fs, char *options, char *path, char *path_new);
44void cleanup(void);
45void setup(void);
46void ksm_usage(void);
47void check(char *path, long int value);
48void verify(char value, int proc, int start, int end, int start2, int end2);
49void group_check(int run, int pages_shared, int pages_sharing,
50 int pages_volatile, int pages_unshared, int sleep_millisecs,
51 int pages_to_scan);
52void create_same_memory(int size, int num, int unit);
53void check_ksm_options(int *size, int *num, int *unit);
54void write_cpusets(void);
55void write_memcg(void);
Caspar Zhang233e1222011-12-23 13:02:56 +080056long read_meminfo(char *item);
Garrett Cooperecd667e2011-01-19 01:06:18 -080057#endif