From patchwork Sun Nov 19 19:47:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kairui Song X-Patchwork-Id: 13460680 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40C27C54FB9 for ; Sun, 19 Nov 2023 19:49:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BE7656B03DD; Sun, 19 Nov 2023 14:49:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B6EAF6B03E8; Sun, 19 Nov 2023 14:49:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 99C366B03EA; Sun, 19 Nov 2023 14:49:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 835CC6B03DD for ; Sun, 19 Nov 2023 14:49:22 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 60657C0347 for ; Sun, 19 Nov 2023 19:49:22 +0000 (UTC) X-FDA: 81475742964.27.F756FFF Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) by imf17.hostedemail.com (Postfix) with ESMTP id 81FEE40015 for ; Sun, 19 Nov 2023 19:49:20 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OV7DYibq; spf=pass (imf17.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.167.170 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700423360; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ujyhaBmVKqUCILaG0//cQCFqqP/+VsPiP59qcIbNEbE=; b=FS22OOS5KOyPSneKbKnEylMtGXBv9nQXW3z/zs6fKkGhmiDFMXPUVmF2raIpPIXBJLd9UM vGZ8WynSUzz4MXytS4bB+ZBXpqpI7ITMiVP3ZARgX1QpRsY/mqboLDf/7KjCrCHBYQibSq WHYopN6LN7obD/Wb/uAhLF8x6CY2OwQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700423360; a=rsa-sha256; cv=none; b=ozJiE1SXXPjTwuSwGVpGnKnqaOEiq1Kk1W2rMZ1NbGF2ehx6MOT2aLUNUaVxZWdjGU73rg oe5uhKIr5VKJcge/w+A41HdzaloT2WrxyuaTh7MRblgj7bZvXCnSSNMM9a6HFvgGqOoBFB WH4B+Q9JlnXCLzKvPloHaO674HZATPM= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OV7DYibq; spf=pass (imf17.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.167.170 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3b2ec9a79bdso2778165b6e.3 for ; Sun, 19 Nov 2023 11:49:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700423359; x=1701028159; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=ujyhaBmVKqUCILaG0//cQCFqqP/+VsPiP59qcIbNEbE=; b=OV7DYibqsK13uyakyh7Y66eMAhMYMAwNwqCZIXX5+Z+GXMnHbh3+JwnBKJ4AmmbQ67 jAi9jxn9tCSkuC8WMWT6b9hpkgGD0BJo2TVYhv38By356T6EUXqpdG88gNuS3kllSUtm WYpdvx0/UDNI4yvuLGsDCeCkZNgOSxTgBu+YoddtqqaypiCP8mFaEqt5+9Zyx5L+CJYK FYvtAsnnJsPb4wcSgTEIqKMw1ZkrwR5lIjMqjxs+bgkXbltbnCYEJZn9eh8auMrrkZ7F bkSvtPXD0H4Gvb+jn+5IMVK71rwoQQuosFl629d6uyHtXv3mgA26ZK32pCGAEpFcBPr8 ObsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700423359; x=1701028159; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ujyhaBmVKqUCILaG0//cQCFqqP/+VsPiP59qcIbNEbE=; b=IJwJm63eoSIgDT94QAC8mdPv63MEmnYCozGMaUJCDHxnt3wunq5Ma/NtIiiXYOVTxW 25JzA6gL6+BYdZPcaGxyIdeBcIQwtUopmzl7vUnlu8bugwEa/hJ+AD8W3lwV3DP+iSa4 /r19OVnLfMqmSSDQIkoyxYVsC/x4JkU4vzuC459cDSAc0c0FomAmD5e0MbTeBmsG+WP3 Xo48hfCGoOWT1JkjiIM8jjfACqQ7Xowh0vQH4egD8EN2Kahm0jdwrk4RdQIesNzyPydn t05chEn1znoa4CC3jYbaM8qLpbaxyYzeZj1v0yZTNKE9tPcQjHuU9hdxjYFFt06yuyb0 4ECg== X-Gm-Message-State: AOJu0YxsbQ3XBvkd8tujGQsodDAF9kDY+aNdeXOk1LxzhNSTrG+k+WUs qdM638VXU62zHft3qX6cS3twdUh7/hy3bZJX X-Google-Smtp-Source: AGHT+IG9ZMvtFIPRmfdYGQxFIrUp0PVcy1icQvi67iQPNdmmyu8YtKZdvx7dJGBXf+Hyuvvv17Q3Eg== X-Received: by 2002:a05:6808:2389:b0:3b5:75d3:14aa with SMTP id bp9-20020a056808238900b003b575d314aamr9092741oib.25.1700423359201; Sun, 19 Nov 2023 11:49:19 -0800 (PST) Received: from KASONG-MB2.tencent.com ([115.171.40.79]) by smtp.gmail.com with ESMTPSA id a6-20020aa78646000000b006cb7feae74fsm1237140pfo.164.2023.11.19.11.49.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 19 Nov 2023 11:49:18 -0800 (PST) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , "Huang, Ying" , David Hildenbrand , Hugh Dickins , Johannes Weiner , Matthew Wilcox , Michal Hocko , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH 24/24] mm/swap: change swapin_readahead to swapin_page_fault Date: Mon, 20 Nov 2023 03:47:40 +0800 Message-ID: <20231119194740.94101-25-ryncsn@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231119194740.94101-1-ryncsn@gmail.com> References: <20231119194740.94101-1-ryncsn@gmail.com> Reply-To: Kairui Song MIME-Version: 1.0 X-Stat-Signature: hdjsxjs1em79w5fconyd7yzjpw736wtw X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 81FEE40015 X-Rspam-User: X-HE-Tag: 1700423360-94624 X-HE-Meta: U2FsdGVkX1/IT2AW41edbk8ALQGaBP9bGVM6Thy3vQW3V+oOMGFj229Z81qOzq8Tm2UxneMgLE+BLVL6v0fswbWvd2seqHqmeIbOxwXNLz21Ej+nbWCIKv3sxWcLaENqkGZSHIRrWTZhMrZ+am0HKQaeyTdYhHbR1wFE4I3HY6VUW1qe4e+uA9hmklmeA2v9pN/tzFzQBhcfv341/9vj3ITwxozBYPdZbgzZCnch4IAODDxIhMMLKp1NIe8cCv6Wa5TVfT8/WbYic7V9E51yH/AMRgAb2Pi37HaDCx87fFt4ZgzCUJ0jGg421gVMS3t75V1Ox6unoNgYQxwgcA00bjIbOG/viX5rkxkOsKl4xlXwBGgL2yvMbEwF18w6r03Tbjw/GcXzJaF3+TpsAiXuU75eaAo3/y31f2qa/LSXiyiFc1L1hwI6jp7tm2d8lz+VjXJPYOQKiAXDtuIPM1xrBe+uN8ioBgK8kfn+9zGRK5aCNoB53LeAJnnJlipBxVRSlDDBktPcqUkaYvbsvzWfvXzIKygBzES5P5IviRlEoT4DWHSpWviUo60zrQR/kA6UNjvTqrpcwyztPCy9Rwo8+JoSxq7YDHDgixtYjvw5/5gr3HtCvqgQHlASboawI25tWk/Vjer1d+Oy6zw7OC43seoYjLbxxNFmuy3ZhLknFKbWexbR7A2A93CCP8FqiITNueKQdV/eobdCA0hOq6G+aCn1nqzflyFoogRlmnE5tARkukVvLCzw++i0q5r1xT8FeY0+8MTILadAcMw9jqkXxjLyCnGtTTYhmgB70SFeHq48yZ984AaIsY4lRMeC5Fvb9ri+u8yL8UxDdqqXtCowfQAcAlePnTHxjqsa8OxsFL8kuLmlnW4ZP3Jdvv/4ZcdpM4454PJVOG5/P9bVHCVu0lhW+UVJo9FKYtcFh6oxWd15hzQu7e1mK0rCdrTWggczKTIRbN8c8s7H2Vw1N8W 7qAkP3Dz OBxLdt3qpE7MIarv4uXEcxdWMFBQbL6AMTOG8tlzctwMdC8rwabCO9zCHRYSdsleUtDFBj/kVUprTjOTgAkw8nHF6rkm2rZQF2hBQo56TYWi8+XoZGDXOfJ03rTAC7JXvR5aBSHVusmv7fricbEVeY4zyYYGaBZKy285wEFYCtaPVTMbyoLRZFk2+Nb8gQJ0W5VhyFZhDYL/S+DXJMKxrPkLlZnZ+S14r69urwNZrF1bHz/VZ8TqoqAsTWF6ZJrjqVk8Hacn6tE+C1DhPZRI2weIsxWsCj/30i1eugpOeGqPtbf9llAvbiasyix3GJD72naYAgjdw74FOtKlp0WkHHA8FUqe6ExZ6bPDZAGnYzy9Nj4QnsTmrKsCr5ryMCsRHZh6yq8rzOMTNMrHgJkokc6XfvOVV4j57341ag7sIpsUKLEvwdtCAa+YrCCYpjNQmQXFpojbhCBeS5u9PkEgh5Z5WZKc/YxxEo5akL3W1IZ4fcsJLKCFPHDdmVVmVe2YKiphQLE6NagsGymJl9sO7nfclskrb1h53lDVo61i4mX62+kYWPlD53yU09n4cnSlfOupRhCjZigwN80c= 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: List-Subscribe: List-Unsubscribe: From: Kairui Song Now swapin_readahead is only called from direct page fault path, so rename it and drop the gfp argument, since there is only one caller always using the same flag for userspace page fault. Signed-off-by: Kairui Song --- mm/memory.c | 4 ++-- mm/swap.h | 6 +++--- mm/swap_state.c | 15 +++++++++------ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 620fa87557fd..4907a5b1b75b 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3844,8 +3844,8 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) goto out; } - page = swapin_readahead(entry, GFP_HIGHUSER_MOVABLE, - vmf, &cache_result); + page = swapin_page_fault(entry, GFP_HIGHUSER_MOVABLE, + vmf, &cache_result); if (IS_ERR_OR_NULL(page)) { /* * Back out if somebody else faulted in this pte diff --git a/mm/swap.h b/mm/swap.h index 4374bf11ca41..2f8f8befff89 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -56,8 +56,8 @@ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, struct mempolicy *mpol, pgoff_t ilx, struct mm_struct *mm, bool *new_page_allocated); -struct page *swapin_readahead(swp_entry_t entry, gfp_t flag, - struct vm_fault *vmf, enum swap_cache_result *result); +struct page *swapin_page_fault(swp_entry_t entry, gfp_t flag, + struct vm_fault *vmf, enum swap_cache_result *result); struct page *swapin_page_non_fault(swp_entry_t entry, gfp_t gfp_mask, struct mempolicy *mpol, pgoff_t ilx, struct mm_struct *mm, @@ -91,7 +91,7 @@ static inline void show_swap_cache_info(void) { } -static inline struct page *swapin_readahead(swp_entry_t swp, gfp_t gfp_mask, +static inline struct page *swapin_page_fault(swp_entry_t swp, gfp_t gfp_mask, struct vm_fault *vmf, enum swap_cache_result *result) { return NULL; diff --git a/mm/swap_state.c b/mm/swap_state.c index 362a6f674b36..2f51d2e64e59 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -899,7 +899,7 @@ static struct page *swapin_no_readahead(swp_entry_t entry, gfp_t gfp_mask, } /** - * swapin_readahead - swap in pages in hope we need them soon + * swapin_page_fault - swap in a page from page fault context * @entry: swap entry of this memory * @gfp_mask: memory allocation flags * @vmf: fault information @@ -911,8 +911,8 @@ static struct page *swapin_no_readahead(swp_entry_t entry, gfp_t gfp_mask, * it will read ahead blocks by cluster-based(ie, physical disk based) * or vma-based(ie, virtual address based on faulty address) readahead. */ -struct page *swapin_readahead(swp_entry_t entry, gfp_t gfp_mask, - struct vm_fault *vmf, enum swap_cache_result *result) +struct page *swapin_page_fault(swp_entry_t entry, gfp_t gfp_mask, + struct vm_fault *vmf, enum swap_cache_result *result) { struct swap_info_struct *si; struct mempolicy *mpol; @@ -936,15 +936,18 @@ struct page *swapin_readahead(swp_entry_t entry, gfp_t gfp_mask, mpol = get_vma_policy(vmf->vma, vmf->address, 0, &ilx); if (swap_use_no_readahead(si, swp_offset(entry))) { *result = SWAP_CACHE_BYPASS; - page = swapin_no_readahead(entry, gfp_mask, mpol, ilx, vmf->vma->vm_mm); + page = swapin_no_readahead(entry, GFP_HIGHUSER_MOVABLE, + mpol, ilx, vmf->vma->vm_mm); if (shadow) workingset_refault(page_folio(page), shadow); } else { *result = SWAP_CACHE_MISS; if (swap_use_vma_readahead(si)) - page = swap_vma_readahead(entry, gfp_mask, mpol, ilx, vmf); + page = swap_vma_readahead(entry, GFP_HIGHUSER_MOVABLE, + mpol, ilx, vmf); else - page = swap_cluster_readahead(entry, gfp_mask, mpol, ilx); + page = swap_cluster_readahead(entry, GFP_HIGHUSER_MOVABLE, + mpol, ilx, vmf->vma->vm_mm); } mpol_cond_put(mpol); done: