* Other parts of the kernel may not check if the zone is available.
  */
 static void pageset_init(struct per_cpu_pageset *p);
+/* These effectively disable the pcplists in the boot pageset completely */
+#define BOOT_PAGESET_HIGH      0
+#define BOOT_PAGESET_BATCH     1
 static DEFINE_PER_CPU(struct per_cpu_pageset, boot_pageset);
 static DEFINE_PER_CPU(struct per_cpu_nodestat, boot_nodestats);
 
         * need to be as careful as pageset_update() as nobody can access the
         * pageset yet.
         */
-       pcp->high = 0;
-       pcp->batch = 1;
+       pcp->high = BOOT_PAGESET_HIGH;
+       pcp->batch = BOOT_PAGESET_BATCH;
 }
 
 /*
                new_batch = max(1UL, 1 * new_batch);
        }
 
+       if (zone->pageset_high == new_high &&
+           zone->pageset_batch == new_batch)
+               return;
+
+       zone->pageset_high = new_high;
+       zone->pageset_batch = new_batch;
+
        for_each_possible_cpu(cpu) {
                p = per_cpu_ptr(zone->pageset, cpu);
                pageset_update(&p->pcp, new_high, new_batch);
         * offset of a (static) per cpu variable into the per cpu area.
         */
        zone->pageset = &boot_pageset;
+       zone->pageset_high = BOOT_PAGESET_HIGH;
+       zone->pageset_batch = BOOT_PAGESET_BATCH;
 
        if (populated_zone(zone))
                printk(KERN_DEBUG "  %s zone: %lu pages, LIFO batch:%u\n",