Bisected the problem and found that the first bad commit is: 92923ca "mm: meminit: only set page reserved in the memblock region"
Further debugging showed that the problem is due to the arguments of the new reserve_bootmem_region() function. Those are start and end addresses of memory ranges. With PAE there can be ranges above 4G even for 32bit i386. Which is just what happens if dom0 memory is initially limited but dom0 is allowed to balloon for more memory. The patch below fixes the bad page errors for me on 4.2 and 4.4 (and resolves the crash on 4.4 as well). ** Patch added: "Proposed fix which was sent upstream for discussion" https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1576564/+attachment/4660499/+files/0001-mm-Use-phys_addr_t-for-reserve_bootmem_region-argume.patch ** Changed in: xen (Ubuntu) Status: Triaged => Invalid -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1576564 Title: Xen 32bit dom0 on 64bit hypervisor: bad page flags To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1576564/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs