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=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,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 D5728C2BB48 for ; Tue, 15 Dec 2020 03:06:04 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 70CB5224B1 for ; Tue, 15 Dec 2020 03:06:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 70CB5224B1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 0B52F6B0074; Mon, 14 Dec 2020 22:06:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 08DA76B0089; Mon, 14 Dec 2020 22:06:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE6766B008A; Mon, 14 Dec 2020 22:06:03 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0131.hostedemail.com [216.40.44.131]) by kanga.kvack.org (Postfix) with ESMTP id DAC6C6B0074 for ; Mon, 14 Dec 2020 22:06:03 -0500 (EST) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id AA8141F06 for ; Tue, 15 Dec 2020 03:06:03 +0000 (UTC) X-FDA: 77594027406.25.north31_3b07fdc27420 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin25.hostedemail.com (Postfix) with ESMTP id 8BBC01804E3CC for ; Tue, 15 Dec 2020 03:06:03 +0000 (UTC) X-HE-Tag: north31_3b07fdc27420 X-Filterd-Recvd-Size: 2230 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf20.hostedemail.com (Postfix) with ESMTP for ; Tue, 15 Dec 2020 03:06:03 +0000 (UTC) Date: Mon, 14 Dec 2020 19:06:01 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1608001562; bh=dH7BAY221BpnZ7KcjbAFIcErXJgPvKKPnTUPW57j1tE=; h=From:To:Subject:In-Reply-To:From; b=YkCycoahIii5FJnPpj6oUN/R+lL+5SCFscmZaItJq36Y9ozaxPwb2Sk8WzdhY/+Cn VRN95oLz6dzENxTMEXvAQ3ZbeqIBI87Qcvun9HleilGVtr1j0pYpgQRsuSvbojEW0t F0Uv5Wy5h1a8HoN67Gci1yKEo6hj2fzFcO+oUW28= From: Andrew Morton To: akpm@linux-foundation.org, hughd@google.com, linmiaohe@huawei.com, linux-mm@kvack.org, mm-commits@vger.kernel.org, torvalds@linux-foundation.org Subject: [patch 049/200] mm/swap_state: skip meaningless swap cache readahead when ra_info.win == 0 Message-ID: <20201215030601.YXwoWTcgy%akpm@linux-foundation.org> In-Reply-To: <20201214190237.a17b70ae14f129e2dca3d204@linux-foundation.org> User-Agent: s-nail v14.8.16 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: From: Miaohe Lin Subject: mm/swap_state: skip meaningless swap cache readahead when ra_info.win == 0 swap_ra_info() may leave ra_info untouched in non_swap_entry() case as page table lock is not held. In this case, we have ra_info.nr_pte == 0 and it is meaningless to continue with swap cache readahead. Skip such ops by init ra_info.win = 1. [akpm@linux-foundation.org: clean up struct init] Link: https://lkml.kernel.org/r/20201009133059.58407-1-linmiaohe@huawei.com Signed-off-by: Miaohe Lin Cc: Hugh Dickins Signed-off-by: Andrew Morton --- mm/swap_state.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/mm/swap_state.c~mm-swap_state-skip-meaningless-swap-cache-readahead-when-ra_infowin-==-0 +++ a/mm/swap_state.c @@ -839,7 +839,9 @@ static struct page *swap_vma_readahead(s swp_entry_t entry; unsigned int i; bool page_allocated; - struct vma_swap_readahead ra_info = {0,}; + struct vma_swap_readahead ra_info = { + .win = 1, + }; swap_ra_info(vmf, &ra_info); if (ra_info.win == 1) _