continue;
                        if (zone->all_unreclaimable && priority != DEF_PRIORITY)
                                continue;       /* Let kswapd poll it */
+                       if (COMPACTION_BUILD) {
+                               /*
+                                * If we already have plenty of memory
+                                * free for compaction, don't free any
+                                * more.  Even though compaction is
+                                * invoked for any non-zero order,
+                                * only frequent costly order
+                                * reclamation is disruptive enough to
+                                * become a noticable problem, like
+                                * transparent huge page allocations.
+                                */
+                               if (sc->order > PAGE_ALLOC_COSTLY_ORDER &&
+                                       (compaction_suitable(zone, sc->order) ||
+                                        compaction_deferred(zone)))
+                                       continue;
+                       }
                        /*
                         * This steals pages from memory cgroups over softlimit
                         * and returns the number of reclaimed pages and