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 C528AC001B0 for ; Mon, 17 Jul 2023 15:56:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5582E8D0007; Mon, 17 Jul 2023 11:56:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 508FF8D0001; Mon, 17 Jul 2023 11:56:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3F7FF8D0007; Mon, 17 Jul 2023 11:56:53 -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 330798D0001 for ; Mon, 17 Jul 2023 11:56:53 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id EEBA41C8C7F for ; Mon, 17 Jul 2023 15:56:52 +0000 (UTC) X-FDA: 81021557064.12.AB0D3AD Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf20.hostedemail.com (Postfix) with ESMTP id 382391C0022 for ; Mon, 17 Jul 2023 15:56:50 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ITVsMo0E; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689609411; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=6rAKK+wxmLyxeZyfI3ZVNCD6IgYLEheT+1mkWcIo2/E=; b=JmDUjNr/Nvyusj3EVNSK3j+BcAZPQIAhLAJr30clDx2bxZq8ntPKSClNn1vkgedZj11QNs yrfCv0DRq4IabB5LPCfC72/L3UU3vdmbG9v1J+xuVvk7qlEQBYe0b8XWZZV+GPQjeIJcJU /4BIcTvBOcZHhTET91Y0mVdYwYkULSs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689609411; a=rsa-sha256; cv=none; b=EbueNgnPznNxcw3MYaM9Fb9XAtJFZ+OdCFdWRZqf4Bd+nXcrkRPax+xSF/370qcmWd7eRv y0XYz8XZktEY8y8B87CIy6ii65tdg+tpBnBgJRGuzAEMfWJBA7QUTfu0GTdOZ4y1vRx6/Y cI/8BPoiuBmRQtEcgVeaptl1KsxVwFM= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ITVsMo0E; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=6rAKK+wxmLyxeZyfI3ZVNCD6IgYLEheT+1mkWcIo2/E=; b=ITVsMo0EZxjDbPwjtXY0q+QtNZ 8gbl3PWmF5+IAR7w4w6H/Gm41zQRpOUIsLgchJsvXLJWhrsKhMLpwnQXdX0BARLpbAMWtIR17mf81 8k+cba7QIun/PJbpMWeoaAwIIUKrROId6C/qlmcLannc8zhoMZvyimfHHtEpuET30xRPmWtZGXd2u RwVigIm0cdATeKOSJWBU68QowMBRC5VxWg2pGk/5mtMRGvqehERugmOLbJN9UezYwClx1ybGqWBDN YiywyLAo9rq7PVwrkpZ06ocNdso53hQsS76UHy5ZMiWv+drZ/tPxYZNWvFHsDcJLaDvdo2vw6kPEf y/xeajcA==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qLQaX-0043ax-Dg; Mon, 17 Jul 2023 15:56:41 +0000 Date: Mon, 17 Jul 2023 16:56:41 +0100 From: Matthew Wilcox To: Ryan Roberts Cc: Andrew Morton , Yin Fengwei , David Hildenbrand , Yu Zhao , Yang Shi , "Huang, Ying" , Zi Yan , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v1 2/3] mm: Implement folio_remove_rmap_range() Message-ID: References: <20230717143110.260162-1-ryan.roberts@arm.com> <20230717143110.260162-3-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 382391C0022 X-Rspam-User: X-Stat-Signature: mdej6c49fh6j5r9gt1gkkk9tzngs41ob X-Rspamd-Server: rspam03 X-HE-Tag: 1689609410-787170 X-HE-Meta: U2FsdGVkX1895DqGPKiniPJDK9YFPWXC3DFv+JCECDvrHMMfWhJQvkuf0NKWJiAIiJl5hvbyoAF3/U8u8ub6hhNHPb6TV6JPb+VPMlYpJRsBOxKW1lxn6o/dION78KlMwNUj4HNXpFxTBV65rB3Ltnlo/2SlndOPxds2I/ztSVxBn5mWxsuMLiBeePzeiKZogp0FG9gpbAKI0XC2Lo7QJdMxboff2sbiakw5H+NLLhtTuba0fNLN7mRL4GAj97UqjzJR7d5/+2r0TS0a+wUaTrZegmd8VoUZwluNeJcZLL275WSzHQ8IhN4gx+a/qJzeEcSQTHp9b57QzmnvlfNkuHKVnAz4HF2tP+C+NE8X8NB7Xr6t1jdamGs4+RxHEiopUHPnokh+ipiJotDWc70VuzSCBosTJpEHp0Hk+Bw9NpZMAb/UObpOpeOHrPjB/Sz1qeJDQW8EtupHDcfRLKVvuaZ+Sr4ihUc9QXQ3AWRU2TebUefsuhccKogqtQAwmdE+5/AeCjrVR8XbZKd2xXriSH3tlQG+AJ/w0ngH/6A8tssymPNW2HmTT3HuPg/a6m5mqta6fUqKKX2/S26iex1W8r3OxYC0bgJvGcZImMqAVAkqJms458EL5ezJBsiqOw/HbBXlpUgg+608fCLIN6ttat9P01DBr44a18Mu546e6OVYaan5eP8G5SH/b5Bk77laTf+ZL+q0ehRTGFAbMYh/j2d9SgCy/Q1DjoASX4dEmv5qijdj+1u/RkApV5ZzOLaONAirG1DVpGYLXDGCNQypySZdJtFFdKUeAb/ynv5HbqgsB4Z4b52afW9TnpV0cftB3rOv2osCR5H4aIluTgyGN3SpY9nwitMHc/JwV/er72yI/Bkv7iwjnr14o2OOQ5AdP36FWlG3jZkGSpKjrvy+px/4X4fzfaOs8NPnoxH/SNSW0GfGvlnpR04+AUgjaYcNt0OU/rb/71La8P6fB1A YgpHS8Xb yBRybZrzrJ4cLV1ND531IQalHL20Us2hXxIVWmnsaRH94cBvsQQgc+FZQZH9tn1t1ygNHVL7ekTPLOZI9tmULThDDpC/JxNBya3dkWB/X1bgqAFT6SO8XbfTZac8ghnHbnv7432wDWdLnHYFZRgeLzncML3rVaW4fWN8eiMSqvHvrgHH1qAwYj1N9Mw== 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: On Mon, Jul 17, 2023 at 04:49:19PM +0100, Ryan Roberts wrote: > > We're still doing one atomic op per page on the folio's nr_pages_mapped > > ... is it possible to batch this and use atomic_sub_return_relaxed()? > > Good spot, something like this: > > } else { > for (; nr != 0; nr--, page++) { > /* Is this the page's last map to be removed? */ > last = atomic_add_negative(-1, &page->_mapcount); > if (last) > nr_unmapped++; > } > > /* Pages still mapped if folio mapped entirely */ > nr_mapped = atomic_sub_return_relaxed(nr_unmapped, mapped); > if (nr_mapped >= COMPOUND_MAPPED) > nr_unmapped = 0; > } I think that's right, but my eyes always go slightly crossed trying to read the new mapcount scheme.