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 3054BC4345F for ; Tue, 16 Apr 2024 10:52:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D7BF6B008C; Tue, 16 Apr 2024 06:52:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 887AE6B0095; Tue, 16 Apr 2024 06:52:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 776376B0096; Tue, 16 Apr 2024 06:52:40 -0400 (EDT) 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 5B4866B008C for ; Tue, 16 Apr 2024 06:52:40 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id E824D1C04B2 for ; Tue, 16 Apr 2024 10:52:39 +0000 (UTC) X-FDA: 82015081638.09.7F10B6D Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf23.hostedemail.com (Postfix) with ESMTP id 24AEA140011 for ; Tue, 16 Apr 2024 10:52:37 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=U5ttBz3y; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713264758; 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=yj+Iuq37H5CQ3HHFDH6wk2fzVZAY8yC5nRKMEowsuSI=; b=CQ7ylbDT2yHSQjoz9mnHWct3T1LTbBIqsyy0rKu8xa3lP6q4xtmUhLS3Xc7u3k3Jw2Kcq3 RTsF2i72sNfdY9azOqjtddfyfXm83O78yDwQNw4ljx/NdSWuZC3CXxB0G2LmYH9oB5R204 PF2i31ZkcVN2eQfWeX5iyoG8/dJu1O8= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=U5ttBz3y; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713264758; a=rsa-sha256; cv=none; b=RIvlioqXaX58JY/KoEzVlMwblsARzlE4jejnqSZLIs7ey4DAJuQGV+r7PKncAoBKi3pmyl PCTgP84Hpg1Eku+4/9HE0PPhg478PLNqcM0fV4DKJbf8QaEiYKHB+ETCnzJeFIO5kkFc8y keV0Vlu3fKFrz48O6cPUe4nJwka4PDA= Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-56e37503115so3395693a12.1 for ; Tue, 16 Apr 2024 03:52:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713264756; x=1713869556; 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=yj+Iuq37H5CQ3HHFDH6wk2fzVZAY8yC5nRKMEowsuSI=; b=U5ttBz3ySfDsU7uRel/f0eu7GA0ai9XI+JkMS4MiKuSZpBXlE9OUoXIgxVla2cnLxf 6yY+XjivsfXE1y0it+OAIsJEsHm0S6IpRU0Piyc2PjxIifQVGoppJIKBoYrMGCwIThsB hiLsEcJtywB9+23JuOEuZG3mF26yP6znLaYWEUmUVwkdpz/oCydzIMl5x17Ga3QVNxZ7 yoziLhAvTymaWcFqJqjQLfHucwY5pQkBOo/xCFNMKWMFzrFoYm1Qv+GS4dSu3HwVSirO LUK7cgrC6OkTiF/LvO7bDtlAqYWYjpkGcVny8FECATld4GJadzdwNBNTVTwElCqwoLRo P6wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713264756; x=1713869556; 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=yj+Iuq37H5CQ3HHFDH6wk2fzVZAY8yC5nRKMEowsuSI=; b=uvyHGrRgmkhtD1IFx7vU2mkODmnaCbFMDyHac3faFHT/L6AhQwDyJ9gfDwn2UjZf2K IVqCzCHdkUB23L1+rD7gQmH+Q5qC/xVqsErWhEDkj8GT9E65wx/tNlyv161+WWuukGUr eDFEd2rX1XESmXA7hpSXat8V7E279YN8Brpie9pMk+Wbq8udAmnGX34DYc9Q7fV6U4Uo dli8wYbI5vVe/jq7W0Sv2G/Gh/YivjccoPP4xCI8cwLWQJNt4Cpx5C9Ea5AMb0CfkHlS hZ4RXjX5CZpwbbb89oIxAcspRe7GyEbo9g8dlowROqNG1ArwqhMH53kQHsikVEpNCsuB pxFQ== X-Forwarded-Encrypted: i=1; AJvYcCXsLMGBAgHvk1mKnQkkmHxl8nQloMmSfwIBFGuVN3hxxb/t+kSGuTgcWuXRhrjxZidXkBqx/4rMm5sEkriz0gZgoXk= X-Gm-Message-State: AOJu0Yzh4N1ubSC7/eTBoalq8Am2yV6aJ5EUDhzWzzZOB3FC8MFuLLml XPgPdNjYKNTPvKT+XJ+x9l74veCV9Luf14g28PGTEgbOCaKSgiMq/J9jYShDQlYJ7jlko2a3jvF vIYs14uN4EyrZMpwOolZx2B+zf4A= X-Google-Smtp-Source: AGHT+IFon2Aw3ti4vkbB1b2ywIYBBfu+zHa7Gr7yH1CDPfXp+5JnTzJ9UBBOwEC/nOMEAZCzW6rVZshgLJrmc6B/ebQ= X-Received: by 2002:a50:f699:0:b0:570:2367:47e7 with SMTP id d25-20020a50f699000000b00570236747e7mr4030108edn.12.1713264756242; Tue, 16 Apr 2024 03:52:36 -0700 (PDT) MIME-Version: 1.0 References: <20240409192301.907377-6-david@redhat.com> <20240416104008.41979-1-ioworker0@gmail.com> <3ef81fe3-2584-4db8-ab66-eaa44c035707@redhat.com> In-Reply-To: <3ef81fe3-2584-4db8-ab66-eaa44c035707@redhat.com> From: Lance Yang Date: Tue, 16 Apr 2024 18:52:24 +0800 Message-ID: Subject: Re: [PATCH v1 05/18] mm: improve folio_likely_mapped_shared() using the mapcount of large folios To: David Hildenbrand Cc: akpm@linux-foundation.org, cgroups@vger.kernel.org, chris@zankel.net, corbet@lwn.net, dalias@libc.org, fengwei.yin@intel.com, glaubitz@physik.fu-berlin.de, hughd@google.com, jcmvbkbc@gmail.com, linmiaohe@huawei.com, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-sh@vger.kernel.org, linux-trace-kernel@vger.kernel.org, muchun.song@linux.dev, naoya.horiguchi@nec.com, peterx@redhat.com, richardycc@google.com, ryan.roberts@arm.com, shy828301@gmail.com, willy@infradead.org, ysato@users.sourceforge.jp, ziy@nvidia.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: e39n9dpjaf7fb1hx7ndpkx7jkkutn6k9 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 24AEA140011 X-HE-Tag: 1713264757-545218 X-HE-Meta: U2FsdGVkX18eLBgYr5D1OzF4XV2GqrsndRYUsmZSy2J45FiDIu9v48Tp0FraP/1yEdDyORhHJWhaXDYlY9TJ99fjJ3S7rH3FsKVlOf9EXovk9ffnrSK4IfWScZdfLLkICOtktZQRetSup3xzmgQLm08O4Nq15VT/biiwFPBGHoQAb3zTlwhsuH9SwerjmA8rvHIIe1MckcHEFMh65q8oluhk2atcvsIR446dtju/GNh5bU5Tc0v5GFb0LxNXEVKLijI7NqBQPwcI4DmDwu8/I6KphGTDZj7okqLpvdH6HTsE+BnsrG3HMQRwe7s9+B2CSNCpRrR0lCQAJ40qpmevliYtND7kLEitt+r62J/SysXmTUsXxjL7A0TYYkPreGzPgdQCup3fes5fb4ddJ6a312VuxqgJHaJaCaqEsWKYCqJUHxTbhTXqAt2N9jsDKDJMLEKU+qpBY191s/VCEtkEuOm7qXs45L9U/+EI3ykDdIueEPw9VuhFQaXP684ZA+pnBQqXcFNY9enV36aRZMbJ9EjMgBXeHFwRKFVPXYKMQ7pg1RRWwnqs9dCdIPEMroSTy29oSyo2HsKkU3Sq2gNTqGqrBZIXWvvKnW5MqXLsN+t35RxSS4a6MgnoOCcrW4zjhpF7ng4u+9TrOFdcTJuMtMhME2/8haMEoB1X30lixy+b0vdGDKABV5KqNWVMvaJAxPWvCbrAJeR6D+z9Ic7TWQ+k4mqrFalKxdk/9SKmuYbSqw4ujk/ixxS8p/SXFxdQySQvzMCvSd2zgS1Oxi9BPCgpakK2Ty4Nf7EzhInX5DWdvy/6xMQ4OzhRThd0u5ux6pXzheiTfFk2jwaLEWF6rzXHDxYAcWIzNQBYh3901tSgZqhWGY5eiYZzFSp49p3He4ZzDVA8LDAsRroe4gX4DD6vaPQQf+09h8kqLUTtZhlALmdp6MNoRZRG4+iSmofJUsnbKoA0fp8rhlSC919 MysaaCYN jXhtsRZiXNm46S35xFa7oS8utGethXb8Y3dULL9R1dAfc2foICqyGHiIXKfbdfh8BwEkOCTkqfXki4nkiYkFUPoRyJl5kDLg9KBf/9h1ECKEeAF0ThYfESn/9hykl3Sgq2KZkOqCpBcru+VyBHO948FMATE00sa1TgKfDBAIla2OpL7rIlvxevhaLVfLYay6UXhPA6jPmCrsCqkKlDoZbclJBG4+e0Ns6HjXzQJBzvpMJVBr8aFOUc7aUV+F5BVouSfGYblPyVBHOibtHm1LuQmxD2UWja77u1yMoBoIXi6SEV3P+Ek75EUCztIrO99Ld+CAWFFdkiuI1Yqk= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Tue, Apr 16, 2024 at 6:47=E2=80=AFPM David Hildenbrand wrote: > > On 16.04.24 12:40, Lance Yang wrote: > > Hey David, > > > > Maybe I spotted a bug below. > > Thanks for the review! > > > > > [...] > > static inline bool folio_likely_mapped_shared(struct folio *folio) > > { > > - return page_mapcount(folio_page(folio, 0)) > 1; > > + int mapcount =3D folio_mapcount(folio); > > + > > + /* Only partially-mappable folios require more care. */ > > + if (!folio_test_large(folio) || unlikely(folio_test_hugetlb(folio= ))) > > + return mapcount > 1; > > + > > + /* A single mapping implies "mapped exclusively". */ > > + if (mapcount <=3D 1) > > + return false; > > + > > + /* If any page is mapped more than once we treat it "mapped share= d". */ > > + if (folio_entire_mapcount(folio) || mapcount > folio_nr_pages(fol= io)) > > + return true; > > > > bug: if a PMD-mapped THP is exclusively mapped, the folio_entire_mapcou= nt() > > function will return 1 (atomic_read(&folio->_entire_mapcount) + 1). > > If it's exclusively mapped, then folio_mapcount(folio)=3D=3D1. In which c= ase > the previous statement: > > if (mapcount <=3D 1) > return false; > > Catches it. You're right! > > IOW, once we reach this point we now that folio_mapcount(folio) > 1, and > there must be something else besides the entire mapping ("more than once"= ). > > > Or did I not address your concern? Sorry, my mistake :( Thanks, Lance > > -- > Cheers, > > David / dhildenb >