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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CBE88C47077 for ; Wed, 10 Jan 2024 02:54:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 462186B0074; Tue, 9 Jan 2024 21:54:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4128C6B007E; Tue, 9 Jan 2024 21:54:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 28BC86B0080; Tue, 9 Jan 2024 21:54:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 135A66B0074 for ; Tue, 9 Jan 2024 21:54:04 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E0C48A1F89 for ; Wed, 10 Jan 2024 02:54:03 +0000 (UTC) X-FDA: 81661881966.13.0D970F5 Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) by imf19.hostedemail.com (Postfix) with ESMTP id 197C31A0006 for ; Wed, 10 Jan 2024 02:54:01 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gjcWRD8M; spf=pass (imf19.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.179 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704855242; a=rsa-sha256; cv=none; b=dAZyCmo5DWPEbD6wK5D23HXTUKL0EzPzO1q/puJcHppb3UG+kwrMcGJlMXMnNGU/vKQcnz S4fPuKF5U5tDMKYO7CjzrOWZ6SerVSQqV8lDNMWznxVHvLR4M1a9RsLlnH8GZWUDRE0c20 gpp1G8jFRBvQBDhlr9paO6OmURYGyK0= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gjcWRD8M; spf=pass (imf19.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.179 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=1704855242; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=oD7bzsVHDyZVaIw1WEtjfdf6X1QN0YaIlFCaqqO1VuM=; b=u9gOxIrOrhrN3QCr4PorfBB+cvlaR8aIv8NIPgibVbTRjP6ImkHFG6mN/+ianshgCh5y7v PILIuuINNEIs3KOeXmhT5aDDAXCEZQ5GwGYde1Pejim1DcD9gNBHwv5oNwyv2SegjU5Mkc s/jcoj5yKiv3i7rW+9890ozZ/pfqfxc= Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2ccea11b6bbso34324921fa.0 for ; Tue, 09 Jan 2024 18:54:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704855240; x=1705460040; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=oD7bzsVHDyZVaIw1WEtjfdf6X1QN0YaIlFCaqqO1VuM=; b=gjcWRD8M931ka5l5JynTudc5vViWShjNtmxy1XehSyfpsz0V2piM/r6nT39pozD23S hD3Umi1OG5HnzgUVd6CfibiGIayzFQhpijD11OLnO9D0Y7z0fRSfAuDW+IZnYhLptfdw 1pf2zrJcjK5KYIBBgkwekORnNKNHe91EWEM0IaksTUgA38khI9lxvcRkj0uUpfhC5x0z ojZyS1o3T1JMGuJIlDtbsgmLETMg5rjGcyDLWJBQ+eG9luBgNO3+uKif2MnRqriZElaQ h9k147ZmbmY0l9PiT+2HhEcS+ofnVwcgl3htEPpnzHkQlSITjFBuHJpLKrCw6ZGGovJb SOfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704855240; x=1705460040; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oD7bzsVHDyZVaIw1WEtjfdf6X1QN0YaIlFCaqqO1VuM=; b=S2tZVx2CUgYi/O5iXJk/wtDo6PIvkZZeXB9rUFHzD0yp0qMu1sr8dy8nH0dg3wND5u z97A6I1NiayC79pg60h96Ugo6cXhGF44uyH2h0lx5ajsyc/bNExCZ6btjcRgf6sbhOTp 8OJ9DFgkRKvJ9Yx0CG57TE4qdKSOyMOkvpDWzYJdD6vRWhMjGCZqR4n57PmoZRQSWIsc UFYO4r/3CJ/e4rvoscgmE8I7SKUzCsyr1Vkxc+SCWqZwgQIE7IZCLESPfr0CJI8DxXH9 f+Q1ATEY/bkt9IVhc+GSUDyyKDDXuNUrgQF5gplf46aN8L6gsvtNNK1CdIUirjAiulSk MG7g== X-Gm-Message-State: AOJu0Yx3EL3VYUCYSG5l0I3yE9VG0rCsDNbt51P9+9SAiWsv4LeRRavL Mg83jQk4VcjDEv+iJa0NFho7MZa8PD1qP40H3+k= X-Google-Smtp-Source: AGHT+IHQN4O+MHJ48DV2x61/acZugFlcfT7v1vm9DSTQ8kXrGy6Cxt3Ro+CwkAH+vOJyvBwx5pmwfXX0VubD6jIlWFU= X-Received: by 2002:a2e:a90a:0:b0:2cd:6ea2:bff9 with SMTP id j10-20020a2ea90a000000b002cd6ea2bff9mr1180838ljq.21.1704855239938; Tue, 09 Jan 2024 18:53:59 -0800 (PST) MIME-Version: 1.0 References: <20240102175338.62012-1-ryncsn@gmail.com> <20240102175338.62012-7-ryncsn@gmail.com> <87a5pg9qno.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: <87a5pg9qno.fsf@yhuang6-desk2.ccr.corp.intel.com> From: Kairui Song Date: Wed, 10 Jan 2024 10:53:42 +0800 Message-ID: Subject: Re: [PATCH v2 6/9] mm/swap: handle swapcache lookup in swapin_entry To: "Huang, Ying" Cc: linux-mm@kvack.org, Andrew Morton , Chris Li , Hugh Dickins , Johannes Weiner , Matthew Wilcox , Michal Hocko , Yosry Ahmed , David Hildenbrand , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 197C31A0006 X-Stat-Signature: pyd7tufcu7gtebwx7gipzzurtf9zw9rp X-Rspam-User: X-HE-Tag: 1704855241-72964 X-HE-Meta: U2FsdGVkX19sg301CFED5SowfLbsFtcWI52csil2IfGUaHk4Pc1I1RFxVxnlwCdLwsk91blYa4E1OpQQ+7yB+q5ZtWOsvUgwPrWhDRvWfqUuxJ0RZVq08qhBdY9UyFfkllQDUOx/XsFRXYRH+9SoPXpnOV2jFHvMFW1kka5yFTMDmgtl9fqeSJ28Zb/phUYUS9OylT/8oxWkc+XAqLwrC8uKCxKN7iPKJA0/DEu2yI6wPwsw8sltmzR7aVbNzy4L6OZ9uHcAUHSmMPiz+P36j7xoLVQhG0xCJ56gKFzDOl2cqIr04zUD11vj2QiT2Z2DH8U7I4JdFtjtx6s5v6EHEkESzDgZCF4XauoJj5gHZ/5HKxKSJtuucyHz/IGkCMUnQ3/BcqlRQaaj8CjT+ndjWqH1Oe6rzFMLmxKpN1UpTEH7QCxAUZnBgbEdE9ZwMDzH6+PUmRMgsSCXeDDHESeQBDafbmYw3muL3wT0NWHvPrl/Idnb4MQsMoDHEweVL9Tuo8Hte3cc64HAKxkZ2Mfw2GjT5r7+1HgcbW4ECEbHWoBB09jHt2pqe7NVQL+uAMrGlawCgUr4XdxQIJeDPoetba0ecp+mYJulsAcQZz2iIR90JRZj2G/uWKKX9oTKwh4Vi9N5Z8xdsdJWZaegpv1IOMujBR+kp4U538OrdTk6CpULJsru4u5rCd3pyZCOqiOiQ/UNN+WcE+Z3Z/N8xUSvzb6SpP41iTwERJvavySuDMVHDXSttOlSI2TZiXBsEd3SKEAKOxHhJWVpaMQsLHxEVDNoGe/2SCqw+UHGOeYWSil5ffjAcpjzHlc5enkoHwBFKVeZn4RB2595AAhjTDvvOJcMny6LwE6KmfUixKfrxgK95V4TRmEa8jf9FraGmju5Px7rroNawJocKAluLaQsdH4eSemJcMzLcMUnW9T5R8BsjctyqzP8yHSmXPgRVSr04OSA8Ltj0WIoiB/+wbb zqI9IM1X CovCDf6U8BtXdijgJPLe7qjtbyRXePdPWBuNBh1FJXN43xhhy5EdIuwf5NmUILnZOEurSxm9aedpARSiTyXSvNDrCTsLKbUj/SDxa6j5tgWq53H28fU0ewioIlIRM8LZa/XdGUkHVk4KIbBh+FtAdOSxFxtSSOEtmIZqZr9u5STYxeKmVQ3beU0C9Cony4j9fbhaghFfw3OZoEztqjtuUGdWesklp7Gc9Kg44RnDlkxbjR5Jm7fs9eWykJthr5S7OlPbEioidcAIB8WTST6p1D+KYLwgYXrf5zYLO+r6rsvlftOPzIRFMi17/gU0fgnnn7eJCkKAqMYTkm19a/ZtDI6gP/aKWhtirwNpyIYk1lqTAGfNDDuq3qCmdHu0fpbE29oD3UOEKiPUfx/SwdmZPRQGMi/nwVKYp8Z5XOkY2BZBxwjOBkundNRJqVE9AJgs9AiviatqADHijFejn9od1tIV6RA5BODVBucMBA4w1QzFmpZFo2LmwcWEoJUYOb0tpiCNiGeyTnnkum99HbYFkNWdyFw== 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: Huang, Ying =E4=BA=8E2024=E5=B9=B41=E6=9C=888=E6=97= =A5=E5=91=A8=E4=B8=80 16:28=E5=86=99=E9=81=93=EF=BC=9A > > Kairui Song writes: > > > From: Kairui Song > > > > Since all callers of swapin_entry need to check the swap cache first, w= e > > can merge this common routine into swapin_entry, so it can be shared an= d > > optimized later. > > > > Also introduce a enum to better represent possible swap cache usage, an= d > > add some comments about it, make the usage of swap cache easier to > > understand. > > I don't find any benefit to do this. The code line number isn't > reduced. The concept of swap cache isn't hided either. Hi Ying Thanks for the comments. Maybe I should squash this with the following commit? The following commit want to do cache lookup in swapin_entry to avoid a redundant shadow lookup, it can help to improve the performance by about 4% for swapin path. So it need to return a enum to represent cache status. Further more, note the comments added here: +/* + * Caller of swapin_entry may need to know the cache lookup result: + * + * SWAP_CACHE_HIT: cache hit, cached folio is retured. + * SWAP_CACHE_MISS: cache miss, folio is allocated, read from swap device + * and adde to swap cache, but still may return a cached + * folio if raced (check __read_swap_cache_async). + * SWAP_CACHE_BYPASS: cache miss, folio is new allocated and read + * from swap device bypassing the cache. + */ SWAP_CACHE_MISS might be inaccurate, this is not an issue introduced by this commit, but better exposed. May worth a fix later. So far I can see two benefits fixing it: - More accurate maj/min page fault count. - Note the PageHWPoison check in do_swap_page, it ignored the race case, if a page getting poisoned is raced with swapcache then it may not work as expected. These are all minor issue indeed, some other optimization might also be doable, but at least a comment might be helpful. > -- > Best Regards, > Huang, Ying >