From mboxrd@z Thu Jan 1 00:00:00 1970 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=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 65F28C433B4 for ; Mon, 19 Apr 2021 01:54:11 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D81436109F for ; Mon, 19 Apr 2021 01:54:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D81436109F 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 569F36B0036; Sun, 18 Apr 2021 21:54:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4CBA56B006E; Sun, 18 Apr 2021 21:54:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 31E456B0070; Sun, 18 Apr 2021 21:54:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0196.hostedemail.com [216.40.44.196]) by kanga.kvack.org (Postfix) with ESMTP id 10D6E6B0036 for ; Sun, 18 Apr 2021 21:54:10 -0400 (EDT) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id BE8F42816 for ; Mon, 19 Apr 2021 01:54:09 +0000 (UTC) X-FDA: 78047446218.15.DF6BCC3 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf12.hostedemail.com (Postfix) with ESMTP id ADB82D2 for ; Mon, 19 Apr 2021 01:54:01 +0000 (UTC) IronPort-SDR: OW/v3U0p2fsNgiDpYiw0sj7fnXIfFYtoAgZ5uOFJH2jV+mmonwf8G5KjsA8ym9UXCYAD7Mh0ze 6MSmt7txBX6Q== X-IronPort-AV: E=McAfee;i="6200,9189,9958"; a="175360649" X-IronPort-AV: E=Sophos;i="5.82,232,1613462400"; d="scan'208";a="175360649" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Apr 2021 18:54:05 -0700 IronPort-SDR: hoTCn/vzA05C4boFdlGAPO5290DZ1QWFyaG6qW/vyzCSd8GP1DCE5+YLM5Y+L0DzKJe8WfL/pU rUPd0pVnAF8A== X-IronPort-AV: E=Sophos;i="5.82,232,1613462400"; d="scan'208";a="426326638" Received: from yhuang6-desk1.sh.intel.com (HELO yhuang6-desk1.ccr.corp.intel.com) ([10.239.13.1]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Apr 2021 18:53:54 -0700 From: "Huang, Ying" To: Miaohe Lin Cc: , , , , , , , , , , , , Subject: Re: [PATCH v2 4/5] mm/swap: remove confusing checking for non_swap_entry() in swap_ra_info() References: <20210417094039.51711-1-linmiaohe@huawei.com> <20210417094039.51711-5-linmiaohe@huawei.com> Date: Mon, 19 Apr 2021 09:53:42 +0800 In-Reply-To: <20210417094039.51711-5-linmiaohe@huawei.com> (Miaohe Lin's message of "Sat, 17 Apr 2021 05:40:38 -0400") Message-ID: <87v98jkpjt.fsf@yhuang6-desk1.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: ADB82D2 X-Stat-Signature: zegeq8jihh7k8ywtaybjqf6nmnmf7xud Received-SPF: none (intel.com>: No applicable sender policy available) receiver=imf12; identity=mailfrom; envelope-from=""; helo=mga17.intel.com; client-ip=192.55.52.151 X-HE-DKIM-Result: none/none X-HE-Tag: 1618797241-861382 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: Miaohe Lin writes: > While we released the pte lock, somebody else might faulted in this pte. > So we should check whether it's swap pte first to guard against such race > or swp_type would be unexpected. But the swap_entry isn't used in this > function and we will have enough checking when we really operate the PTE > entries later. So checking for non_swap_entry() is not really needed here > and should be removed to avoid confusion. Please rephrase the change log to describe why we have the code and why it's unnecessary now. You can dig the git history via git-blame to find out it. The patch itself looks good to me. Best Regards, Huang, Ying > Signed-off-by: Miaohe Lin > --- > mm/swap_state.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/mm/swap_state.c b/mm/swap_state.c > index 272ea2108c9d..df5405384520 100644 > --- a/mm/swap_state.c > +++ b/mm/swap_state.c > @@ -721,7 +721,6 @@ static void swap_ra_info(struct vm_fault *vmf, > { > struct vm_area_struct *vma = vmf->vma; > unsigned long ra_val; > - swp_entry_t entry; > unsigned long faddr, pfn, fpfn; > unsigned long start, end; > pte_t *pte, *orig_pte; > @@ -739,11 +738,6 @@ static void swap_ra_info(struct vm_fault *vmf, > > faddr = vmf->address; > orig_pte = pte = pte_offset_map(vmf->pmd, faddr); > - entry = pte_to_swp_entry(*pte); > - if ((unlikely(non_swap_entry(entry)))) { > - pte_unmap(orig_pte); > - return; > - } > > fpfn = PFN_DOWN(faddr); > ra_val = GET_SWAP_RA_VAL(vma);