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 B69DCC3DA4A for ; Fri, 9 Aug 2024 08:28:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4F9366B008C; Fri, 9 Aug 2024 04:28:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4A8396B0092; Fri, 9 Aug 2024 04:28:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 348EE6B0095; Fri, 9 Aug 2024 04:28:26 -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 1369C6B008C for ; Fri, 9 Aug 2024 04:28:26 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B2164A0BDF for ; Fri, 9 Aug 2024 08:28:25 +0000 (UTC) X-FDA: 82432030170.16.E77CC3C Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by imf02.hostedemail.com (Postfix) with ESMTP id 36F5480009 for ; Fri, 9 Aug 2024 08:28:22 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=bbGQUBLj; spf=none (imf02.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 198.175.65.16) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723192016; 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=A4BZRmz8K6tJWnyK06WBwRbabZ++BgL7j9OhbhjjxDM=; b=Ru8kWZjWQi1Jpc1Bm0GIm+8kicPwIjjomY2LKQUu/8wKD5iJKbF3qpKFkVhicn3ptr3j6d a3iuTM3sAZcd5PYaluCvTRlr0SUJOf9X2BJxjgIOjINxs0XLmKLeNX/cAywNuj2EzfTIws X2/He8p+iRnq7yC0Y0x+4ZlZxOZFNEQ= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=bbGQUBLj; spf=none (imf02.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 198.175.65.16) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723192016; a=rsa-sha256; cv=none; b=MWA5PJrag9y4JvOZKJFyACUsslznwQfPw0540dKVJAVYH1eEMSAXujA1APbDWaShQAzDla ncqTQbLedE32mnEkgGCx74vXm0e5TMtHlXOm7djnU3EPBMHpaXuWfl3852xFLRa0zM0RiI hFWxExgNSMmQr+nw3OC7gUp0BYFY4NM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1723192103; x=1754728103; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=k/S7wi0MV0srnLj+h3/ApPQ8Z4yky6wJG7x9HEe6kGg=; b=bbGQUBLj4seyI9xTzbARjk+MZb1IMpMSgwi9X1yoHmQ68U0LAEsM/8QL RZI2VooJd5eiExACWiuN6JDAMtWyr8woIkyFNkOeK6yDFFu3TI6SKioL+ gqsDY1L6e97L9A2ng6NrgpBHa4Lpysf0+6Gn1F0uQmwMcel19clGyzjJD BJAse6k98CvvmQxXTsY687oHahpsmYI2POYNo4goJMA0tTD5CUrNqzuxS j5B4obytwmck1CJyVn4aDjq4u+mo/RooC9bjFt58STs4DgeWtV3r+/irs 6235js1w+ebZ+C1RgiJ8wwDS9TmDcj0kkFTHK4F8jxAkJ4Q1Un+Ri0W+e w==; X-CSE-ConnectionGUID: OQ317nfkSMqkJOhcu1TJWg== X-CSE-MsgGUID: /P/wzNj7RquDNBR+u00zmg== X-IronPort-AV: E=McAfee;i="6700,10204,11158"; a="21507897" X-IronPort-AV: E=Sophos;i="6.09,275,1716274800"; d="scan'208";a="21507897" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2024 01:28:21 -0700 X-CSE-ConnectionGUID: sG9caBb3S1KMpp4TkGG8iQ== X-CSE-MsgGUID: G7lr+5mwQhmtDmnKQjHpjg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,275,1716274800"; d="scan'208";a="62334736" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa003.jf.intel.com with ESMTP; 09 Aug 2024 01:28:19 -0700 Received: by black.fi.intel.com (Postfix, from userid 1000) id 5B85219E; Fri, 09 Aug 2024 11:28:17 +0300 (EEST) Date: Fri, 9 Aug 2024 11:28:17 +0300 From: "Kirill A. Shutemov" To: David Hildenbrand Cc: Andrew Morton , "Borislav Petkov (AMD)" , Mel Gorman , Vlastimil Babka , Tom Lendacky , Mike Rapoport , "Matthew Wilcox (Oracle)" , Johannes Weiner , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/8] mm: Introduce PageUnaccepted() page type Message-ID: References: <20240805145940.2911011-1-kirill.shutemov@linux.intel.com> <20240805145940.2911011-4-kirill.shutemov@linux.intel.com> <56be9c2c-6f44-409f-bb66-3bb488f0d546@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56be9c2c-6f44-409f-bb66-3bb488f0d546@redhat.com> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 36F5480009 X-Stat-Signature: ryxtgbmt7wi1mkxst4qpgsb5dubz1mwf X-Rspam-User: X-HE-Tag: 1723192102-242624 X-HE-Meta: U2FsdGVkX1915WjSo4iw6t9yM/2cr2OZGFr8NJTxCGDfwy4bf6Xp1lSYFmpc711i39On2Yj2OAP5yh5k921GFOm19tF6FcqKZthVSOeDBtC8CQtjYoeZYC/IGV/sYPWWQYmz2ZB/3A1N0lxT9dXevAAcSS+bVBMISuQYTsgVPKq24SihyA50jvc1NGYCdIfaOBuWa5WUc5AltfX1u8M8/3deD/jAoJ2nhc0flxE8RWcQd1Qnm287DmU5WjmSNJGTnxD9kzdR41NcpFV4o1+jOwEdPTtIkCigB92jZTjrajF6U2LdcfZdU3VxFU75cfZgbqsJEotrBjAq68p/TqphB7peIXHU64g31U2bOwF+YM/Ko0aSnoAh9t4jc8KHIJLprm3tZbjxiZbHdkvD+dobNbFicyU/KGDuVk5or1rm9qEWSFcbY7JvuybLjzops1Wg/1Lwfxks0RJZeTNaf0DUN4BLCteGZzJTUar+ZBld2XBakMuyMFOcT7IZ6ZbmLBmoMS/2jQe9W1/5ppP7z6CW+q92NWxcDfFwrT/UwXYXu3m79NZWaE7oCHJRHdcZIUCwWxhVW0i03WVNQ144Qmfdg7hkoREhZ9h0K5gZow5NPb+K8w/P0RJaq7xbxIKVS5TWF1EEuR8527qLEXzv9pTsfza7YGrnTg52WxjyZ+5MH6yIkNTuecQ96YlmpkwqXT0I57OvNphsIaLxL1UPPtSll7y7zrD66dkY9zsnN2RPWUVcACTy8OoOc3LS8qRD5j+cH3Y9xPLwTCqMPx0XBT0GBUgAA7r60YrSZO9fAjhBIIdIRcUHLkvmdU3WlX9g8+s0SUkZnfaEUOA7qcnRj/237fTzrtjfmkMnHqXX/BYM3DQWPGL32BePTCwW4llMkywbkTUp2gtCJiLxvy90guKeBIEPYtO+wbaA7FlqZYPQd5rw231bgs8jkUNWOJfOfyk2SfldrG9JvGDAeXp4+5h rAhuvZ49 iJ4b/B3+YQrhhGePWcC8U0jkXYWQMSiU8rw3ntRbsekRkMig52pIHlEZgjBxhp4VbULWbIiw/oSKPjkXn/QE+NjAzZ13jlTTyS38D1DZ+d0kyTIyvFTyp/xZww5sTGLgyVnoTIBaNrO+Gf5vPsDBSkFL27pt74IrCh5iGUALyeU3FF+CxEpXD5T3Smg== 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 Tue, Aug 06, 2024 at 02:06:02PM +0200, David Hildenbrand wrote: > On 05.08.24 16:59, Kirill A. Shutemov wrote: > > The new page type allows physical memory scanners to detect unaccepted > > memory and handle it accordingly. > > > > The page type is serialized with zone lock. > > > > Signed-off-by: Kirill A. Shutemov > > --- > > include/linux/page-flags.h | 3 +++ > > mm/page_alloc.c | 2 ++ > > 2 files changed, 5 insertions(+) > > > > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > > index 5769fe6e4950..e19eac9c2b5c 100644 > > --- a/include/linux/page-flags.h > > +++ b/include/linux/page-flags.h > > @@ -943,6 +943,7 @@ enum pagetype { > > PG_hugetlb = 0x04000000, > > PG_slab = 0x02000000, > > PG_zsmalloc = 0x01000000, > > + PG_unaccepted = 0x00800000, > > PAGE_TYPE_BASE = 0x80000000, > > @@ -1076,6 +1077,8 @@ FOLIO_TEST_FLAG_FALSE(hugetlb) > > PAGE_TYPE_OPS(Zsmalloc, zsmalloc, zsmalloc) > > +PAGE_TYPE_OPS(Unaccepted, unaccepted, unaccepted) > > I'm sure you're able to come up with some documentation ;) Will do. > > + > > /** > > * PageHuge - Determine if the page belongs to hugetlbfs > > * @page: The page to test. > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index 90a1f01d5996..a35efb114496 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -6972,6 +6972,7 @@ static bool try_to_accept_memory_one(struct zone *zone) > > account_freepages(zone, -MAX_ORDER_NR_PAGES, MIGRATE_MOVABLE); > > __mod_zone_page_state(zone, NR_UNACCEPTED, -MAX_ORDER_NR_PAGES); > > + __ClearPageUnaccepted(page); > > spin_unlock_irqrestore(&zone->lock, flags); > > accept_page(page, MAX_PAGE_ORDER); > > @@ -7030,6 +7031,7 @@ static bool __free_unaccepted(struct page *page) > > list_add_tail(&page->lru, &zone->unaccepted_pages); > > account_freepages(zone, MAX_ORDER_NR_PAGES, MIGRATE_MOVABLE); > > __mod_zone_page_state(zone, NR_UNACCEPTED, MAX_ORDER_NR_PAGES); > > + __SetPageUnaccepted(page); > > spin_unlock_irqrestore(&zone->lock, flags); > > if (first) > > At the point PG_unaccepted is set/cleared, we don't have another type set, > right? (IOW, PG_buddy is only set after we cleared PG_unaccepted) Right. PG_buddy is set after we clear PG_unaccepted. There's brief period when the page is under accept when PG_unaccepted already cleared, but PG_buddy is not yet set. But I don't think it can be problematic. -- Kiryl Shutsemau / Kirill A. Shutemov