lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAJd=RBCQN1GxOUCwGPXL27d_q8hv50uHK5LhDnsv7mdv_2Usaw@mail.gmail.com> Date: Fri, 21 Dec 2012 19:51:31 +0800 From: Hillf Danton <dhillf@...il.com> To: Zlatko Calusic <zlatko.calusic@...on.hr> Cc: Linus Torvalds <torvalds@...ux-foundation.org>, Andrew Morton <akpm@...ux-foundation.org>, Mel Gorman <mgorman@...e.de>, Hugh Dickins <hughd@...gle.com>, linux-mm <linux-mm@...ck.org>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org> Subject: Re: [PATCH] mm: do not sleep in balance_pgdat if there's no i/o congestion On Thu, Dec 20, 2012 at 7:25 AM, Zlatko Calusic <zlatko.calusic@...on.hr> wrote: > static unsigned long balance_pgdat(pg_data_t *pgdat, int order, > int *classzone_idx) > { > - int all_zones_ok; > + struct zone *unbalanced_zone; nit: less hunks if not erase that mark Hillf > unsigned long balanced; > int i; > int end_zone = 0; /* Inclusive. 0 = ZONE_DMA */ > @@ -2580,7 +2580,7 @@ loop_again: > unsigned long lru_pages = 0; > int has_under_min_watermark_zone = 0; > > - all_zones_ok = 1; > + unbalanced_zone = NULL; > balanced = 0; > > /* > @@ -2719,7 +2719,7 @@ loop_again: > } > > if (!zone_balanced(zone, testorder, 0, end_zone)) { > - all_zones_ok = 0; > + unbalanced_zone = zone; > /* > * We are still under min water mark. This > * means that we have a GFP_ATOMIC allocation > @@ -2752,7 +2752,7 @@ loop_again: > pfmemalloc_watermark_ok(pgdat)) > wake_up(&pgdat->pfmemalloc_wait); > > - if (all_zones_ok || (order && pgdat_balanced(pgdat, balanced, *classzone_idx))) > + if (!unbalanced_zone || (order && pgdat_balanced(pgdat, balanced, *classzone_idx))) > break; /* kswapd: all done */ > /* > * OK, kswapd is getting into trouble. Take a nap, then take > @@ -2762,7 +2762,7 @@ loop_again: > if (has_under_min_watermark_zone) > count_vm_event(KSWAPD_SKIP_CONGESTION_WAIT); > else > - congestion_wait(BLK_RW_ASYNC, HZ/10); > + wait_iff_congested(unbalanced_zone, BLK_RW_ASYNC, HZ/10); > } > > /* > @@ -2781,7 +2781,7 @@ out: > * high-order: Balanced zones must make up at least 25% of the node > * for the node to be balanced > */ > - if (!(all_zones_ok || (order && pgdat_balanced(pgdat, balanced, *classzone_idx)))) { > + if (unbalanced_zone && (!order || !pgdat_balanced(pgdat, balanced, *classzone_idx))) { > cond_resched(); > > try_to_freeze(); > -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists