Here is reworked and resplitted patchset. patches agains current mmotm. I've merged fixes into first patch. It appyies clearly to v3.16, older kernels has a trivial conflict in mm/migrate.c. Reference counting during isolation and migration of ballooned pages reorganized and now looks similar to scheme used for normal pages (grab extra reference, isolate, migrate, putback/drop extra reference). Changes since v2: * PagePrivate used for fixing race between isolation and deflation * all fixes merged into first patch second patch contains only cleanup third patch adds new interfaces (vmstat, kpageflags) transhuge-stress: no changes except commit message bloat-o-meter (x86_64, defconfig + balloon-compaction): add/remove: 0/7 grow/shrink: 7/9 up/down: 134/-1045 (-911) function old new delta virtballoon_migratepage 322 357 +35 vmstat_text 824 848 +24 vm_event_states 496 520 +24 stable_page_flags 378 401 +23 balloon_page_enqueue 138 154 +16 balloon_page_migrate 162 168 +6 balloon_page_dequeue 287 293 +6 leak_balloon 254 246 -8 balloon_page_putback 205 193 -12 __ksymtab_balloon_mapping_alloc 16 - -16 __ksymtab_balloon_devinfo_alloc 16 - -16 virtballoon_remove 70 48 -22 __kstrtab_balloon_mapping_alloc 22 - -22 __kstrtab_balloon_devinfo_alloc 22 - -22 balloon_page_isolate 291 243 -48 virtballoon_probe 382 318 -64 balloon_devinfo_alloc 96 - -96 isolate_migratepages_block 1682 1578 -104 reclaim_clean_pages_from_list 435 330 -105 putback_movable_pages 312 207 -105 migrate_pages 1992 1875 -117 balloon_mapping_alloc 128 - -128 virtio_balloon_aops 160 - -160 even allnoconfig is smaller now: add/remove: 0/3 grow/shrink: 0/0 up/down: 0/-291 (-291) function old new delta balloon_devinfo_alloc 63 - -63 balloon_page_enqueue 82 - -82 balloon_page_dequeue 146 - -146 --- Konstantin Khlebnikov (4): mm/balloon_compaction: redesign ballooned pages management mm/balloon_compaction: remove balloon mapping and flag AS_BALLOON_MAP mm/balloon_compaction: add vmstat counters and kpageflags bit selftests/vm/transhuge-stress: stress test for memory compaction drivers/virtio/Kconfig | 1 drivers/virtio/virtio_balloon.c | 76 +++-------- fs/proc/page.c | 3 include/linux/balloon_compaction.h | 169 +++++++------------------ include/linux/migrate.h | 11 -- include/linux/mm.h | 19 +++ include/linux/pagemap.h | 18 --- include/linux/vm_event_item.h | 7 + include/uapi/linux/kernel-page-flags.h | 1 mm/Kconfig | 7 + mm/Makefile | 3 mm/balloon_compaction.c | 123 +++--------------- mm/compaction.c | 2 mm/migrate.c | 16 +- mm/vmstat.c | 12 ++ tools/testing/selftests/vm/Makefile | 1 tools/testing/selftests/vm/transhuge-stress.c | 144 +++++++++++++++++++++ tools/vm/page-types.c | 1 18 files changed, 288 insertions(+), 326 deletions(-) create mode 100644 tools/testing/selftests/vm/transhuge-stress.c -- Signature -- 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>