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
| ||
|
Date: Mon, 14 Dec 2015 10:55:00 +0100 From: Vlastimil Babka <vbabka@...e.cz> To: Joonsoo Kim <js1304@...il.com>, Andrew Morton <akpm@...ux-foundation.org> Cc: Mel Gorman <mgorman@...e.de>, Rik van Riel <riel@...hat.com>, David Rientjes <rientjes@...gle.com>, Minchan Kim <minchan@...nel.org>, linux-kernel@...r.kernel.org, linux-mm@...ck.org, Joonsoo Kim <iamjoonsoo.kim@....com> Subject: Re: [PATCH v3 7/7] mm/compaction: replace compaction deferring with compaction limit On 12/03/2015 08:11 AM, Joonsoo Kim wrote: > Compaction deferring effectively reduces compaction overhead if > compaction success isn't expected. But, it is implemented that > skipping a number of compaction requests until compaction is re-enabled. > Due to this implementation, unfortunate compaction requestor will get > whole compaction overhead unlike others have zero overhead. And, after > deferring start to work, even if compaction success possibility is > restored, we should skip to compaction in some number of times. > > This patch try to solve above problem by using compaction limit. > Instead of imposing compaction overhead to one unfortunate requestor, > compaction limit distributes overhead to all compaction requestors. > All requestors have a chance to migrate some amount of pages and > after limit is exhausted compaction will be stopped. This will fairly > distributes overhead to all compaction requestors. And, because we don't > defer compaction request, someone will succeed to compact as soon as > possible if compaction success possiblility is restored. > > Following is whole workflow enabled by this change. > > - if sync compaction fails, compact_order_failed is set to current order > - if it fails again, compact_defer_shift is adjusted > - with positive compact_defer_shift, migration_scan_limit is assigned and > compaction limit is activated > - if compaction limit is activated, compaction would be stopped when > migration_scan_limit is exhausted > - when success, compact_defer_shift and compact_order_failed is reset and > compaction limit is deactivated > - compact_defer_shift can be grown up to COMPACT_MAX_DEFER_SHIFT > > Most of changes are mechanical ones to remove compact_considered which > is not needed now. Note that, after restart, compact_defer_shift is > subtracted by 1 to avoid invoking __reset_isolation_suitable() > repeatedly. > > I tested this patch on my compaction benchmark and found that high-order > allocation latency is evenly distributed and there is no latency spike > in the situation where compaction success isn't possible. > > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@....com> Looks fine overal, looking forward to next version :) (due to changes expected in preceding patches, I didn't review the code fully now). -- 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