xref: /linux/tools/testing/selftests/damon/access_memory_even.c (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Artificial memory access program for testing DAMON.
4  *
5  * Receives number of regions and size of each region from user.  Allocate the
6  * regions and repeatedly access even numbered (starting from zero) regions.
7  */
8 
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <string.h>
12 #include <time.h>
13 
14 int main(int argc, char *argv[])
15 {
16 	char **regions;
17 	clock_t start_clock;
18 	int nr_regions;
19 	int sz_region;
20 	int access_time_ms;
21 	int i;
22 
23 	if (argc != 3) {
24 		printf("Usage: %s <number> <size (bytes)>\n", argv[0]);
25 		return -1;
26 	}
27 
28 	nr_regions = atoi(argv[1]);
29 	sz_region = atoi(argv[2]);
30 
31 	regions = malloc(sizeof(*regions) * nr_regions);
32 	for (i = 0; i < nr_regions; i++)
33 		regions[i] = malloc(sz_region);
34 
35 	while (1) {
36 		for (i = 0; i < nr_regions; i++) {
37 			if (i % 2 == 0)
38 				memset(regions[i], i, sz_region);
39 		}
40 	}
41 	return 0;
42 }
43