From: Michal Hocko <mhocko@kernel.org> To: linux-mm@kvack.org Cc: Andrew Morton <akpm@linux-foundation.org>, Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>, Andrea Arcangeli <aarcange@redhat.com>, Jerome Glisse <jglisse@redhat.com>, Reza Arbab <arbab@linux.vnet.ibm.com>, Yasuaki Ishimatsu <yasu.isimatu@gmail.com>, qiuxishi@huawei.com, Kani Toshimitsu <toshi.kani@hpe.com>, slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>, Andi Kleen <ak@linux.intel.com>, David Rientjes <rientjes@google.com>, Daniel Kiper <daniel.kiper@oracle.com>, Igor Mammedov <imammedo@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, LKML <linux-kernel@vger.kernel.org>, Dan Williams <dan.j.williams@gmail.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Lai Jiangshan <laijs@cn.fujitsu.com>, Martin Schwidefsky <schwidefsky@de.ibm.com>, Michal Hocko <mhocko@suse.com>, Tobias Regnery <tobias.regnery@gmail.com> Subject: [PATCH -v2 0/9] mm: make movable onlining suck less Date: Mon, 10 Apr 2017 13:03:42 +0200 [thread overview] Message-ID: <20170410110351.12215-1-mhocko@kernel.org> (raw) Hi, The last version of this series has been posted here [1]. It has seen some more serious testing (thanks to Reza Arbab) and fixes for the found issues. I have also decided to drop patch 1 [2] because it turned out to be more complicated than I initially thought [3]. Few more patches were added to deal with expectation on zone/node initialization. I have rebased on top of the current mmotm-2017-04-07-15-53. It conflicts with HMM because it touches memory hotplug as well. We have discussed [4] with Jérôme and he agreed to rebase on top of this rework [5] so I have reverted his series before applyig mine. I will help him to resolve the resulting conflicts. You can find the whole series including the HMM revers in git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git branch attempts/rewrite-mem_hotplug Motivation: Movable onlining is a real hack with many downsides - mainly reintroduction of lowmem/highmem issues we used to have on 32b systems - but it is the only way to make the memory hotremove more reliable which is something that people are asking for. The current semantic of memory movable onlinening is really cumbersome, however. The main reason for this is that the udev driven approach is basically unusable because udev races with the memory probing while only the last memory block or the one adjacent to the existing zone_movable are allowed to be onlined movable. In short the criterion for the successful online_movable changes under udev's feet. A reliable udev approach would require a 2 phase approach where the first successful movable online would have to check all the previous blocks and online them in descending order. This is hard to be considered sane. This patchset aims at making the onlining semantic more usable. First of all it allows to online memory movable as long as it doesn't clash with the existing ZONE_NORMAL. That means that ZONE_NORMAL and ZONE_MOVABLE cannot overlap. Currently I preserve the original ordering semantic so the zone always precedes the movable zone but I have plans to remove this restriction in future because it is not really necessary. First 3 patches are cleanups which should be ready to be merged right away (unless I have missed something subtle of course). Patch 4 deals with ZONE_DEVICE dependencies down the __add_pages path. Patch 5 deals with implicit assumptions of register_one_node on pgdat initialization. Patch 6 is the core of the change. In order to make it easier to review I have tried it to be as minimalistic as possible and the large code removal is moved to patch 9. Patch 7 is a trivial follow up cleanup. Patch 8 fixes sparse warnings and finally patch 9 removes the unused code. I have tested the patches in kvm: # qemu-system-x86_64 -enable-kvm -monitor pty -m 2G,slots=4,maxmem=4G -numa node,mem=1G -numa node,mem=1G ... and then probed the additional memory by (qemu) object_add memory-backend-ram,id=mem1,size=1G (qemu) device_add pc-dimm,id=dimm1,memdev=mem1 Then I have used this simple script to probe the memory block by hand # cat probe_memblock.sh #!/bin/sh BLOCK_NR=$1 # echo $((0x100000000+$BLOCK_NR*(128<<20))) > /sys/devices/system/memory/probe # for i in $(seq 10); do sh probe_memblock.sh $i; done # grep . /sys/devices/system/memory/memory3?/valid_zones 2>/dev/null /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Normal Movable /sys/devices/system/memory/memory35/valid_zones:Normal Movable /sys/devices/system/memory/memory36/valid_zones:Normal Movable /sys/devices/system/memory/memory37/valid_zones:Normal Movable /sys/devices/system/memory/memory38/valid_zones:Normal Movable /sys/devices/system/memory/memory39/valid_zones:Normal Movable The main difference to the original implementation is that all new memblocks can be both online_kernel and online_movable initially because there is no clash obviously. For the comparison the original implementation would have /sys/devices/system/memory/memory33/valid_zones:Normal /sys/devices/system/memory/memory34/valid_zones:Normal /sys/devices/system/memory/memory35/valid_zones:Normal /sys/devices/system/memory/memory36/valid_zones:Normal /sys/devices/system/memory/memory37/valid_zones:Normal /sys/devices/system/memory/memory38/valid_zones:Normal /sys/devices/system/memory/memory39/valid_zones:Normal Movable Now # echo online_movable > /sys/devices/system/memory/memory34/state # grep . /sys/devices/system/memory/memory3?/valid_zones 2>/dev/null /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable /sys/devices/system/memory/memory35/valid_zones:Movable /sys/devices/system/memory/memory36/valid_zones:Movable /sys/devices/system/memory/memory37/valid_zones:Movable /sys/devices/system/memory/memory38/valid_zones:Movable /sys/devices/system/memory/memory39/valid_zones:Movable Block 33 can still be online both kernel and movable while all the remaining can be only movable. /proc/zonelist says Node 0, zone Normal pages free 0 min 0 low 0 high 0 spanned 0 present 0 -- Node 0, zone Movable pages free 32753 min 85 low 117 high 149 spanned 32768 present 32768 A new memblock at a lower address will result in a new memblock (32) which will still allow both Normal and Movable. # sh probe_memblock.sh 0 # grep . /sys/devices/system/memory/memory3[2-5]/valid_zones 2>/dev/null /sys/devices/system/memory/memory32/valid_zones:Normal Movable /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable /sys/devices/system/memory/memory35/valid_zones:Movable and online_kernel will convert it to the zone normal properly while 33 can be still onlined both ways. # echo online_kernel > /sys/devices/system/memory/memory32/state # grep . /sys/devices/system/memory/memory3[2-5]/valid_zones 2>/dev/null /sys/devices/system/memory/memory32/valid_zones:Normal /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable /sys/devices/system/memory/memory35/valid_zones:Movable /proc/zoneinfo will now tell Node 0, zone Normal pages free 65441 min 165 low 230 high 295 spanned 65536 present 65536 -- Node 0, zone Movable pages free 32740 min 82 low 114 high 146 spanned 32768 present 32768 so both zones have one memblock spanned and present. Onlining 39 should associate this block to the movable zone # echo online > /sys/devices/system/memory/memory39/state /proc/zoneinfo will now tell Node 0, zone Normal pages free 32765 min 80 low 112 high 144 spanned 32768 present 32768 -- Node 0, zone Movable pages free 65501 min 160 low 225 high 290 spanned 196608 present 65536 so we will have a movable zone which spans 6 memblocks, 2 present and 4 representing a hole. Offlining both movable blocks will lead to the zone with no present pages which is the expected behavior I believe. # echo offline > /sys/devices/system/memory/memory39/state # echo offline > /sys/devices/system/memory/memory34/state # grep -A6 "Movable\|Normal" /proc/zoneinfo Node 0, zone Normal pages free 32735 min 90 low 122 high 154 spanned 32768 present 32768 -- Node 0, zone Movable pages free 0 min 0 low 0 high 0 spanned 196608 present 0 Any thoughts, complains, suggestions? As a bonus we will get a nice cleanup in the memory hotplug codebase arch/ia64/mm/init.c | 11 +- arch/powerpc/mm/mem.c | 12 +- arch/s390/mm/init.c | 32 +-- arch/sh/mm/init.c | 10 +- arch/x86/mm/init_32.c | 7 +- arch/x86/mm/init_64.c | 11 +- drivers/base/memory.c | 74 ++++--- drivers/base/node.c | 58 ++---- include/linux/memory_hotplug.h | 19 +- include/linux/mmzone.h | 16 +- include/linux/node.h | 35 +++- kernel/memremap.c | 6 +- mm/memory_hotplug.c | 451 ++++++++++++++--------------------------- mm/page_alloc.c | 8 +- mm/sparse.c | 3 +- 15 files changed, 284 insertions(+), 469 deletions(-) Shortlog says: Michal Hocko (9): mm: remove return value from init_currently_empty_zone mm, memory_hotplug: use node instead of zone in can_online_high_movable mm: drop page_initialized check from get_nid_for_pfn mm, memory_hotplug: get rid of is_zone_device_section mm, memory_hotplug: split up register_one_node mm, memory_hotplug: do not associate hotadded memory to zones until online mm, memory_hotplug: replace for_device by want_memblock in arch_add_memory mm, memory_hotplug: fix the section mismatch warning mm, memory_hotplug: remove unused cruft after memory hotplug rework [1] http://lkml.kernel.org/r/20170330115454.32154-1-mhocko@kernel.org [2] http://lkml.kernel.org/r/20170331073954.GF27098@dhcp22.suse.cz [3] http://lkml.kernel.org/r/20170405081400.GE6035@dhcp22.suse.cz [4] http://lkml.kernel.org/r/20170407121349.GB16392@dhcp22.suse.cz [5] http://lkml.kernel.org/r/20170407182752.GA17852@redhat.com
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org> To: linux-mm@kvack.org Cc: Andrew Morton <akpm@linux-foundation.org>, Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>, Andrea Arcangeli <aarcange@redhat.com>, Jerome Glisse <jglisse@redhat.com>, Reza Arbab <arbab@linux.vnet.ibm.com>, Yasuaki Ishimatsu <yasu.isimatu@gmail.com>, qiuxishi@huawei.com, Kani Toshimitsu <toshi.kani@hpe.com>, slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>, Andi Kleen <ak@linux.intel.com>, David Rientjes <rientjes@google.com>, Daniel Kiper <daniel.kiper@oracle.com>, Igor Mammedov <imammedo@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, LKML <linux-kernel@vger.kernel.org>, Dan Williams <dan.j.williams@gmail.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Lai Jiangshan <laijs@cn.fujitsu.com>, Martin Schwidefsky <schwidefsky@de.ibm.com>, Michal Hocko <mhocko@suse.com>, Tobias Regnery <tobias.regnery@gmail.com> Subject: [PATCH -v2 0/9] mm: make movable onlining suck less Date: Mon, 10 Apr 2017 13:03:42 +0200 [thread overview] Message-ID: <20170410110351.12215-1-mhocko@kernel.org> (raw) Hi, The last version of this series has been posted here [1]. It has seen some more serious testing (thanks to Reza Arbab) and fixes for the found issues. I have also decided to drop patch 1 [2] because it turned out to be more complicated than I initially thought [3]. Few more patches were added to deal with expectation on zone/node initialization. I have rebased on top of the current mmotm-2017-04-07-15-53. It conflicts with HMM because it touches memory hotplug as well. We have discussed [4] with JA(C)rA'me and he agreed to rebase on top of this rework [5] so I have reverted his series before applyig mine. I will help him to resolve the resulting conflicts. You can find the whole series including the HMM revers in git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git branch attempts/rewrite-mem_hotplug Motivation: Movable onlining is a real hack with many downsides - mainly reintroduction of lowmem/highmem issues we used to have on 32b systems - but it is the only way to make the memory hotremove more reliable which is something that people are asking for. The current semantic of memory movable onlinening is really cumbersome, however. The main reason for this is that the udev driven approach is basically unusable because udev races with the memory probing while only the last memory block or the one adjacent to the existing zone_movable are allowed to be onlined movable. In short the criterion for the successful online_movable changes under udev's feet. A reliable udev approach would require a 2 phase approach where the first successful movable online would have to check all the previous blocks and online them in descending order. This is hard to be considered sane. This patchset aims at making the onlining semantic more usable. First of all it allows to online memory movable as long as it doesn't clash with the existing ZONE_NORMAL. That means that ZONE_NORMAL and ZONE_MOVABLE cannot overlap. Currently I preserve the original ordering semantic so the zone always precedes the movable zone but I have plans to remove this restriction in future because it is not really necessary. First 3 patches are cleanups which should be ready to be merged right away (unless I have missed something subtle of course). Patch 4 deals with ZONE_DEVICE dependencies down the __add_pages path. Patch 5 deals with implicit assumptions of register_one_node on pgdat initialization. Patch 6 is the core of the change. In order to make it easier to review I have tried it to be as minimalistic as possible and the large code removal is moved to patch 9. Patch 7 is a trivial follow up cleanup. Patch 8 fixes sparse warnings and finally patch 9 removes the unused code. I have tested the patches in kvm: # qemu-system-x86_64 -enable-kvm -monitor pty -m 2G,slots=4,maxmem=4G -numa node,mem=1G -numa node,mem=1G ... and then probed the additional memory by (qemu) object_add memory-backend-ram,id=mem1,size=1G (qemu) device_add pc-dimm,id=dimm1,memdev=mem1 Then I have used this simple script to probe the memory block by hand # cat probe_memblock.sh #!/bin/sh BLOCK_NR=$1 # echo $((0x100000000+$BLOCK_NR*(128<<20))) > /sys/devices/system/memory/probe # for i in $(seq 10); do sh probe_memblock.sh $i; done # grep . /sys/devices/system/memory/memory3?/valid_zones 2>/dev/null /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Normal Movable /sys/devices/system/memory/memory35/valid_zones:Normal Movable /sys/devices/system/memory/memory36/valid_zones:Normal Movable /sys/devices/system/memory/memory37/valid_zones:Normal Movable /sys/devices/system/memory/memory38/valid_zones:Normal Movable /sys/devices/system/memory/memory39/valid_zones:Normal Movable The main difference to the original implementation is that all new memblocks can be both online_kernel and online_movable initially because there is no clash obviously. For the comparison the original implementation would have /sys/devices/system/memory/memory33/valid_zones:Normal /sys/devices/system/memory/memory34/valid_zones:Normal /sys/devices/system/memory/memory35/valid_zones:Normal /sys/devices/system/memory/memory36/valid_zones:Normal /sys/devices/system/memory/memory37/valid_zones:Normal /sys/devices/system/memory/memory38/valid_zones:Normal /sys/devices/system/memory/memory39/valid_zones:Normal Movable Now # echo online_movable > /sys/devices/system/memory/memory34/state # grep . /sys/devices/system/memory/memory3?/valid_zones 2>/dev/null /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable /sys/devices/system/memory/memory35/valid_zones:Movable /sys/devices/system/memory/memory36/valid_zones:Movable /sys/devices/system/memory/memory37/valid_zones:Movable /sys/devices/system/memory/memory38/valid_zones:Movable /sys/devices/system/memory/memory39/valid_zones:Movable Block 33 can still be online both kernel and movable while all the remaining can be only movable. /proc/zonelist says Node 0, zone Normal pages free 0 min 0 low 0 high 0 spanned 0 present 0 -- Node 0, zone Movable pages free 32753 min 85 low 117 high 149 spanned 32768 present 32768 A new memblock at a lower address will result in a new memblock (32) which will still allow both Normal and Movable. # sh probe_memblock.sh 0 # grep . /sys/devices/system/memory/memory3[2-5]/valid_zones 2>/dev/null /sys/devices/system/memory/memory32/valid_zones:Normal Movable /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable /sys/devices/system/memory/memory35/valid_zones:Movable and online_kernel will convert it to the zone normal properly while 33 can be still onlined both ways. # echo online_kernel > /sys/devices/system/memory/memory32/state # grep . /sys/devices/system/memory/memory3[2-5]/valid_zones 2>/dev/null /sys/devices/system/memory/memory32/valid_zones:Normal /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable /sys/devices/system/memory/memory35/valid_zones:Movable /proc/zoneinfo will now tell Node 0, zone Normal pages free 65441 min 165 low 230 high 295 spanned 65536 present 65536 -- Node 0, zone Movable pages free 32740 min 82 low 114 high 146 spanned 32768 present 32768 so both zones have one memblock spanned and present. Onlining 39 should associate this block to the movable zone # echo online > /sys/devices/system/memory/memory39/state /proc/zoneinfo will now tell Node 0, zone Normal pages free 32765 min 80 low 112 high 144 spanned 32768 present 32768 -- Node 0, zone Movable pages free 65501 min 160 low 225 high 290 spanned 196608 present 65536 so we will have a movable zone which spans 6 memblocks, 2 present and 4 representing a hole. Offlining both movable blocks will lead to the zone with no present pages which is the expected behavior I believe. # echo offline > /sys/devices/system/memory/memory39/state # echo offline > /sys/devices/system/memory/memory34/state # grep -A6 "Movable\|Normal" /proc/zoneinfo Node 0, zone Normal pages free 32735 min 90 low 122 high 154 spanned 32768 present 32768 -- Node 0, zone Movable pages free 0 min 0 low 0 high 0 spanned 196608 present 0 Any thoughts, complains, suggestions? As a bonus we will get a nice cleanup in the memory hotplug codebase arch/ia64/mm/init.c | 11 +- arch/powerpc/mm/mem.c | 12 +- arch/s390/mm/init.c | 32 +-- arch/sh/mm/init.c | 10 +- arch/x86/mm/init_32.c | 7 +- arch/x86/mm/init_64.c | 11 +- drivers/base/memory.c | 74 ++++--- drivers/base/node.c | 58 ++---- include/linux/memory_hotplug.h | 19 +- include/linux/mmzone.h | 16 +- include/linux/node.h | 35 +++- kernel/memremap.c | 6 +- mm/memory_hotplug.c | 451 ++++++++++++++--------------------------- mm/page_alloc.c | 8 +- mm/sparse.c | 3 +- 15 files changed, 284 insertions(+), 469 deletions(-) Shortlog says: Michal Hocko (9): mm: remove return value from init_currently_empty_zone mm, memory_hotplug: use node instead of zone in can_online_high_movable mm: drop page_initialized check from get_nid_for_pfn mm, memory_hotplug: get rid of is_zone_device_section mm, memory_hotplug: split up register_one_node mm, memory_hotplug: do not associate hotadded memory to zones until online mm, memory_hotplug: replace for_device by want_memblock in arch_add_memory mm, memory_hotplug: fix the section mismatch warning mm, memory_hotplug: remove unused cruft after memory hotplug rework [1] http://lkml.kernel.org/r/20170330115454.32154-1-mhocko@kernel.org [2] http://lkml.kernel.org/r/20170331073954.GF27098@dhcp22.suse.cz [3] http://lkml.kernel.org/r/20170405081400.GE6035@dhcp22.suse.cz [4] http://lkml.kernel.org/r/20170407121349.GB16392@dhcp22.suse.cz [5] http://lkml.kernel.org/r/20170407182752.GA17852@redhat.com -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2017-04-10 11:04 UTC|newest] Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-10 11:03 Michal Hocko [this message] 2017-04-10 11:03 ` [PATCH -v2 0/9] mm: make movable onlining suck less Michal Hocko 2017-04-10 11:03 ` [PATCH 1/9] mm: remove return value from init_currently_empty_zone Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-11 8:10 ` Balbir Singh 2017-04-11 8:10 ` Balbir Singh 2017-04-13 12:03 ` Vlastimil Babka 2017-04-13 12:03 ` Vlastimil Babka 2017-04-13 19:43 ` YASUAKI ISHIMATSU 2017-04-13 19:43 ` YASUAKI ISHIMATSU 2017-04-10 11:03 ` [PATCH 2/9] mm, memory_hotplug: use node instead of zone in can_online_high_movable Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-13 12:46 ` Vlastimil Babka 2017-04-13 12:46 ` Vlastimil Babka 2017-04-13 19:45 ` YASUAKI ISHIMATSU 2017-04-13 19:45 ` YASUAKI ISHIMATSU 2017-04-10 11:03 ` [PATCH 3/9] mm: drop page_initialized check from get_nid_for_pfn Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-13 12:59 ` Vlastimil Babka 2017-04-13 12:59 ` Vlastimil Babka 2017-04-10 11:03 ` [PATCH 4/9] mm, memory_hotplug: get rid of is_zone_device_section Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-10 16:20 ` Jerome Glisse 2017-04-10 16:20 ` Jerome Glisse 2017-04-10 16:31 ` Michal Hocko 2017-04-10 16:31 ` Michal Hocko 2017-04-13 13:05 ` Vlastimil Babka 2017-04-13 13:05 ` Vlastimil Babka 2017-04-17 20:12 ` Jerome Glisse 2017-04-17 20:12 ` Jerome Glisse 2017-04-18 7:19 ` Michal Hocko 2017-04-18 7:19 ` Michal Hocko 2017-04-10 11:03 ` [PATCH 5/9] mm, memory_hotplug: split up register_one_node Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-13 14:05 ` Vlastimil Babka 2017-04-13 14:05 ` Vlastimil Babka 2017-04-13 14:13 ` Michal Hocko 2017-04-13 14:13 ` Michal Hocko 2017-04-10 11:03 ` [PATCH 6/9] mm, memory_hotplug: do not associate hotadded memory to zones until online Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-10 16:25 ` [PATCH v3 " Michal Hocko 2017-04-10 16:25 ` Michal Hocko 2017-04-20 8:25 ` Vlastimil Babka 2017-04-20 8:25 ` Vlastimil Babka 2017-04-20 9:06 ` Michal Hocko 2017-04-20 9:06 ` Michal Hocko 2017-04-20 10:51 ` Vlastimil Babka 2017-04-20 10:51 ` Vlastimil Babka 2017-04-10 11:03 ` [PATCH 7/9] mm, memory_hotplug: replace for_device by want_memblock in arch_add_memory Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-20 8:29 ` Vlastimil Babka 2017-04-20 8:29 ` Vlastimil Babka 2017-04-10 11:03 ` [PATCH 8/9] mm, memory_hotplug: fix the section mismatch warning Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-10 11:03 ` [PATCH 9/9] mm, memory_hotplug: remove unused cruft after memory hotplug rework Michal Hocko 2017-04-10 11:03 ` Michal Hocko 2017-04-20 8:38 ` Vlastimil Babka 2017-04-20 8:38 ` Vlastimil Babka 2017-04-10 14:27 ` [PATCH -v2 0/9] mm: make movable onlining suck less Igor Mammedov 2017-04-10 14:27 ` Igor Mammedov 2017-04-10 14:56 ` Michal Hocko 2017-04-10 14:56 ` Michal Hocko 2017-04-10 15:22 ` Michal Hocko 2017-04-10 15:22 ` Michal Hocko 2017-04-10 15:31 ` Michal Hocko 2017-04-10 15:31 ` Michal Hocko 2017-04-11 8:01 ` Igor Mammedov 2017-04-11 8:01 ` Igor Mammedov 2017-04-11 8:41 ` Michal Hocko 2017-04-11 8:41 ` Michal Hocko 2017-04-11 9:53 ` Igor Mammedov 2017-04-11 9:53 ` Igor Mammedov 2017-04-11 10:47 ` Michal Hocko 2017-04-11 10:47 ` Michal Hocko 2017-04-10 16:02 ` Michal Hocko 2017-04-10 16:02 ` Michal Hocko 2017-04-18 8:23 ` Vlastimil Babka 2017-04-18 8:23 ` Vlastimil Babka 2017-04-10 16:09 ` Michal Hocko 2017-04-10 16:09 ` Michal Hocko 2017-04-11 6:38 ` Igor Mammedov 2017-04-11 6:38 ` Igor Mammedov 2017-04-11 9:23 ` Michal Hocko 2017-04-11 9:23 ` Michal Hocko 2017-04-11 9:59 ` Igor Mammedov 2017-04-11 9:59 ` Igor Mammedov 2017-04-11 11:01 ` Michal Hocko 2017-04-11 11:01 ` Michal Hocko 2017-04-11 11:38 ` Michal Hocko 2017-04-11 11:38 ` Michal Hocko 2017-04-11 12:38 ` Michal Hocko 2017-04-11 12:38 ` Michal Hocko 2017-04-10 15:43 ` Reza Arbab 2017-04-10 15:43 ` Reza Arbab 2017-04-11 8:59 ` Michal Hocko 2017-04-11 8:59 ` Michal Hocko 2017-04-10 16:35 ` Jerome Glisse 2017-04-10 16:35 ` Jerome Glisse 2017-04-10 17:53 ` Michal Hocko 2017-04-10 17:53 ` Michal Hocko 2017-04-11 2:51 ` Balbir Singh 2017-04-11 2:51 ` Balbir Singh 2017-04-11 17:03 ` Michal Hocko 2017-04-11 17:03 ` Michal Hocko 2017-04-17 21:51 ` Dan Williams 2017-04-17 21:51 ` Dan Williams 2017-04-18 7:14 ` Michal Hocko 2017-04-18 7:14 ` Michal Hocko 2017-04-18 16:42 ` Dan Williams 2017-04-18 16:42 ` Dan Williams 2017-04-18 19:54 ` Michal Hocko 2017-04-18 19:54 ` Michal Hocko 2017-04-20 3:37 ` Dan Williams 2017-04-20 3:37 ` Dan Williams 2017-04-15 12:17 ` Michal Hocko 2017-04-15 12:17 ` Michal Hocko 2017-04-15 12:17 ` [PATCH 1/3] mm: consider zone which is not fully populated to have holes Michal Hocko 2017-04-15 12:17 ` Michal Hocko 2017-04-18 8:45 ` Vlastimil Babka 2017-04-18 8:45 ` Vlastimil Babka 2017-04-18 9:27 ` Michal Hocko 2017-04-18 9:27 ` Michal Hocko 2017-04-19 11:59 ` Vlastimil Babka 2017-04-19 11:59 ` Vlastimil Babka 2017-04-19 12:16 ` Michal Hocko 2017-04-19 12:16 ` Michal Hocko 2017-04-19 12:34 ` Vlastimil Babka 2017-04-19 12:34 ` Vlastimil Babka 2017-04-19 12:50 ` Michal Hocko 2017-04-19 12:50 ` Michal Hocko 2017-04-15 12:17 ` [PATCH 2/3] mm, compaction: skip over holes in __reset_isolation_suitable Michal Hocko 2017-04-15 12:17 ` Michal Hocko 2017-04-15 12:17 ` [PATCH 3/3] mm: __first_valid_page skip over offline pages Michal Hocko 2017-04-15 12:17 ` Michal Hocko 2017-04-17 5:47 ` your mail Joonsoo Kim 2017-04-17 5:47 ` Joonsoo Kim 2017-04-17 8:15 ` Michal Hocko 2017-04-17 8:15 ` Michal Hocko 2017-04-20 1:27 ` Joonsoo Kim 2017-04-20 1:27 ` Joonsoo Kim 2017-04-20 7:28 ` Michal Hocko 2017-04-20 7:28 ` Michal Hocko 2017-04-20 8:49 ` Michal Hocko 2017-04-20 8:49 ` Michal Hocko 2017-04-20 11:56 ` Vlastimil Babka 2017-04-20 11:56 ` Vlastimil Babka 2017-04-20 12:13 ` Michal Hocko 2017-04-20 12:13 ` Michal Hocko 2017-04-21 2:46 ` [lkp-robot] 73821bb516: WARNING:at_mm/memblock.c:#memblock_virt_alloc_internal kernel test robot 2017-04-21 2:46 ` kernel test robot 2017-04-21 8:05 ` Michal Hocko 2017-04-21 8:05 ` Michal Hocko 2017-04-21 8:05 ` Michal Hocko 2017-04-21 4:38 ` your mail Joonsoo Kim 2017-04-21 4:38 ` Joonsoo Kim 2017-04-21 7:16 ` Michal Hocko 2017-04-21 7:16 ` Michal Hocko 2017-04-24 1:44 ` Joonsoo Kim 2017-04-24 1:44 ` Joonsoo Kim 2017-04-24 7:53 ` Michal Hocko 2017-04-24 7:53 ` Michal Hocko 2017-04-25 2:50 ` Joonsoo Kim 2017-04-25 2:50 ` Joonsoo Kim 2017-04-26 9:19 ` Michal Hocko 2017-04-26 9:19 ` Michal Hocko 2017-04-27 2:08 ` Joonsoo Kim 2017-04-27 2:08 ` Joonsoo Kim 2017-04-27 15:10 ` Michal Hocko 2017-04-27 15:10 ` Michal Hocko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170410110351.12215-1-mhocko@kernel.org \ --to=mhocko@kernel.org \ --cc=aarcange@redhat.com \ --cc=ak@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=arbab@linux.vnet.ibm.com \ --cc=dan.j.williams@gmail.com \ --cc=daniel.kiper@oracle.com \ --cc=heiko.carstens@de.ibm.com \ --cc=imammedo@redhat.com \ --cc=jglisse@redhat.com \ --cc=js1304@gmail.com \ --cc=laijs@cn.fujitsu.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mgorman@suse.de \ --cc=mhocko@suse.com \ --cc=qiuxishi@huawei.com \ --cc=rientjes@google.com \ --cc=schwidefsky@de.ibm.com \ --cc=slaoub@gmail.com \ --cc=tobias.regnery@gmail.com \ --cc=toshi.kani@hpe.com \ --cc=vbabka@suse.cz \ --cc=vkuznets@redhat.com \ --cc=yasu.isimatu@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.