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 B2344CE7AFD for ; Fri, 6 Sep 2024 10:22:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE9406B0085; Fri, 6 Sep 2024 06:22:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E98416B0088; Fri, 6 Sep 2024 06:22:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D5FC76B0089; Fri, 6 Sep 2024 06:22:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id BA3DC6B0085 for ; Fri, 6 Sep 2024 06:22:57 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 546448130B for ; Fri, 6 Sep 2024 10:22:57 +0000 (UTC) X-FDA: 82533925194.25.0FFF84B Received: from mail-vk1-f177.google.com (mail-vk1-f177.google.com [209.85.221.177]) by imf02.hostedemail.com (Postfix) with ESMTP id 8B5F580007 for ; Fri, 6 Sep 2024 10:22:55 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aw30f6AF; spf=pass (imf02.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.177 as permitted sender) smtp.mailfrom=21cnbao@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=1725618077; 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=SI4tsZiuC/zqvfWEy03dGcYzDneiMGwSa8jBoYh+4hU=; b=bP/AJDWLLwR5IdebiiBEzblErCACbPtXFcyAzvqki79EpeUbMu+nfxm2TeehilZv7tidPb 3bTQoOfvK3JORcKWDR49Om+FZN5ORszw4hHyEwvP+BdQIq6IQA00G8Ew56hd6dbKRj3lHe LcsfES1USBV4UycHNkNYOcydGW9lArA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725618077; a=rsa-sha256; cv=none; b=FEGRZs3EBAXoG8sjcvSUKOfnlJ5XbHXpb68lSfWZfFbSG4Xqg2aBH/ubjMUTD+BtQyqRY3 zBIerunQeN9WhP+ryvFQ2bJKsDqUDLOMdRNQVkpBKK5LiCBGsrEtdWtkOO/tP456tBeKvI E6JGAY1m+q/dpdLNYxlCMUwxUFaSXDI= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aw30f6AF; spf=pass (imf02.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.177 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-vk1-f177.google.com with SMTP id 71dfb90a1353d-502aeeb791eso247969e0c.1 for ; Fri, 06 Sep 2024 03:22:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725618174; x=1726222974; 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=SI4tsZiuC/zqvfWEy03dGcYzDneiMGwSa8jBoYh+4hU=; b=aw30f6AFz789lHT9zoPiLmdILI5Y1YmFpgXaDTg/8gF+bVLL1F79OvxuAI8VVA8gYc iH5cBQKCbUL6FrUEiXAy/J1i+KaeYjFj+LHiPeXawWSiEuBMQ59ABPGSFZESDY2zXhfh v/srHgUplD+uVESKN7s3uWFpxEz6FjYyPattINJX+ONdGkjB8yUYs8QFIl31FwqXaH4D IWcbe+xtCcD8acrAGqudpGUcK7U9d2V5+PVEU51gwdw6U//5XzcI/a0fyU8XoCmSyepK lxlm06n/xbgDCDrr6dvygtMosxXl7MBgGiSU9tAc4gzJr5KT//FJLIXMyEy+LCjSQViq 7g1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725618174; x=1726222974; 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=SI4tsZiuC/zqvfWEy03dGcYzDneiMGwSa8jBoYh+4hU=; b=eCWuL02eP0yALnGqUOU8cie2RuOOVoxYoZCoAeiCQriNtPKR9l9JgsvdDVSFf+9Dr9 D3BtOH/SuQvLJE5Cme8s9yYbI9er+wACi1x0hJIlcodqXeOS9aG8H1AnMomoTHDdEh+v 8rVBsOJTq1CKqFkvhBN8ng5EYpEzq1UlCrQmknOSZIWdei6VTfIhgLAKov9sSRNv3Pq9 stWdThKHgP52gOddB59MyWrnVqq0+nukUOT+FxSDAxgSLZz+l03c/g0ViuscNiS7wnyT I36g5ViZS/wbv9XVlGscoUfnag1ZUUL4o5IlvaDYI9lh52KIzaNJRza516RQ4F1EK/XD PCNg== X-Forwarded-Encrypted: i=1; AJvYcCVXRdWKbrfYpSyO+CJvdHm6vk+nJPW/jKgIU0VoSN4te0pJBCmEFbT848JNTgutQ9ku7GAlH1NBVg==@kvack.org X-Gm-Message-State: AOJu0YxqcDXF6NRMsUQtlBACeavOnBXNFP3uJVl3zPM32uByuSy7Ba5+ FEYiXl5QyJ7TzgigIF+BZ1NEdo39mR+/NRipPUI4a2lpKsTGbqMAG7O9DxaoNLehpRBkdoILNSk 7Xv2KHz6I2AYyx8Dx8FKGnbguAmA= X-Google-Smtp-Source: AGHT+IFm9aMAfpE+uG+P0LzWYMzIKu+k7/7RRb3+Sarlzn3kU43FV1jekfHyOZFZtCys5nIfsC65ynoaOOtgwudCZjE= X-Received: by 2002:a05:6122:3d02:b0:4fc:efea:48e6 with SMTP id 71dfb90a1353d-500f6e63761mr7643777e0c.7.1725618174491; Fri, 06 Sep 2024 03:22:54 -0700 (PDT) MIME-Version: 1.0 References: <20240612124750.2220726-2-usamaarif642@gmail.com> <20240904055522.2376-1-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Fri, 6 Sep 2024 22:22:39 +1200 Message-ID: Subject: Re: [PATCH v4 1/2] mm: store zero pages to be swapped out in a bitmap To: Yosry Ahmed Cc: usamaarif642@gmail.com, akpm@linux-foundation.org, chengming.zhou@linux.dev, david@redhat.com, hannes@cmpxchg.org, hughd@google.com, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, nphamcs@gmail.com, shakeel.butt@linux.dev, willy@infradead.org, ying.huang@intel.com, hanchuanhua@oppo.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: fjzhgkub7z1shgso6dsi9tgkjixpyin1 X-Rspamd-Queue-Id: 8B5F580007 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1725618175-711439 X-HE-Meta: U2FsdGVkX1+CBRxSJPmENbOZ3BEYqmI6E2WcqRuOXpueo+bYOG8o/j4KsMrI26aVIFZwtz7yr5x62sHjbGkLV5IgTgpBKKoKo3UAgkgC1A5zquHyQcuFHc6DrYNwnHBIYKOlsc7dcCeLO/0iHe07aA7EsJ1k7dXS/PoVN2MGNzIM0mvmtpHbXifAPQfT0mhvOdHCO5nYnWoLOI8uX9oQs7vLxMo4LOGUwDwMgg9raWf72gI8MOplF/hg6flDlBNhDLMr/VhyUy+C2tZkZiuuyfrzJIs4mSan2Nwfb3bATDxpupH9L1n4YyB0BRqJln7NjlVJQrZpCvMCKyFZSroMcTZDwH7jXxrntLkzmZZhO6jUT1gNhlDM4wkS/i8D2CKDmL6Vw744yMCaL+oOZ2HK/oYTpqGDnIEIrYUsb48cH0HqFXtHfOKB9gsOhnItkx97mCPh6eO4m0YH1eByMf4DhvUYtGeG9ZBaX+rRs2f4y7UNvH6d+/0dYNSh3Rl4or1OJdSi/oJeylLTddvOh5ojQnHuRsGjCfWgKprq95nDh1KObkXCb6KpLS0H8dAPO30cU7f04+K/p11n3YQ9a5E8G3DxsKThmbggz88zksAhRJAjvb5pfEhNOec5rnt6I4wVp9OE8mEXEgVL3RhlDRZvlKGMTUaCDSWo1PLk6zKsTYNHVoZOqn5VvJf31dlcE3LltYztjpheBWuQDd8eHJiVudTc53PBAsFrPiD5MugI8SDnT2MU85vJwTf51ALu08GPRDr+9P4hUzftWYhcU43xqPq18H1g2E2sGsJbHyRZY0sEGELL6hgPv/tcJKIUv9ZO/WbInF/kIIWG8OlwxyF0Oh1mBdkFDlrio+GLq+f+AwnPvMFy6OxQ4DlByytRuP5t6JuQKApA1z0EHFycxC5OQY5JkFiZooHycSk/a7NmjolEBKo53IhRCHwKaS0j6hfgRVovKH+XHedNhiX4x1h 7zKCzBvA 5JuxBCvD3p6OJKhrIVX02MthfzDuZixSkPhYVf+F53utvwPv1BfpM1o8sqMH57+6SxXMNqVN/Zj/ppoSb56wcyTUj5dWFBMYsg8yLhvvHEAtSNJS1uhKRyPn/xjz+Vbl5bMXXiHITjrm03g1tBFvBbfDidPJfuFUhwYDiwLg9QOBY6EU2mJlCAhlFaUG7+O5SeUyOTCuDMW0fhYOxWhhzmrwtqLx38VDNYqUSRN0TMqjxE2dEG1XsX6e3U2qfvJEpo2d3h+aAdiv6R061fsKWklzF2BYuhtSeeqASaCM1yQM6N1tOXdFh9Db506QTWr9yQWCZHB9E8okmlpW0/NKGToybFz2Lq5mczyYcLmR+2XhnREqqfG4OlaxrylOCg00pbHfQExL9FzMOlr4= 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: On Fri, Sep 6, 2024 at 7:28=E2=80=AFAM Yosry Ahmed = wrote: > > [..] > > /* > > * Check if all entries have consistent zeromap status, return true if > > * all entries are zeromap or non-zeromap, else return false; > > */ > > static inline bool swap_zeromap_entries_check(swp_entry_t entry, int nr= ) > > Let's also rename this now to swap_zeromap_entries_same(), "check" is > a little vague. Hi Yosry, Usama, Thanks very much for your comments. After further consideration, I have adopted a different approach that offers more flexibility than returning a boolean value and also has an equally low implementation cost: https://lore.kernel.org/linux-mm/20240906001047.1245-2-21cnbao@gmail.com/ This is somewhat similar to Yosry's previous idea but does not reintroduce = the existing bug. > > > { > > struct swap_info_struct *sis =3D swp_swap_info(entry); > > unsigned long start =3D swp_offset(entry); > > unsigned long end =3D start + *nr; > > > > if (find_next_bit(sis->zeromap, end, start) =3D=3D end) > > return true; > > if (find_next_zero_bit(sis->zeromap, end, start) =3D=3D end) > > return true; > > > > return false; > > } > > Thanks Barry