From patchwork Mon May 31 14:05:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Feng Tang X-Patchwork-Id: 12289519 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDE6DC47083 for ; Mon, 31 May 2021 14:06:10 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3A626613FE for ; Mon, 31 May 2021 14:06:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3A626613FE Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 0CE3B8D0001; Mon, 31 May 2021 10:06:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 021816B0070; Mon, 31 May 2021 10:06:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E03216B0071; Mon, 31 May 2021 10:06:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0112.hostedemail.com [216.40.44.112]) by kanga.kvack.org (Postfix) with ESMTP id 9F1C16B006C for ; Mon, 31 May 2021 10:06:08 -0400 (EDT) Received: from smtpin19.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 446D41804460A for ; Mon, 31 May 2021 14:06:08 +0000 (UTC) X-FDA: 78201700416.19.2B29271 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf19.hostedemail.com (Postfix) with ESMTP id EB6D99001E5E for ; Mon, 31 May 2021 14:05:53 +0000 (UTC) IronPort-SDR: BSI7SRr5XWJYP3yD1p/VFuR8BhsNdF95aSGDYd572ctwCQVC1eq3IArMSBV71cPzgO3OvKsXUk NRdKxvKlH3+A== X-IronPort-AV: E=McAfee;i="6200,9189,10001"; a="190725942" X-IronPort-AV: E=Sophos;i="5.83,237,1616482800"; d="scan'208";a="190725942" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2021 07:06:01 -0700 IronPort-SDR: NHUREmHJrH1ocE5RXQrL2Rv7u4eFVGV8V9nk2J1ugzOH7vNlGCDxyUpZk81C3Cd559puFiFxIz crfec8bgX0Zw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,237,1616482800"; d="scan'208";a="444991513" Received: from shbuild999.sh.intel.com ([10.239.147.94]) by orsmga008.jf.intel.com with ESMTP; 31 May 2021 07:05:57 -0700 From: Feng Tang To: linux-mm@kvack.org, Andrew Morton , Michal Hocko , David Rientjes , Dave Hansen , Ben Widawsky Cc: linux-kernel@vger.kernel.org, Andrea Arcangeli , Mel Gorman , Mike Kravetz , Randy Dunlap , Vlastimil Babka , Andi Kleen , Dan Williams , ying.huang@intel.com, Feng Tang Subject: [v3 PATCH 0/3] mm/mempolicy: some fix and semantics cleanup Date: Mon, 31 May 2021 22:05:53 +0800 Message-Id: <1622469956-82897-1-git-send-email-feng.tang@intel.com> X-Mailer: git-send-email 2.7.4 Authentication-Results: imf19.hostedemail.com; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=intel.com (policy=none); spf=none (imf19.hostedemail.com: domain of feng.tang@intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=feng.tang@intel.com X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: EB6D99001E5E X-Stat-Signature: u9sz3f3x9t1zrsf6ud9de3dt8cfnaqta X-HE-Tag: 1622469953-538259 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi All, We've posted v4 patchset introducing a new "perfer-many" memory policy https://lore.kernel.org/lkml/1615952410-36895-1-git-send-email-feng.tang@intel.com/ , for which Michal Hocko gave many comments while pointing out some problems, and we also found some semantics confusion about 'prefer' and 'local' policy, as well as some duplicated code. This patchset tries to address them. Please help to review, thanks! The patchset has been run with some sanity test like 'stress-ng' and 'ltp', and no problem found. Thanks, Feng Changelogs: v3: * fix logic of mpol_rebind_preferred() (Michal Hocko) v2: * rename mempolicy_nodemask_intersects() to mempolicy_in_oom_domain() and correct commit log (Michal Hocko) * change the mpol syscall param sanity check (Michal Hocko) * combine the 3/4 and 4/4 in v1 into one patch, and further clean the logic (Michal Hocko) v1: * use helper func instead of macro for patch 2/4 (David Rientjes) * fix a possible null pointer case in patch 3/4 * update commit log for 1/4 RFC v2: * add for oom check fix patch 1/4 * add the unification patch for mpol preprocess 2/4 Feng Tang (3): mm/mempolicy: cleanup nodemask intersection check for oom mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy mm/mempolicy: unify the parameter sanity check for mbind and set_mempolicy include/linux/mempolicy.h | 2 +- include/uapi/linux/mempolicy.h | 1 - mm/mempolicy.c | 212 ++++++++++++++++++----------------------- mm/oom_kill.c | 2 +- 4 files changed, 95 insertions(+), 122 deletions(-)