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 C30EEC61D85 for ; Thu, 23 Nov 2023 10:52:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 48CAA6B066D; Thu, 23 Nov 2023 05:52:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 43D956B066E; Thu, 23 Nov 2023 05:52:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 305B96B066F; Thu, 23 Nov 2023 05:52:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1ED0F6B066D for ; Thu, 23 Nov 2023 05:52:28 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EE7EF120F44 for ; Thu, 23 Nov 2023 10:52:27 +0000 (UTC) X-FDA: 81488905134.10.6070AF2 Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) by imf07.hostedemail.com (Postfix) with ESMTP id 24E944000C for ; Thu, 23 Nov 2023 10:52:25 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ig7+ZFQg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.175 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700736746; 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=KlBw+J1DKtTqdlCO/c1cUzIzbtROUCDGWtDerK3Z8as=; b=XqeH8lytqk1rYc4eqEZxtletp9CQV4Pd5O463S4tU4eUA1n/zHeheRaeMewCve6x1Hw344 31+S+BUYnoe9f6j2lt59jRHqGKWUd4iJpMege7UYnT/hqgcJ0AlVLSxIWEKBxgXYyA5Tzq L3TW6K/Y2cEialEBPW2+MpBZ2LjXATs= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ig7+ZFQg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.175 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700736746; a=rsa-sha256; cv=none; b=VsaXInhby5gElqKlL0pMbXl/O7VK3YVtqPMN2Z8W8/sBT56Qjlw1nZ+cQ9RZq8ziz0/LNQ y+p3MfPhqON7q2rVzsCcYOgByRhPE5rTnu8fEqT6gdz+oghfHMHhZXgFvnUufkCd5es8Rr WG4pAvyDPzmu/WPmzE5hmEX5poJNQk8= Received: by mail-lj1-f175.google.com with SMTP id 38308e7fff4ca-2c878e228b4so9170081fa.1 for ; Thu, 23 Nov 2023 02:52:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700736744; x=1701341544; 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=KlBw+J1DKtTqdlCO/c1cUzIzbtROUCDGWtDerK3Z8as=; b=ig7+ZFQgRC6LYWEVOnKxCp/1Cit3zdhcrZmqRhCUXcqolu5qkfD8UYqzoKv6+RT4m/ kFvX62NwDE4lXc9cHnUWC0F88J5hbgF6sBytZRsVDWEo0hF70sx5f9I19aqSrUju7whZ 8jzeznjiIcopN6FvF+yJmAfeQCOr2sMpA4vGJ+KHy4c4DDuf2Wl/aSMeF+lJl89m9LL5 x4vA2iUOH33WfLnzol6BQp40ZPCdBS7tKcFabCV4jmQETDRlBQp0tPHYNMx7h41gLmIk ebN6JnHmMMGE+736m2SGmCHJbeQDkSfviKNuqF2S1ompyCXH/GfkOEZTcS1jKqJNQY+p OGqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700736744; x=1701341544; 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=KlBw+J1DKtTqdlCO/c1cUzIzbtROUCDGWtDerK3Z8as=; b=sNPmMwWSh9oImAIY1dapHjEZYbNDV47IocNQ+OcRuo4GOSwggVrk5TvlBJETv1Imu0 nlSdjNlk0JGsE8q9ZhqDROxeX18sG4C6OarF5XC4Ce6RdDhVGsHSes6ZrYCtutJYr6xY r1/lLufqQgTtl6VDyHWyhu7+fCxCZNlw0/+9sV0hqeXEdBsC/3l622rh1ITDaOXOMwlW RzGQbekPJnMRWCeZuBYfFFjJIchhYQ5vMDH585EavlHJyCjUY8VsD5nP3kHRwpAmYPAM q2agyghzhAis4HsqflZWuB0TZmGgkiLhylelkGSIS534rhEfjMpbStHV9RZCnJTQZHbF 78pw== X-Gm-Message-State: AOJu0Yx/WhOlHJ7wmgKU7wuof6EcsuQvlF0nGtdMXESIeRWd6AgtMbuD Uv7eGaOWtyF7U+J44zKpHiSgjCH6dlxvzx1EiKU= X-Google-Smtp-Source: AGHT+IFy+GdLH/BGXHcIl+Z3rWxvxH/CWpgB+pDVDbYP2pF0svbwAz0jWWBpfdzxDgZJSsjzgjCwsYAer7r8hl601rI= X-Received: by 2002:a2e:9b0f:0:b0:2c5:1ad3:7798 with SMTP id u15-20020a2e9b0f000000b002c51ad37798mr3042949lji.52.1700736744207; Thu, 23 Nov 2023 02:52:24 -0800 (PST) MIME-Version: 1.0 References: <20231119194740.94101-1-ryncsn@gmail.com> <20231119194740.94101-9-ryncsn@gmail.com> In-Reply-To: From: Kairui Song Date: Thu, 23 Nov 2023 18:52:06 +0800 Message-ID: Subject: Re: [PATCH 08/24] mm/swap: check readahead policy per entry To: Chris Li Cc: linux-mm@kvack.org, Andrew Morton , "Huang, Ying" , David Hildenbrand , Hugh Dickins , Johannes Weiner , Matthew Wilcox , Michal Hocko , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: dymxtgygpmi3bzmsk9r7cebbicxpc78h X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 24E944000C X-HE-Tag: 1700736745-965553 X-HE-Meta: U2FsdGVkX1/mNl1OW2WTgmMSsGiA9bi5vf26jMH06YA/jzK1GrvNYo1cxPAh3KskP1e59V/VZoyq4chYHdFfi6gX1MyPLN0IhBe9SLudcbYcpZ9ZHAqFhQrfCgx6x6diANwhlqZAotc6HHMcWKLEVSBGuwXNyrc/RjzVUE0KhJ3312nYM/CeiYUqQ0oxQ82vo2MK/HuxdQ6ZT1JsKYr4tU+j4KarF2iIY+6wtAjMuqbIF8TjXcMSAWHja+p7Egy5aCRs+9L0HI2NN9d8QlJgpLDWa0mY+CqjE0RpmKYaYvTHDLlvXC+w5rcmGctBXvBF1aWnAiXbm8IKGZ4oJsHV6PD+goUKfGfPqIPujWoVFr1cttUpr7fDzMfMPisfW43212qRPtiVxaaRpKazMUR2MeQpHG3FF5qAHWE+0OGrem69ZXrj2D0veGKm2wHiN/ZPyl/IgOj8QJEEq7RzRAwcfEZlMkQYT1JxLyCpi75VbTOXavj2y0crilN+95txJ/Urs9CQbvkpTmpnixG4KuW0CqijkOgUpY3f4TcH89H90+LGZC1IDQHiKBUHm/j3y9BDsy5pfAGwxR3lymNJvUn1zh+6AxBMbUkYD5OtP8/fF6AZpljoFoejjq6FADtKjHx04+IYnTGMxymiAu2XDuPj30m7jAMuRX3PgpNPh/TDrjMTkng0i6X/AscHYW9nyUvJ91JovvN1H+XJfaYensYB9owBOMuQBZzGrdaUDvF5FFPhN8qMwxlRRFz6BJ+3A5YGilkssjE55wfIjAosMPwcz2u0PDrekRAxRx3U9kp7zhCueg1hHD31LMsYDChLt1DdXH+G7WaJx5FZO08ObCLF4vBWHFDmbUn/tzFUr5yCGC5lHrI3nfMEZcayuwq3H7iPOz6ovY4JzzaBhoZ8V3yragPiHs6Ecq8lk6m0n8OQYk7EmyUSEJkgq8FXUJVNjxY7FzhL/n9e19jnJ0gvL7E DVqOgQ9e +xIMTqLSxOxdjYN8cCLgZDfzbiVWPYUpl2N8Z7h3KSjfO4fySUMxSyQe48EL8cV9XmohfAfDJ2vkK9p0hxmIKL3yo7DAjKCgUe1Zpz+H4ieFDiqljrVKusEUdiCCxFfvv6255qN0f3zdq/OornpC83qXH/xS5fNrm7MXaAETJdZ1EDepi0Dt1ElU132NxDOthqP7RtvcN4mf7RPRzCwpg6WrXhMGxQ3eAFIW1q1t+b57NlN4vefJOLEYSCAJN5qJ5jQxZ5zheKQ1JM4EzOYiG696am5mrP6DDUPjbJGJ+QxwGlqNlEuoLvAFqp8m4TQ5fLRMzaulw4g7xHr9SBQVTauITrHR0VrJ4T2aQZMhMnaKXnNdOE+bo7cABc4CRghtt/avlTAu8XjtnpyiEjsjHqb2/5JacEJFa+Mn8hTpKC0qI+r6XT7fzJYE3yrqMsu50Rzvcxm8dtIEwqLFTnQkttMGaWXvy+jGIH5/8JY9ze8aPMJii8IAoMW/aqQ== 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: Chris Li =E4=BA=8E2023=E5=B9=B411=E6=9C=8821=E6=97=A5= =E5=91=A8=E4=BA=8C 15:54=E5=86=99=E9=81=93=EF=BC=9A > > On Sun, Nov 19, 2023 at 11:48=E2=80=AFAM Kairui Song w= rote: > > > > From: Kairui Song > > > > Currently VMA readahead is globally disabled when any rotate disk is > > used as swap backend. So multiple swap devices are enabled, if a slower > > hard disk is set as a low priority fallback, and a high performance SSD > > is used and high priority swap device, vma readahead is disabled global= ly. > > The SSD swap device performance will drop by a lot. > > > > Check readahead policy per entry to avoid such problem. > > > > Signed-off-by: Kairui Song > > --- > > mm/swap_state.c | 12 +++++++----- > > 1 file changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/mm/swap_state.c b/mm/swap_state.c > > index ff6756f2e8e4..fb78f7f18ed7 100644 > > --- a/mm/swap_state.c > > +++ b/mm/swap_state.c > > @@ -321,9 +321,9 @@ static inline bool swap_use_no_readahead(struct swa= p_info_struct *si, swp_entry_ > > return data_race(si->flags & SWP_SYNCHRONOUS_IO) && __swap_coun= t(entry) =3D=3D 1; > > } > > > > -static inline bool swap_use_vma_readahead(void) > > +static inline bool swap_use_vma_readahead(struct swap_info_struct *si) > > { > > - return READ_ONCE(enable_vma_readahead) && !atomic_read(&nr_rota= te_swap); > > + return data_race(si->flags & SWP_SOLIDSTATE) && READ_ONCE(enabl= e_vma_readahead); > > A very minor point: > I notice you change the order enable_vma_readahead to the last. > Normally if enable_vma_reachahead =3D=3D 0, there is no need to check the= si->flags. > The si->flags check is more expensive than simple memory load. > You might want to check enable_vma_readahead first then you can short > cut the more expensive part. Thanks, I'll improve this part.