Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1492231
| From | Johannes Weiner <hannes@cmpxchg.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Regression in mobility grouping? |
| Date | 2016-09-28 03:50 +0200 |
| Message-ID | <smcat-hm-1@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
[Multipart message — attachments visible in raw view] - view raw
Hi guys, we noticed what looks like a regression in page mobility grouping during an upgrade from 3.10 to 4.0. Identical machines, workloads, and uptime, but /proc/pagetypeinfo on 3.10 looks like this: Number of blocks type Unmovable Reclaimable Movable Reserve Isolate Node 1, zone Normal 815 433 31518 2 0 and on 4.0 like this: Number of blocks type Unmovable Reclaimable Movable Reserve CMA Isolate Node 1, zone Normal 3880 3530 25356 2 0 0 4.0 is either polluting pageblocks more aggressively at allocation, or is not able to make pageblocks movable again when the reclaimable and unmovable allocations are released. Invoking compaction manually (/proc/sys/vm/compact_memory) is not bringing them back, either. The problem we are debugging is that these machines have a very high rate of order-3 allocations (fdtable during fork, network rx), and after the upgrade allocstalls have increased dramatically. I'm not entirely sure this is the same issue, since even order-0 allocations are struggling, but the mobility grouping in itself looks problematic. I'm still going through the changes relevant to mobility grouping in that timeframe, but if this rings a bell for anyone, it would help. I hate blaming random patches, but these caught my eye: 9c0415e mm: more aggressive page stealing for UNMOVABLE allocations 3a1086f mm: always steal split buddies in fallback allocations 99592d5 mm: when stealing freepages, also take pages created by splitting buddy page The changelog states that by aggressively stealing split buddy pages during a fallback allocation we avoid subsequent stealing. But since there are generally more movable/reclaimable pages available, and so less falling back and stealing freepages on behalf of movable, won't this mean that we could expect exactly that result - growing numbers of unmovable blocks, while rarely stealing them back in movable alloc fallbacks? And the expansion of !MOVABLE blocks would over time make compaction less and less effective too, seeing as it doesn't consider anything !MOVABLE suitable migration targets? Attached are the full /proc/pagetypeinfo and /proc/buddyinfo from both kernels on machines with similar uptimes and directly after invoking compaction. As you can see, the buddy lists are much more fragmented on 4.0, with unmovable/reclaimable allocations polluting more blocks. Any thoughts on this would be greatly appreciated. I can test patches. Thanks!
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Regression in mobility grouping? Johannes Weiner <hannes@cmpxchg.org> - 2016-09-28 03:50 +0200
Re: Regression in mobility grouping? Vlastimil Babka <vbabka@suse.cz> - 2016-09-28 11:10 +0200
Re: Regression in mobility grouping? Johannes Weiner <hannes@cmpxchg.org> - 2016-09-28 17:50 +0200
Re: Regression in mobility grouping? Johannes Weiner <hannes@cmpxchg.org> - 2016-09-29 04:30 +0200
Re: Regression in mobility grouping? Joonsoo Kim <iamjoonsoo.kim@lge.com> - 2016-09-29 08:10 +0200
Re: Regression in mobility grouping? Johannes Weiner <hannes@cmpxchg.org> - 2016-09-29 18:20 +0200
Re: Regression in mobility grouping? Vlastimil Babka <vbabka@suse.cz> - 2016-09-29 09:20 +0200
Re: Regression in mobility grouping? Mel Gorman <mgorman@suse.de> - 2016-09-28 12:30 +0200
Re: Regression in mobility grouping? Johannes Weiner <hannes@cmpxchg.org> - 2016-09-28 18:50 +0200
[RFC 2/4] mm, compaction: add migratetype to compact_control Vlastimil Babka <vbabka@suse.cz> - 2016-09-29 23:10 +0200
[RFC 1/4] mm, compaction: change migrate_async_suitable() to suitable_migration_source() Vlastimil Babka <vbabka@suse.cz> - 2016-09-29 23:10 +0200
[RFC 3/4] mm, compaction: restrict async compaction to matching migratetype Vlastimil Babka <vbabka@suse.cz> - 2016-09-29 23:10 +0200
[RFC 4/4] mm, page_alloc: disallow migratetype fallback in fastpath Vlastimil Babka <vbabka@suse.cz> - 2016-09-29 23:10 +0200
Re: [RFC 4/4] mm, page_alloc: disallow migratetype fallback in fastpath Vlastimil Babka <vbabka@suse.cz> - 2016-10-12 17:20 +0200
[RFC 0/4] try to reduce fragmenting fallbacks Vlastimil Babka <vbabka@suse.cz> - 2016-09-29 23:10 +0200
[RFC 5/4] mm, page_alloc: split smallest stolen page in fallback Vlastimil Babka <vbabka@suse.cz> - 2016-10-07 10:40 +0200
Re: [RFC 0/4] try to reduce fragmenting fallbacks Johannes Weiner <hannes@cmpxchg.org> - 2016-10-10 19:30 +0200
[RFC 6/4] mm, page_alloc: introduce MIGRATE_MIXED migratetype Vlastimil Babka <vbabka@suse.cz> - 2016-10-11 15:20 +0200
csiph-web