From patchwork Thu Feb 23 08:31:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yin, Fengwei" X-Patchwork-Id: 13149970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DF0C1C61DA4 for ; Thu, 23 Feb 2023 08:30:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 29C366B0072; Thu, 23 Feb 2023 03:30:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 24C116B0073; Thu, 23 Feb 2023 03:30:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0ED626B0074; Thu, 23 Feb 2023 03:30:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id EF2D26B0072 for ; Thu, 23 Feb 2023 03:30:32 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A34224127B for ; Thu, 23 Feb 2023 08:30:32 +0000 (UTC) X-FDA: 80497885104.25.72389AF Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by imf10.hostedemail.com (Postfix) with ESMTP id 0403FC0014 for ; Thu, 23 Feb 2023 08:30:29 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=DMUXy5Or; spf=pass (imf10.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677141031; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=eK/5kq0sTAyGPL9mKoIC+MDCqGoIXKZUdoWZVz3oC6A=; b=7gkMvwePTQuaAZkk7s53gb1ghZAEabuXD5ZYZxI4suKiyzSv+nKXvvrCffhOgqSouonASF b5F7Qs2q8QuLtecS+4DRyEUsw5ozGVliYC7dXgNq7E6XbJejXLWRABWkkX3wSVbl919dOd gPHD6TPJpY2UVu2ixmtOitS0VW+0Qpc= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=DMUXy5Or; spf=pass (imf10.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677141031; a=rsa-sha256; cv=none; b=uGt4B75LEwUdK8m4nZOZS8i+M10ZvCTki7wbNNsrLlnXfcNzRoNe1z+V85B22QwVw24Pmb zSC7aoLJzXOPAOvsu3Y/6pFm5h5oAG7MxBCQg9ISiDYw5r6+LI1TL7YlE5dSCd1A+3vqxv u5WH8pUmGr+lyEOw+JdiW2DNytpvMKQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677141030; x=1708677030; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Bj5AD6ibu1hdskhWflxgCj++WABovKl2Ctn7JBAgmJo=; b=DMUXy5OrAqkQgAlOO3t0BTEV5iXDotgapgmp4sUn0QXICB2JEStknUJY AKjkKTKBqVrmHi90mp5Ol6aTzwucI15mUxJQc6rr8QqP2LmE8CnznyI3+ Fa5BNZqZ3FdaLLGqVVyaIkzXcphRxux2S0ScOiOTI4OfR6PL3CP4eU+tV 5XzMW/cCAmObFZUrpfBDFMPGf8iwpHfHNOqdmMFCsvcnJ5p9g5Lplo63e XT9q1BF50lmgS/niJvSFp10/kyTVfyUrJ1Y+RACD4aYr+UkzYQVHWnH+i 3tjMr5tqm7FTkgwl/uNA4SeWOJAR5EA1obyeIot/rtYRTY8z3WNVS9mL2 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10629"; a="321298451" X-IronPort-AV: E=Sophos;i="5.97,320,1669104000"; d="scan'208";a="321298451" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2023 00:30:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10629"; a="674437884" X-IronPort-AV: E=Sophos;i="5.97,320,1669104000"; d="scan'208";a="674437884" Received: from fyin-dev.sh.intel.com ([10.239.159.32]) by fmsmga007.fm.intel.com with ESMTP; 23 Feb 2023 00:30:25 -0800 From: Yin Fengwei To: linux-mm@kvack.org, akpm@linux-foundation.org, willy@infradead.org Cc: fengwei.yin@intel.com Subject: [PATCH 0/5] batched remove rmap in try_to_unmap_one() Date: Thu, 23 Feb 2023 16:31:55 +0800 Message-Id: <20230223083200.3149015-1-fengwei.yin@intel.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 0403FC0014 X-Stat-Signature: x6txbzadrgxui9wg8xrfkt55ueuf9coi X-HE-Tag: 1677141029-784058 X-HE-Meta: U2FsdGVkX18LmUpBM5WZYL22w3cIxd4vXElwG+AmnC7g8RyAhGV0iN5vK0Rfq27QOu3H6BzS3QjX11hQAF1wQacuoIlfubHS2+8ls6Z1g2skw09pV4pEPS/HK/fbj4rcfdvArxcmGatep3JEEGIEEVMNChuKTIwbaU51dvXxlJ8tsjE0YhkyFRWXfcqMKxD0RF0DBcViNwdDEDvjKUl1/MsMMn/GTkBk7XyXfG3Y1r8TGElngkHjSpJju7DIc/HruN9m7v/e0Q1eUnz9nHA8nzi0vlJs6FsuDGZpyNTuSgmFsgdG4NGdsN9bh7YTtp1Kd+DEBYMfN+Mun2PX3lgCOaf3zE8y1LF1VAef2Qz37EUGvd9HT/rBuanoIA0MB+xLc60AYMKBHQnmOsbD+w0iVzuUezTbsecqJpj77YiWW7r6ZrlZ/k0NATtgCQ5zpSyE6oDOgQuArBOoevNqIV7k1ocMzbkq5eQHDKzH/4B/l57yco5PD6oNtg+IbwBq/JMmTJtXUiJhLYUzwbi7Om31ORY8SFPFfxhIDqklrZrnIiEQCs5Hxv3e7wXATdCHfRoLMD+0fNmQ5O5Xs6YchT9u9selIPvuNsa3HgfPuZtm2vpOisLzgUTSGGeFaIh04kyhUpVHHA9VOdWDkPeE6gMQTXVYz1D9pnvNxCnye9OyAmcR/y8v6qxkExDwhLz5rpzUTDd45CPjK9i/cWIjFmW9qWNh/ivotPUGIcAez+klUzQldDCWr/DbngZbGFxc6aIYiPSxmOY77xUxPqy6x5ru9saMWVdEtbIIFQK1e8ui8RDRzgTNhmCYcFLEnDSTXNkiQaQdxwEwMPHtMu3Wk1t7JRINhBQj6TrH4cfzjBCz9VDFArtEo4SFOmrwS6cPXHSTjgL2tk9KuuSprp6P16HCw4kWL5z3CsTTLSMEXcLjJd+0IbD01o+SlKxYeu+aiMLWi1Mp+De9xzMSNFGDgQ1 PjMQGXDL ZM84zz0W8XSUM/9QC1ZwXUv3k92GRkAPBuqZlKH+MlScSsnLCdqdoW466cilnE+VsnWuUtuqsFSUK+K8UgfZUmGW4YE4rQo+2pD70xnd9Eyjl7H6ZW65Y52c+9NrqEUndUAkAdcfG2BbZfipQfTD9bOcbYRLsUm3dQxAlYTmrRyiY8T7rZIk6MeDkAiHruU79Ku0t 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: This series is trying to bring the batched rmap removing to try_to_unmap_one(). It's expected that the batched rmap removing bring performance gain than remove rmap per page. The changes are organized as: Patch1/2 move the hugetlb and normal page unmap to dedicated functions to make try_to_unmap_one() logic clearer and easy to add batched rmap removing. To make code review easier, no function change. Patch3 cleanup the try_to_unmap_one_page(). Try to removed some duplicated function calls. Patch4 adds folio_remove_rmap_range() which batched remove rmap. Patch5 make try_to_unmap_one() to batched remove rmap. Testing done with the series in a qemu guest with 4G mem + 512M zram: - kernel mm selftest to trigger vmscan() and final hit try_to_unmap_one(). - Inject hwpoison to hugetlb page to trigger try_to_unmap_one() call against hugetlb. - 24 hours stress testing: Firefox + kernel mm selftest + kernel build. This series is based on next-20230222. Yin Fengwei (5): rmap: move hugetlb try_to_unmap to dedicated function rmap: move page unmap operation to dedicated function rmap: cleanup exit path of try_to_unmap_one_page() rmap:addd folio_remove_rmap_range() try_to_unmap_one: batched remove rmap, update folio refcount include/linux/rmap.h | 5 + mm/page_vma_mapped.c | 30 +++ mm/rmap.c | 628 +++++++++++++++++++++++++------------------ 3 files changed, 403 insertions(+), 260 deletions(-)