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 E7675C4167B for ; Mon, 27 Nov 2023 04:37:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 623286B031B; Sun, 26 Nov 2023 23:37:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D2FC6B031C; Sun, 26 Nov 2023 23:37:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49ADE6B031D; Sun, 26 Nov 2023 23:37:08 -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 3B7EC6B031B for ; Sun, 26 Nov 2023 23:37:08 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 0FE72160201 for ; Mon, 27 Nov 2023 04:37:08 +0000 (UTC) X-FDA: 81502474536.24.D8378CA Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by imf26.hostedemail.com (Postfix) with ESMTP id 35E98140009 for ; Mon, 27 Nov 2023 04:37:06 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="aFutNxb/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf26.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701059826; 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=RrkhcZr7BZmlIlQDlknFFhzCf6BgW+GunyjUL2ZUQMY=; b=qwykSwmsN26t+QxXbFFtNPjE4hBaU9qzu0hGTEbLw8850K7Kx6l982xpY7SabKK3TODYng mcQuOe0tGFrhC8sUShRqNzqapv1DqEX9L56i//Y74dsVUUDTmLYSCGMszTpUgtqjnniFWl rzTjrp/zcXXvFvrXCivV9F7HIUXUFCA= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="aFutNxb/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf26.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701059826; a=rsa-sha256; cv=none; b=5jDAGUUAPWW+i9Aco24tnlFG4M9Q1i8UPfjmbReffBsSrc6dM/OIO0YYefx3pR/Q76YfUt B7tSr51BDnmQvTTKuH2rchXEzMpEogLgHL85h5UquNmeBuBMK5R/yDY4SRbQAntMtzt3sK b1HUhNNBIA/KcjQXJTYpBnM/YykE37U= Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-6b1d1099a84so3538842b3a.1 for ; Sun, 26 Nov 2023 20:37:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701059825; x=1701664625; 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=RrkhcZr7BZmlIlQDlknFFhzCf6BgW+GunyjUL2ZUQMY=; b=aFutNxb/tc9FSH3P24aUVz9CuJNabhiwWInJGlODkdQ3RP85Kqu85VHkhgVAeEo9mq 2Ghh1V5YtZKPuMaoeelIzaPbpZQ67JUFCTTmCmfrpi8FXNQIQPLyHk8fj34SefKmMz64 6QU3vcnHRKpSaEccE5ivP0iVIIDJHg4LqYdoSNRAbmArY/zL9SFSfm801WCHzrqCkwSx EVV5fwyzFvRKHuYbhwxquaZnMaV94BdW9IdlU/FbltJYRxO+XFl9dlsB+ZJCCGm9ZV/v W7O2BcOojm+ZIHY17Or5Mr8hF9XNhEKTqYvH6Wuc5MCpgE6bybGh4EzWzHGpNIcL/piA fBZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701059825; x=1701664625; 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=RrkhcZr7BZmlIlQDlknFFhzCf6BgW+GunyjUL2ZUQMY=; b=Tb32SH24PMhUB5cCsKRAbSAyCYV5EwlpB1XX7X3jOMi0ID/aKpnxhMb0mmiz5Wcdo7 llV6i069gm/PNCySSAnGdWxh8idW45hqLN6Q+SA3sRcnZY7Igf817N7RnmouApg84xrq bZTyq7worh2rHfrh+NOhdzDdfximAZ+bana5oNtP2B15/E2lt1/W2nRU3+zvUdEuCIxk 90aR1jtAj33M2B1UVU04tlQT2AZGT6sA/dDUyV9RbQqZvhTDkXDzmYShd+65EiKYCB3e /F4p2zTDToEKq+u+eKR5b/iQMsFqXGqxX9lnCZaR6Z5xnIzdvZYkKTL4/q42G4+6O2OI yJlQ== X-Gm-Message-State: AOJu0YzTh+QxQxsAGMhYliz2beAkqEfMNBEB4j6v/ubwJoLzrAhhzTC5 T0CVLwkLCgjsyxVRSo3VRbkfDzrKArhS8TnF X-Google-Smtp-Source: AGHT+IHwesZsTaMAmxY5AjIARHXfR+Dyw7vU44Vm1eFKSxddz6zpVn7aLU/+DeyilY0G+gQPL8pCww== X-Received: by 2002:a05:6a21:192:b0:18b:5b7e:6b9 with SMTP id le18-20020a056a21019200b0018b5b7e06b9mr16364839pzb.2.1701059824943; Sun, 26 Nov 2023 20:37:04 -0800 (PST) Received: from barry-desktop.hub ([2407:7000:8942:5500:6f18:c2e2:c23c:9ba2]) by smtp.gmail.com with ESMTPSA id h15-20020a17090aea8f00b002802d264240sm6663134pjz.29.2023.11.26.20.36.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Nov 2023 20:37:04 -0800 (PST) From: Barry Song <21cnbao@gmail.com> X-Google-Original-From: Barry Song To: ryan.roberts@arm.com Cc: akpm@linux-foundation.org, anshuman.khandual@arm.com, catalin.marinas@arm.com, david@redhat.com, fengwei.yin@intel.com, hughd@google.com, itaru.kitayama@gmail.com, jhubbard@nvidia.com, kirill.shutemov@linux.intel.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mcgrof@kernel.org, rientjes@google.com, shy828301@gmail.com, vbabka@suse.cz, wangkefeng.wang@huawei.com, willy@infradead.org, ying.huang@intel.com, yuzhao@google.com, ziy@nvidia.com Subject: Re: [RESEND PATCH v7 02/10] mm: Non-pmd-mappable, large folios for folio_add_new_anon_rmap() Date: Mon, 27 Nov 2023 17:36:44 +1300 Message-Id: <20231127043644.8072-1-v-songbaohua@oppo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231122162950.3854897-3-ryan.roberts@arm.com> References: <20231122162950.3854897-3-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: 8mc5wi1m9sp9yga6joe91np3b7aoe9kp X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 35E98140009 X-HE-Tag: 1701059826-449191 X-HE-Meta: U2FsdGVkX19YnWKo56yy9a9kq1qt8fGxmJF9BKks2b443eFiS7/YXx5RYo8QQAX2pO6v83bCZGOVzYUMcLrOttbRV9OE0exTvahzr+fS3LRFrgvAMzNAcmCkQGpo6B6q0ifPwppfO2vuSUvE6pPurkFWwFUOBdR4snFFAZipDJEDTTfMGjOePIfVZ5IRBFXN7nAIBKvE3DSXwxINtrjz8rtU2zCB+V3LbSiDhZvqOG5CnsEzvgt6DMGifi19FmFhB5zCOLckuHHEKsdliN+3+zBAoT+yWTjvfYkV0S9aVq6ASP2pkR+YUJYkTbuhvusywvUbGXlwxhBomVXy3S5Q8CXwHfEOcVtwU0TC7FbkMeI47hnY6JRCHRgt3WT8qvBmpY0UWWo/iP55OVj97FFFaS7hkbElKv+8pF0JGS6bsmYDKqvi8hBoiZJj4aOBPKAaTccRgiPorpykoqHsEEMloC7vzePynxns4Tio5hFhONB6Gqgudmt1GE106RSn5DYUJqntTjHdAn94ZjpKDAGPjdJ2j72oljAs7pgvLRqO/AYcm3UV9RZMNVyBQZq1gt38XL7G2FBwXzkGXsi4H4qMVOtT9VKiLFd9goWMkvxn8ZJQYdLKYoSI9TAl8QcLoHBevUPNMVsQvkkYBEJAW2Ef2GWP6Lo8UhszfiN93EQUCQSTTCNcLDLBlBWYxTCaFcO9WZvXc5QlpP07ZdKNwps69ewcf8bb+u/J+JGnp2ZF0fnh0pI6n3qsn1gcjpiIIdPnxaE0Ic2lrVivGVOkS+EHoyedRK34qWggdKQziiOe0YKaM4XXonJ4WXiUYULvaepctlBqn6rFC3nZPlgMh95GFXhXD4feHEG9FH9d0EhUqsg7zJMRYJtX5JQgF3xMbVkTZVncmbuN7OmTlDQcs9EpGyOg7QDzViAW3UBhDKZcbUTajvAmXge8mDTpyrSDnRM3xhtAevw6ciPtzWKL2ZK 5gMsfad1 7Sx2JV4TA1QRkc+haESc+RcXDmtZzd2RWN7dFn+yduHdrbGDESZDUyso6H9m40lt94GuhDeIlo7TbMQNR6YYbGFnLsfAvsWTZbZ+/fEBo7GOlJ4eJMOywSLbjTLGa2aBY4H/uDNoa9T8ZrKnhICAsIjRy4djKITyP/HGV81Mjr0xuw89scHpfQsQy2LuXgjjUUp0qSMi9feQWox+QuvsJEN3H9p/zqTNrkMsTIuoQ3MK2VwSpk7BWwRT79Zdwlvc+sIsqQdUWakx9hW4tKL7P3qXkPcEGz7wiAZKgBEOZUdvik80qzKjcES3t1MCwM0E1ObZ9LxFmtefOWwPZJjQHG0j8xu9WsLg08cbGxUKnWU9JlGd/BSO0e5z9fF2h2n6KjCj5dpbajhGNLE+wH9bSIjp1W5zezhJ+Ou3GsbRwWa8RS9A9+IQEtvkPUB2v8nCUMzoICYT+8l6ObdunTomknD1olH3e76ROM+ZvUkL6aHoWWlMaF+J3xaQ5oqGxjBX1/cY+ 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: > void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, > unsigned long address) > { > - int nr; > + int nr = folio_nr_pages(folio); > > - VM_BUG_ON_VMA(address < vma->vm_start || address >= vma->vm_end, vma); > + VM_BUG_ON_VMA(address < vma->vm_start || > + address + (nr << PAGE_SHIFT) > vma->vm_end, vma); > __folio_set_swapbacked(folio); > + __folio_set_anon(folio, vma, address, true); > > - if (likely(!folio_test_pmd_mappable(folio))) { > + if (likely(!folio_test_large(folio))) { > /* increment count (starts at -1) */ > atomic_set(&folio->_mapcount, 0); > - nr = 1; > + SetPageAnonExclusive(&folio->page); > + } else if (!folio_test_pmd_mappable(folio)) { > + int i; > + > + for (i = 0; i < nr; i++) { > + struct page *page = folio_page(folio, i); > + > + /* increment count (starts at -1) */ > + atomic_set(&page->_mapcount, 0); > + SetPageAnonExclusive(page); Hi Ryan, we are doing an entire mapping, right? what is the reason to increase mapcount for each subpage? shouldn't we only increase mapcount of subpage in either split or doublemap case? in page_add_anon_rmap(), are we also increasing mapcount of each subpage for fork() case where the entire large folio is inheritted by child processes? > + } > + > + atomic_set(&folio->_nr_pages_mapped, nr); > } else { > /* increment count (starts at -1) */ > atomic_set(&folio->_entire_mapcount, 0); > atomic_set(&folio->_nr_pages_mapped, COMPOUND_MAPPED); > - nr = folio_nr_pages(folio); > + SetPageAnonExclusive(&folio->page); > __lruvec_stat_mod_folio(folio, NR_ANON_THPS, nr); > } > > __lruvec_stat_mod_folio(folio, NR_ANON_MAPPED, nr); > - __folio_set_anon(folio, vma, address, true); > - SetPageAnonExclusive(&folio->page); > } Thanks Barry