Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752221AbcKGXif (ORCPT ); Mon, 7 Nov 2016 18:38:35 -0500 Received: from mail-pf0-f176.google.com ([209.85.192.176]:35909 "EHLO mail-pf0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751549AbcKGXie (ORCPT ); Mon, 7 Nov 2016 18:38:34 -0500 From: Naoya Horiguchi To: linux-mm@kvack.org Cc: "Kirill A. Shutemov" , Hugh Dickins , Andrew Morton , Dave Hansen , Andrea Arcangeli , Mel Gorman , Michal Hocko , Vlastimil Babka , Pavel Emelyanov , Zi Yan , Balbir Singh , linux-kernel@vger.kernel.org, Naoya Horiguchi , Naoya Horiguchi Subject: [PATCH v2 00/12] mm: page migration enhancement for thp Date: Tue, 8 Nov 2016 08:31:45 +0900 Message-Id: <1478561517-4317-1-git-send-email-n-horiguchi@ah.jp.nec.com> X-Mailer: git-send-email 2.7.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1795 Lines: 50 Hi everyone, I've updated thp migration patches for v4.9-rc2-mmotm-2016-10-27-18-27 with feedbacks for ver.1. General description (no change since ver.1) =========================================== This patchset enhances page migration functionality to handle thp migration for various page migration's callers: - mbind(2) - move_pages(2) - migrate_pages(2) - cgroup/cpuset migration - memory hotremove - soft offline The main benefit is that we can avoid unnecessary thp splits, which helps us avoid performance decrease when your applications handles NUMA optimization on their own. The implementation is similar to that of normal page migration, the key point is that we modify a pmd to a pmd migration entry in swap-entry like format. Changes / Notes =============== - pmd_present() in x86 checks _PAGE_PRESENT, _PAGE_PROTNONE and _PAGE_PSE bits together, which makes implementing thp migration a bit hard because _PAGE_PSE bit is currently used by soft-dirty in swap-entry format. I was advised to dropping _PAGE_PSE in pmd_present(), but I don't think of the justification, so I keep it in this version. Instead, my approach is to move _PAGE_SWP_SOFT_DIRTY to bit 6 (unused) and reserve bit 7 for pmd non-present cases. - this patchset still covers only x86_64. Zi Yan posted a patch for ppc64 and I think it's favorably received so that's fine. But there's unsolved minor suggestion by Aneesh, so I don't include it in this set, expecting that it will be updated/reposted. - pte-mapped thp and doubly-mapped thp were not supported in ver.1, but this version should work for such kinds of thp. - thp page cache is not tested yet, and it's at the head of my todo list for future version. Any comments or advices are welcomed. Thanks, Naoya Horiguchi