| .. | .. |
|---|
| 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) { |
|---|