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 ED103C4345F for ; Tue, 16 Apr 2024 10:40:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80E6E6B008A; Tue, 16 Apr 2024 06:40:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BE9A6B008C; Tue, 16 Apr 2024 06:40:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65E556B0092; Tue, 16 Apr 2024 06:40:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 48A786B008A for ; Tue, 16 Apr 2024 06:40:36 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id CE26FC09EA for ; Tue, 16 Apr 2024 10:40:35 +0000 (UTC) X-FDA: 82015051230.21.89E9878 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by imf07.hostedemail.com (Postfix) with ESMTP id 27DB44000B for ; Tue, 16 Apr 2024 10:40:33 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lb1oFt0J; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.214.180 as permitted sender) smtp.mailfrom=ioworker0@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713264034; a=rsa-sha256; cv=none; b=b0I7HOxDipELt31B+aTPW4+NAkth+VIBmwWd8jOxfYzzE31YEF/53Uam5LJbDTl50k1YdM ovJ5fXvVxmYfeYHXvaBnwAaQj5xIpnbwOuRGTvt1cNVaIvpXFoPtaDlrqb+xwQHmRJy13m 8mmYR07Vk3NR1CZPNjKe0dpRKrrzaxI= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=lb1oFt0J; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.214.180 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=1713264034; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=w1z8VdCeJne2MyXf+8c+fA7mb2A/BjtvAD0nnKEdogs=; b=lUnwd7GX7meX5TGvGxvaHH412YXtcL/rvMwBG2Nh5C5eHkSc0kFIrcsHxk+MLNNXWvQMo4 NxaZzoEWGnzHA636bCIWcDnAShJ0N6x4kFEqhtpexnTVJ5baVr4/rVU+yf+R76eUV7HBPh lQWG2u1b48BIB9lu7kDTemhTCmIVfUk= Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-1e4f341330fso34767945ad.0 for ; Tue, 16 Apr 2024 03:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713264033; x=1713868833; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=w1z8VdCeJne2MyXf+8c+fA7mb2A/BjtvAD0nnKEdogs=; b=lb1oFt0JxAhye7cAoqXgfbFPkisEevuqJlfQvLMV+iOIIOMu8ozVonHOgcPCbil6D7 2cdCK/cSkG7dYiwDg8Fk18rufXNw0KfwBtwCM+f0Ic+9Tn+qd5EuWA+matNMVY9kBdzO Nrhxc1sZidXec3fxGr+XXEyAbpb0xjFRVKp02XRBgmqBzFh85Sdl7x9YCnaXwAk61LBn ihpiguM9pZ2O2D+BQMttBeVi5YL+Q5Sr83JyA4MYWaS0v1OvcJdtRTZMmznxZ8G4AhWE iB8ybuxMr1z/aQ2qlM2RRtYSUDXw2c7zPxXRwO1+vA844aqH3CgBrzwiqb66RJqU3AEm bL3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713264033; x=1713868833; h=content-transfer-encoding:mime-version: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=w1z8VdCeJne2MyXf+8c+fA7mb2A/BjtvAD0nnKEdogs=; b=w2bBxSwxmQ8SLKtXlRk1OjYmKTl09NIaXigoZnmZE1ZlrNKjQVfI0fLjgaDLw1B5iu jnOfbaE638+M5kPBIYEPu0ityS5XubeeO+wj/SubE//QMKA5b20atrpUSe+/pYdFRCCy qWlGIGlUci7vPAz8VC7U4TFHMuRgQfMNlS90EBi7UCPLzxwFUQfPO5luHiuJazONYrhX RvW95nB4VwfKIYuysQtWtQiDWUcjG4maKHA1hTh65znrenvVczyS20EKgha1xhF70RWb VWhc2nFgb6JRhfxJvmI6jZx2VY0los6vyYWhD9VyNkNctLhEyXQQxrYP24mX7TudLg7G XvAA== X-Forwarded-Encrypted: i=1; AJvYcCWS8HeD4m54NCEM9pm1hY+1V8nAQePQR2mRvT6L2WoAyVZH0yPJyrHJdwZG3/Cwhoduw22H2dMD9Q1j37fa5EXpIKM= X-Gm-Message-State: AOJu0YwHdOca6rdcRRCiQrOnKsZFGTzYWAUWgPny3N1g9q9kajrCgG9+ G+ZFo8QqCxXEfSteaj7lOtesaY4sjvaQ4fKmyZJCoKqHeX1qS73u X-Google-Smtp-Source: AGHT+IEVE6JlEBgyeNQ8vkUPkRaSgWDWUYr0hp6JGZgymhUxvXFOsOst8mFB35mbNtNEl3G7ds+cRQ== X-Received: by 2002:a17:902:ed15:b0:1e4:9616:d967 with SMTP id b21-20020a170902ed1500b001e49616d967mr9788274pld.15.1713264032862; Tue, 16 Apr 2024 03:40:32 -0700 (PDT) Received: from LancedeMBP.lan ([112.10.225.217]) by smtp.gmail.com with ESMTPSA id b2-20020a170903228200b001e53bb92093sm9410890plh.228.2024.04.16.03.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Apr 2024 03:40:32 -0700 (PDT) From: Lance Yang To: david@redhat.com 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, Lance Yang Subject: Re: [PATCH v1 05/18] mm: improve folio_likely_mapped_shared() using the mapcount of large folios Date: Tue, 16 Apr 2024 18:40:08 +0800 Message-Id: <20240416104008.41979-1-ioworker0@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20240409192301.907377-6-david@redhat.com> References: <20240409192301.907377-6-david@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 27DB44000B X-Stat-Signature: njnjgffzeoogfh6d55mjbm6bqhf3qgmz X-HE-Tag: 1713264033-825774 X-HE-Meta: U2FsdGVkX195zgWhFSE53jpae6G29EusgTHxg2azoFxaFIRQKKLWQ3A4cgImhovMPBAehXHkG+hrvZNYJj3OICVogqO0UcDGdYou0HZHJVogAz0VcLd29UuoyEjdXv/QTU2RTF+shUiJzgBsLojj+L0OuNxxnRPFvI8YmVM25jIURss15BrS2HAb02+h11YjCsT2mMDaOR/MC7HQgbwedYANyMg1fBWd0yOc4gbGdGYgN1ITj2uFUpDOYhLkFt7ZwpCLuIvp/yMV1anJ7F4NC8s5gvoRrRfzHOrC8fRftHljhSDiPN6wGKVnURCYopkTtokmsafPkXaUfGoiZ6hpWqeHBa7BvhabWtA+M98UD54d3BX6Xsa7oMkTySIramu+ehLXvqlhuZIHMjC9UbjENTIi7COp1sqNweKhUH6bZ8dtYFo2AizBHeTQUUex7kvXPOXHGATqozFgyefsSRiUinA8hA8zF3x9tuFfmp1NCinflKrvzvVbQHGrs/Dc8IGE5cdClDIpWf3FOSVcBHU7DfeLoGkgps4UNiqv9viBON8PjpYVDOmSd0xXCWwV9oF/3OWrw0oN/wipQiroM9P58oHtGki9ksTqwp7cmidnR2bWXCegsnJI/JX/deb8nEbclPsoDXdQVu+upYTd6m/B9VBl4dgxVB6N2HVUp4XmxlN3BqRQPf9HxN7OxVIOMY8wab31Mwxp8e8oAmFKL+H4iU7Bga7WB8rRwI23zIP7a9bDfZTWO56iXgmcb6Wu5WzhVDPRyqDbFo0avcLFDf2bkljqAiP8D7T2PJpI07ptRVw/S6rVRVVk7No6NLeqI9vaqsW+TBYswMfzVEpeXfCVEG5Bd1SBDmafkdpEKlyP6KPIoJhq/f6F+abUxMd/N5JR6vSTWvFonqQz1ducNOSb48GFLax9CSNPKaXmXxpxIOU3uGWu5y5ONTt+kwDlPjJAm/gqZcM3lyfs+r4XFc3 qfXDBM6A 31TRiYPchRIluol5oiATdCmMdyckd4mLz44diISbJFK55E5kHW19yVOmdnXAixdKwjJI7rDBg0zTXbBdGWAXbi3q3KTnLe8vcELcdG7uOQf8p8Zx3nbb3c+g07RSc+PeMKg/5b5K+AP9v5H9kKb/+LyROzs/V1srXpk35 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: Hey David, Maybe I spotted a bug below. [...] static inline bool folio_likely_mapped_shared(struct folio *folio) { - return page_mapcount(folio_page(folio, 0)) > 1; + int mapcount = 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 <= 1) + return false; + + /* If any page is mapped more than once we treat it "mapped shared". */ + if (folio_entire_mapcount(folio) || mapcount > folio_nr_pages(folio)) + return true; bug: if a PMD-mapped THP is exclusively mapped, the folio_entire_mapcount() function will return 1 (atomic_read(&folio->_entire_mapcount) + 1). IIUC, when mapping a PMD entry for the entire THP, folio->_entire_mapcount increments from -1 to 0. Thanks, Lance + + /* Let's guess based on the first subpage. */ + return atomic_read(&folio->_mapcount) > 0; } [...]