On Fri, 16 Feb 2018 16:41:01 +0100 Juergen Gross <jgross@xxxxxxxx> wrote: > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -347,6 +347,9 @@ static inline bool update_defer_init(pg_data_t *pgdat, > /* Always populate low zones for address-constrained allocations */ > if (zone_end < pgdat_end_pfn(pgdat)) > return true; > + /* Xen PV domains need page structures early */ > + if (xen_pv_domain()) > + return true; I'll do this: --- a/mm/page_alloc.c~mm-dont-defer-struct-page-initialization-for-xen-pv-guests-fix +++ a/mm/page_alloc.c @@ -46,6 +46,7 @@ #include <linux/stop_machine.h> #include <linux/sort.h> #include <linux/pfn.h> +#include <xen/xen.h> #include <linux/backing-dev.h> #include <linux/fault-inject.h> #include <linux/page-isolation.h> So we're not relying on dumb luck ;)