Commit 39b47178 authored by Andrew Vagin's avatar Andrew Vagin Committed by Pavel Emelyanov

kerndat: initialize zero_page_pfn to -1

zero_page_pfn should be invalid if it isn't set to a real value.

zero is bad, because pagemap returns zero pfn-s for non-root users.

$ python test/zdtm.py run -t zdtm/static/env00 -k always -f h --user --norst
========================== Run zdtm/static/env00 in h ==========================
Start test
./env00 --pidfile=env00.pid --outfile=env00.out --envname=ENV_00_TEST
Run criu dump
Wait for zdtm/static/env00 to die for 0.100000
========================= Test zdtm/static/env00 PASS ==========================

$ ./crit/crit show test/dump/zdtm/static/env00/24/1/pagemap-24.img
{
    "magic": "PAGEMAP",
    "entries": [
        {
            "pages_id": 1
        },
        {
            "vaddr": "0x7ffcfd5ed000",
            "nr_pages": 2
        }
    ]
}
Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent adca1244
......@@ -292,7 +292,13 @@ no_dt:
static int init_zero_page_pfn()
{
void *addr;
int ret;
int ret = 0;
kdat.zero_page_pfn = -1;
if (kdat.pmap != PM_FULL) {
pr_info("Zero page detection failed, optimization turns off.\n");
return 0;
}
addr = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (addr == MAP_FAILED) {
......@@ -305,11 +311,6 @@ static int init_zero_page_pfn()
return -1;
}
if (kdat.pmap != PM_FULL) {
pr_info("Zero page detection failed, optimization turns off.\n");
return 0;
}
ret = vaddr_to_pfn((unsigned long)addr, &kdat.zero_page_pfn);
munmap(addr, PAGE_SIZE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment