Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751942AbeAPTbG (ORCPT + 1 other); Tue, 16 Jan 2018 14:31:06 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:58920 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751444AbeAPTbC (ORCPT ); Tue, 16 Jan 2018 14:31:02 -0500 From: Henry Willard To: akpm@linux-foundation.org Cc: mgorman@suse.de, kstewart@linuxfoundation.org, zi.yan@cs.rutgers.edu, pombredanne@nexb.com, aarcange@redhat.com, gregkh@linuxfoundation.org, aneesh.kumar@linux.vnet.ibm.com, kirill.shutemov@linux.intel.com, jglisse@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm: numa: Do not trap faults on shared data section pages. Date: Tue, 16 Jan 2018 11:28:44 -0800 Message-Id: <1516130924-3545-2-git-send-email-henry.willard@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1516130924-3545-1-git-send-email-henry.willard@oracle.com> References: <1516130924-3545-1-git-send-email-henry.willard@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8776 signatures=668653 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=682 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1801160268 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Workloads consisting of a large number processes running the same program with a large shared data section may suffer from excessive numa balancing page migration of the pages in the shared data section. This shows up as high I/O wait time and degraded performance on machines with higher socket or node counts. This patch skips shared copy-on-write pages in change_pte_range() for the numa balancing case. Signed-off-by: Henry Willard Reviewed-by: HÃ¥kon Bugge Reviewed-by: Steve Sistare steven.sistare@oracle.com --- mm/mprotect.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/mprotect.c b/mm/mprotect.c index ec39f730a0bf..fbbb3ab70818 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -84,6 +84,11 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd, if (!page || PageKsm(page)) continue; + /* Also skip shared copy-on-write pages */ + if (is_cow_mapping(vma->vm_flags) && + page_mapcount(page) != 1) + continue; + /* Avoid TLB flush if possible */ if (pte_protnone(oldpte)) continue; -- 1.8.3.1