>> numa_node_id() is really silly. This might lead to allocate from offlining node. > > Right, it should've been alloc_huge_page(). > >> and, offline_pages() should mark hstate as isolated likes normal pages for prohibiting >> new allocation at first. > > It seems that alloc_migrate_target() calls alloc_page() for normal pages > and the destination pages can be in the same node with the source pages > (new page allocation from the same memblock are prohibited.) No. It can't. memory hotplug change buddy attribute to MIGRATE_ISOLTE at first. then alloc_page() never allocate from source node. however huge page don't use buddy. then we need another trick. > So if we want to avoid new page allocation from the same node, > this is the problem both for normal and huge pages. > > BTW, is it correct to think that all users of memory hotplug assume > that they want to hotplug a whole node (not the part of it?) Both are valid use case. admin can isolate a part of memory for isolating broken memory range. but I'm sure almost user want to remove whole node. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>