From patchwork Mon May 21 19:38:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Song Liu X-Patchwork-Id: 10416233 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 22F11600CC for ; Mon, 21 May 2018 19:39:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1257E289F9 for ; Mon, 21 May 2018 19:39:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 06CF6289FD; Mon, 21 May 2018 19:39:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 70189289F9 for ; Mon, 21 May 2018 19:39:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D20556B0003; Mon, 21 May 2018 15:39:14 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CCF886B0005; Mon, 21 May 2018 15:39:14 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B957B6B0006; Mon, 21 May 2018 15:39:14 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr0-f200.google.com (mail-wr0-f200.google.com [209.85.128.200]) by kanga.kvack.org (Postfix) with ESMTP id 5DCE06B0003 for ; Mon, 21 May 2018 15:39:14 -0400 (EDT) Received: by mail-wr0-f200.google.com with SMTP id q67-v6so11895370wrb.12 for ; Mon, 21 May 2018 12:39:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:smtp-origin-hostprefix:from :smtp-origin-hostname:to:cc:smtp-origin-cluster:subject:date :message-id:mime-version; bh=8tNAKBMO3qo+n0EEWOTltV1lONFbeLSHu+EX5jWK3As=; b=blx4AUiTFEBJMSQUFrti3kaxMYy/9ZiM1OCmUcZ1R9Az0OMoN8MF54NTU3kcNMyKtP j50Ok/x7ZiwBzsyEZwFRd9Mi3gP1T0JpwVx90US0UODbIYnsLmJ5gobJWbj2+Bba0pBu dIgTFKf/XpaG9Zl6p108YexgGltia0/71zwBWc4+I3DtzjOikYzhUUjWfysjH8V4Eiug M9DLMwGLeaMf6i1BypPAspAUObMZQaoMsiC5GLeWqsf2V3hJETUqmKPaKp5oB37OALl8 mfRuYYvMUyp+HZcA+YF98oI5QSZl7rUXJjGFGm6cyPehJfReFxGj55gIbh2wZBj6fTGL +LOw== X-Gm-Message-State: ALKqPwdfG0m5b92zd6NcG/b1x9lWCZ2r+Dlo8Ue34wVdtsA1qKGv4xaL rkPJDxpaymNcwOQpz2phj3GWRjaStV2IxK6dtqYEOhOYHFJCFmj1O/uyUD2tPZpBnqcpSZJmA6+ f0aDhQEPeuc2PHIOsCijtpLCnd538uTC9cVA44w7ngfuVaoE2zQD2Lw1sqvmITUt6zQ== X-Received: by 2002:a50:caca:: with SMTP id f10-v6mr25539354edi.89.1526931553670; Mon, 21 May 2018 12:39:13 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpmIEDjAU7GKxCD1wXgCy+KBTvElLXfsyWJMUpOkoiVgQYLHcLOg+4AdInmBxMBB9NQ88pL X-Received: by 2002:a50:caca:: with SMTP id f10-v6mr25539305edi.89.1526931552712; Mon, 21 May 2018 12:39:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526931552; cv=none; d=google.com; s=arc-20160816; b=EgwlYjtVE3n8nt/zfTdX3OTj+y988A1mt4nZUCgI5ng8NMCYFfPb6RsU5OMHLs3tZ+ h7l1MNdTDdvzk1+egItQTD2UFi23/GZd38uOrcNpNXFQTHHY7rO5cZPvoZLyWoCSWKh3 wpPENfnhwnQFH6DBZTY3/OjN6BPn7odR7Za7SQAY3St4nVEUhzzI3/yEY0/mCtUzV9EC rJZy5HawxShjVw3NRN9y+nbJTvwPGnM/KHPIF7Xa1qynwWl9hGlC81RzeLN6QIGu14wD lAdTZB1tHKQcZBUI4+YEFuUnS1QFfRR/8pBYf5L08naxn4hi8oHK0jvbsv4rAMozheM1 NFNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:message-id:date:subject:smtp-origin-cluster:cc:to :smtp-origin-hostname:from:smtp-origin-hostprefix:dkim-signature :arc-authentication-results; bh=8tNAKBMO3qo+n0EEWOTltV1lONFbeLSHu+EX5jWK3As=; b=nvcE3WnzbPk+ZPvnU5NOh561ZXzIynswvYb2yy9I5D8YX5duqSqwW+aMrNSE7C9hFP QaSXfYEtWm9KBNUWLIOO3H2QNTJEkBtwyFFQnbzYMHwwz1j9knfVhHRdKZM32fsTCU9B 1sA+JmDRps7cmfdqs6USb4Z/+H5h2guCtpPOvcrsoTkmKgnZebn6ayM3cHtMDqJINpBt IM4zbVsTIj8QjEPEPULjhO1xiF+JzxMXVekJRJjk5fxVbJ4iQzMQgc/ugbEpq+MD1o4X Zvt1KbKi1xdzvLhO5Pt12JH3E4FPYUjodHUMqQNeJc73O+RTcqJe4ItTFZonO7wmwUiu UOFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=hVKweXMM; spf=pass (google.com: domain of prvs=867919e62d=songliubraving@fb.com designates 67.231.145.42 as permitted sender) smtp.mailfrom=prvs=867919e62d=songliubraving@fb.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=fb.com Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com. [67.231.145.42]) by mx.google.com with ESMTPS id c10-v6si1013230edq.130.2018.05.21.12.39.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 May 2018 12:39:12 -0700 (PDT) Received-SPF: pass (google.com: domain of prvs=867919e62d=songliubraving@fb.com designates 67.231.145.42 as permitted sender) client-ip=67.231.145.42; Authentication-Results: mx.google.com; dkim=pass header.i=@fb.com header.s=facebook header.b=hVKweXMM; spf=pass (google.com: domain of prvs=867919e62d=songliubraving@fb.com designates 67.231.145.42 as permitted sender) smtp.mailfrom=prvs=867919e62d=songliubraving@fb.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=fb.com Received: from pps.filterd (m0148461.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w4LJbOaR001491 for ; Mon, 21 May 2018 12:39:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=facebook; bh=8tNAKBMO3qo+n0EEWOTltV1lONFbeLSHu+EX5jWK3As=; b=hVKweXMMkxcaybzKpZMjK5zBwxAYuvuAQaIPSRY7e3DJUYCUUMxHzOpYIMrMiPMFih2z YESlSLzrHEIs4AEyZKy79UFKU0LvRiCaXy/7G3xhjWi0Z5FTTudHnPsFckHzudZgIspy 7XctYvgr30S9StMxBOC/eiYGMtfM3U/9Nbc= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2j434w081q-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Mon, 21 May 2018 12:39:10 -0700 Received: from mx-out.facebook.com (192.168.52.123) by PRN-CHUB04.TheFacebook.com (192.168.16.14) with Microsoft SMTP Server id 14.3.361.1; Mon, 21 May 2018 12:39:09 -0700 Received: by devbig006.ftw2.facebook.com (Postfix, from userid 4523) id 7583D62E10F1; Mon, 21 May 2018 12:39:02 -0700 (PDT) Smtp-Origin-Hostprefix: devbig From: Song Liu Smtp-Origin-Hostname: devbig006.ftw2.facebook.com To: CC: , Song Liu , Smtp-Origin-Cluster: ftw2c04 Subject: [PATCH] mm/THP: use hugepage_vma_check() in khugepaged_enter_vma_merge() Date: Mon, 21 May 2018 12:38:53 -0700 Message-ID: <20180521193853.3089484-1-songliubraving@fb.com> X-Mailer: git-send-email 2.9.5 X-FB-Internal: Safe MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-05-21_08:, , signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe 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: X-Virus-Scanned: ClamAV using ClamSMTP khugepaged_enter_vma_merge() is using a different approach to check whether a vma is valid for khugepaged_enter(): if (!vma->anon_vma) /* * Not yet faulted in so we will register later in the * page fault if needed. */ return 0; if (vma->vm_ops || (vm_flags & VM_NO_KHUGEPAGED)) /* khugepaged not yet working on file or special mappings */ return 0; This check has some problems. One of the obvious problems is that it doesn't check shmem_file(), so that vma backed with shmem files will not call khugepaged_enter(). This patch fixes these problems by reusing hugepage_vma_check() in khugepaged_enter_vma_merge(). Signed-off-by: Song Liu Reviewed-by: Rik van Riel Acked-by: David Rientjes --- mm/khugepaged.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index d7b2a4b..e50c2bd 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -430,18 +430,14 @@ int __khugepaged_enter(struct mm_struct *mm) return 0; } +static bool hugepage_vma_check(struct vm_area_struct *vma); + int khugepaged_enter_vma_merge(struct vm_area_struct *vma, unsigned long vm_flags) { unsigned long hstart, hend; - if (!vma->anon_vma) - /* - * Not yet faulted in so we will register later in the - * page fault if needed. - */ - return 0; - if (vma->vm_ops || (vm_flags & VM_NO_KHUGEPAGED)) - /* khugepaged not yet working on file or special mappings */ + + if (!hugepage_vma_check(vma)) return 0; hstart = (vma->vm_start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK; hend = vma->vm_end & HPAGE_PMD_MASK;