xref: /aosp_15_r20/external/ltp/testcases/kernel/controllers/memcg/regression/memcg_test_4.c (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 // Copyright (c) 2009 FUJITSU LIMITED
3 // Author: Li Zefan <[email protected]>
4 
5 #include <sys/mman.h>
6 #include <err.h>
7 #include <signal.h>
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <string.h>
11 #include <unistd.h>
12 #include <unistd.h>
13 
14 #define MEM_SIZE	(1024 * 1024 * 100)
15 
sigusr_handler(int signo)16 void sigusr_handler(int __attribute__ ((unused)) signo)
17 {
18 	char *p;
19 
20 	p = mmap(NULL, MEM_SIZE, PROT_READ | PROT_WRITE,
21 		 MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
22 	if (p == MAP_FAILED) {
23 		err(1, "failed to allocate memory!");
24 	}
25 
26 	memset(p, 'z', MEM_SIZE);
27 }
28 
main(void)29 int main(void)
30 {
31 	struct sigaction sigusr_action;
32 
33 	memset(&sigusr_action, 0, sizeof(sigusr_action));
34 	sigusr_action.sa_handler = &sigusr_handler;
35 	sigaction(SIGUSR1, &sigusr_action, NULL);
36 
37 	while (1)
38 		sleep(1);
39 
40 	return 0;
41 }
42