Messages in this thread | | | From | Grazvydas Ignotas <> | Subject | remap_file_pages regression | Date | Mon, 15 Feb 2016 03:32:55 +0200 |
| |
Hi,
since remap_file_pages() rework the following simple program fails. I haven't actually bisected this, only know it worked on 3.19 at least (I bought a new system now and need 4.2+ for hardware support). If you are curious, the program is an emulator and is using remap_file_pages() to implement memory mirroring efficiently (and to remap things during run time).
Grazvydas
====%<===
#define _GNU_SOURCE #include <assert.h> #include <stdlib.h> #include <stdio.h> #include <sys/mman.h>
#define SIZE (4096 * 3)
int main(int argc, char **argv) { unsigned long *p; long i;
p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); if (p == MAP_FAILED) { perror("mmap"); return -1; }
for (i = 0; i < SIZE / 4096; i++) p[i * 4096 / sizeof(*p)] = i;
if (remap_file_pages(p, 4096, 0, 1, 0)) { perror("remap_file_pages"); return -1; }
if (remap_file_pages(p, 4096 * 2, 0, 1, 0)) { perror("remap_file_pages"); return -1; }
assert(p[0] == 1);
munmap(p, SIZE);
return 0; }
| |