Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3313717pxv; Sun, 18 Jul 2021 18:39:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxXQnvWgSNpwJ+CJJAz4JoT2hwWeDFkQNp9vKmX+uJ8ljQ4mtBlWDtOAET6aQJf+GSHKx+j X-Received: by 2002:a92:1908:: with SMTP id 8mr15301164ilz.149.1626658774477; Sun, 18 Jul 2021 18:39:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626658774; cv=none; d=google.com; s=arc-20160816; b=ZdfGLNH2yP0JYzItGbGXtqzxJqSow6ZzhQYOsQsI4iYuI6X+21JlGywoB4UOi9b+4B CgtY+6BU30k5ZnAS8F/vkDDpVhaUTR9PwF0F2XIj6VuVMqRuSt/1kbK80Xt4POOGm860 hBtZgCU8uE3alaR973pfS7Go7J9N81jGOi8tfU9cBy9gV3hCs688TVVuXsW7hGvr3bIZ OEVrgeMlnuqpIkPyKe43yFDFnNKDb/s9K1jJRxoBUdD2nwe5j3jaz5/vLao1TKzuU8Jl LYPDcRXeh427ABBmLlJZtBi8hpPBPsWTuhCrV2nSLJanyCQATq9yfAohIkAkpQfP3EYz Zuqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=TXT/Z6fG8RtEC03zvUAMYV9Wr+VE/DfpYcRCwzYsuXY=; b=NzYWkSnKRMaQpslQlTq4jDpgO0agbpG2tYd/yQuI2LryshdphVsvfIZObd/VwzEdOm 1MYGMer8n2lVOfzdy7t76rfKS55XXu0/Q10hT2AISDh/ZA+gig6uHG00s69JVWwHi8J4 xHgEPDrFOEV5/X5O081Zf8W1Q2iPb26SCvpGCiRZoYunq+QNEKhkuw6IvRCiA5ySlglk 7yCKQct60bSuEO0dqX/UVN7s9QUbFe+YQNgXSPoPoO1YsCjQbqrLHDZEcctLFBDm7AxI iNpkOkPtJdtm7TaK62gIpBqwmZaUpLm0itj/N2LH7kSfXbarUPTZR/sfAIqXeLqFcdCn B0FA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g15si8028726iln.71.2021.07.18.18.39.23; Sun, 18 Jul 2021 18:39:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234044AbhGSBlv (ORCPT + 99 others); Sun, 18 Jul 2021 21:41:51 -0400 Received: from lgeamrelo12.lge.com ([156.147.23.52]:42146 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S233713AbhGSBlv (ORCPT ); Sun, 18 Jul 2021 21:41:51 -0400 X-Greylist: delayed 1799 seconds by postgrey-1.27 at vger.kernel.org; Sun, 18 Jul 2021 21:41:50 EDT Received: from unknown (HELO lgeamrelo02.lge.com) (156.147.1.126) by 156.147.23.52 with ESMTP; 19 Jul 2021 10:08:50 +0900 X-Original-SENDERIP: 156.147.1.126 X-Original-MAILFROM: chanho.min@lge.com Received: from unknown (HELO localhost.localdomain) (10.178.31.96) by 156.147.1.126 with ESMTP; 19 Jul 2021 10:08:50 +0900 X-Original-SENDERIP: 10.178.31.96 X-Original-MAILFROM: chanho.min@lge.com From: Chanho Min To: Andrew Morton , linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, "Kirill A . Shutemov" , Gunho Lee , Juneho Choi , Inkyu Hwang , Chanho Min Subject: [PATCH] mm: make falutaround selectable Date: Mon, 19 Jul 2021 10:08:45 +0900 Message-Id: <20210719010845.31898-1-chanho.min@lge.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While faultaround can have performance gains, on certain platform it increases pss and causes swap to occur more frequently. This patch allows to unselect faultaround on platforms that do not want this behavior. Signed-off-by: Chanho Min --- mm/Kconfig | 6 ++++++ mm/memory.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/mm/Kconfig b/mm/Kconfig index 39a6a977537d..8f834386e7f3 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -750,4 +750,10 @@ config ARCH_HAS_PTE_SPECIAL config ARCH_HAS_HUGEPD bool +config FAULT_AROUND + bool "Enable fault around" + default y + help + This option enables fault around. If say N, fault_around_bytes set to PAGE_SIZE + and disables fault around. endmenu diff --git a/mm/memory.c b/mm/memory.c index 10d2e4734e82..0bb037265dda 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3500,7 +3500,11 @@ vm_fault_t finish_fault(struct vm_fault *vmf) } static unsigned long fault_around_bytes __read_mostly = +#ifdef CONFIG_FAULT_AROUND rounddown_pow_of_two(65536); +#else + PAGE_SIZE; +#endif #ifdef CONFIG_DEBUG_FS static int fault_around_bytes_get(void *data, u64 *val) -- 2.17.1