.. | .. |
---|
18 | 18 | |
---|
19 | 19 | #include "../kselftest.h" |
---|
20 | 20 | |
---|
21 | | -#define MAP_SIZE 1048576 |
---|
| 21 | +#define MAP_SIZE_MB 100 |
---|
| 22 | +#define MAP_SIZE (MAP_SIZE_MB * 1024 * 1024) |
---|
22 | 23 | |
---|
23 | 24 | struct map_list { |
---|
24 | 25 | void *map; |
---|
.. | .. |
---|
165 | 166 | void *map = NULL; |
---|
166 | 167 | unsigned long mem_free = 0; |
---|
167 | 168 | unsigned long hugepage_size = 0; |
---|
168 | | - unsigned long mem_fragmentable = 0; |
---|
| 169 | + long mem_fragmentable_MB = 0; |
---|
169 | 170 | |
---|
170 | 171 | if (prereq() != 0) { |
---|
171 | 172 | printf("Either the sysctl compact_unevictable_allowed is not\n" |
---|
.. | .. |
---|
190 | 191 | return -1; |
---|
191 | 192 | } |
---|
192 | 193 | |
---|
193 | | - mem_fragmentable = mem_free * 0.8 / 1024; |
---|
| 194 | + mem_fragmentable_MB = mem_free * 0.8 / 1024; |
---|
194 | 195 | |
---|
195 | | - while (mem_fragmentable > 0) { |
---|
| 196 | + while (mem_fragmentable_MB > 0) { |
---|
196 | 197 | map = mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, |
---|
197 | 198 | MAP_ANONYMOUS | MAP_PRIVATE | MAP_LOCKED, -1, 0); |
---|
198 | 199 | if (map == MAP_FAILED) |
---|
.. | .. |
---|
213 | 214 | for (i = 0; i < MAP_SIZE; i += page_size) |
---|
214 | 215 | *(unsigned long *)(map + i) = (unsigned long)map + i; |
---|
215 | 216 | |
---|
216 | | - mem_fragmentable--; |
---|
| 217 | + mem_fragmentable_MB -= MAP_SIZE_MB; |
---|
217 | 218 | } |
---|
218 | 219 | |
---|
219 | 220 | for (entry = list; entry != NULL; entry = entry->next) { |
---|