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 D4208C71157 for ; Wed, 18 Jun 2025 17:41:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D8A36B00B7; Wed, 18 Jun 2025 13:40:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 53A926B00B8; Wed, 18 Jun 2025 13:40:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2A2316B00B9; Wed, 18 Jun 2025 13:40:58 -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 164506B00B7 for ; Wed, 18 Jun 2025 13:40:58 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id DF5AA120839 for ; Wed, 18 Jun 2025 17:40:57 +0000 (UTC) X-FDA: 83569236954.24.F7171F4 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf29.hostedemail.com (Postfix) with ESMTP id A4E19120006 for ; Wed, 18 Jun 2025 17:40:55 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=IACgsbmi; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf29.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750268455; a=rsa-sha256; cv=none; b=f5+oHP9RtsV/CNkupozYBu624q9gOayR+QKYkjaX3374Q/w2i73hzetaYRfHlswql10mLQ SvL1Iql8ZspLJB1cHLHLLtmRAJlsN4ZbFWxEZH6af0BXTBGBWq1Ok9ilDayJQqn5yAcVCD e6Tp9iV+5Rv8vkWfmbGbRwFYrc+hMK0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=IACgsbmi; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf29.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750268455; 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=l6C8lbjEXu6LV6W+fOxtWyWYf418kuz/nIG8TPoHlVI=; b=jRsRziiZS1dXThdp+WhxMVIT/nC+PC7ZWPyR7cnNtNZ8mcg1cAQz2f0DbKYMkDrrVWG5iB 7eeT9hOPvAK+jYDVr9QnB4XPCC1CCcwEzpt8CT8xIPfkKOD9XVR97tNqjbwMWIyQ/2e8Gh wBN/LtxiRmWayNiFL6Ik/miRdPsyiyQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1750268455; h=from:from: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; bh=l6C8lbjEXu6LV6W+fOxtWyWYf418kuz/nIG8TPoHlVI=; b=IACgsbmiSaQyXiqw3g6dfVpuOnupat2rUCUh2J8930E3tC8oJk7Tn55AqEnNP108ex/Fts X6VnTifqlf1dohS+f4yYdhhN1/fa14giqJJmQjiajRYxP7sWsZRcw/UrbOZtp1ZGkoI3MM qQJ/DYWB7ND06XN4T24jB2gt4qlwSr8= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-644-xHGNUHFkMZuhGv9JsYhSug-1; Wed, 18 Jun 2025 13:40:53 -0400 X-MC-Unique: xHGNUHFkMZuhGv9JsYhSug-1 X-Mimecast-MFC-AGG-ID: xHGNUHFkMZuhGv9JsYhSug_1750268453 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-3a4f6ff23ccso4221912f8f.2 for ; Wed, 18 Jun 2025 10:40:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750268452; x=1750873252; 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=l6C8lbjEXu6LV6W+fOxtWyWYf418kuz/nIG8TPoHlVI=; b=DHx1cVeLksCPMXIjPr+BJOADD4wU8DNIOW3wQQvg69Q6nDHG25R8gpilrE/inuPw0V ehoF8thfgQTrb/iRe8J4cDzwdmqpO9/PbWqhCKOuOo9cjXuggRIZl/nAy+/vao37SlqK 8Wbh9mvQ4na47pyCiU+vTsMOfPHKrtW6tspOPuvBCd7NykpN4h7+0W/4ZZisCx7Zq6WZ aTUdn3ijxEF6DGpO/M5fUekcjvv8rFx/AEkRku13/CLR8kvw0tnn2iBTxyVHcjpW/ngz DJkiY7vjLFcaFW94Cn8cetMOnixSa8uFOqJyJ51xcl6BO//WZ57AWzVc0E8TPBwcfCxk 9uZw== X-Gm-Message-State: AOJu0YxJuCYjYLgjGZpV/T6pF2lRdQPLwH8CkKuN6D6lO618TdoiUaaH x0RfijvT7+o8/8lfG/jLk9mxfLSGSvYGQCCrLbwliTfZCZYNZQeGOAs45pm9fpO6AU/UTTx2Kgk +Dkh7RwDwQOtVNIJj9f2gXkyc7IsV7NzN8bm4SsiLOMwrcoyAvDCw X-Gm-Gg: ASbGncvS++iv+cIg4WOxkp5QY1Ix2YLIAXh+hRZu8VoOnf0PrD9AbOwr/BhLOj1ITJW iwKXvrZIUwrbws9IpCxDiGTTtoE8z/5l7oV85CrIDrxbpjTpYLQ8FJMWpUle2RCn1kS808obf8c QEEQVVOh/8ymVkH8Zsp830L6xiqu7NXuhlq1DkpFjp5qddL3aiuagp1r6KsUhLeYhdbODcoGb7g vAjsJyauXC5I314sjGSawRDnABpaEPKOFplbmlpMozRoXHrkA+u/zazN8yesf83MnbHz4YNTOeh 3ChSYMsahIRMO4U+ncIsbJjFTgFVdSZ6wG06T47NW1xHV2Z5eLua/uhGWr3i4UzMci+nmAs8EDR OwCfESg== X-Received: by 2002:a5d:64ce:0:b0:3a4:f513:7f03 with SMTP id ffacd0b85a97d-3a572e8bfb1mr13954301f8f.44.1750268452297; Wed, 18 Jun 2025 10:40:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG4X4ziwIkhys2144e75SHEIZN/Ibpbo9aRHgWcvkByvBS3juQ4aklJtEd9sXicogG+MbEwPQ== X-Received: by 2002:a5d:64ce:0:b0:3a4:f513:7f03 with SMTP id ffacd0b85a97d-3a572e8bfb1mr13954276f8f.44.1750268451787; Wed, 18 Jun 2025 10:40:51 -0700 (PDT) Received: from localhost (p200300d82f2d2400405203b5fff94ed0.dip0.t-ipconnect.de. [2003:d8:2f2d:2400:4052:3b5:fff9:4ed0]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a568b089c2sm17710418f8f.59.2025.06.18.10.40.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Jun 2025 10:40:51 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux.dev, linux-fsdevel@vger.kernel.org, David Hildenbrand , Andrew Morton , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Jerrin Shaji George , Arnd Bergmann , Greg Kroah-Hartman , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Alexander Viro , Christian Brauner , Jan Kara , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , "Matthew Wilcox (Oracle)" , Minchan Kim , Sergey Senozhatsky , Brendan Jackman , Johannes Weiner , Jason Gunthorpe , John Hubbard , Peter Xu , Xu Xin , Chengming Zhou , Miaohe Lin , Naoya Horiguchi , Oscar Salvador , Rik van Riel , Harry Yoo , Qi Zheng , Shakeel Butt Subject: [PATCH RFC 13/29] mm/balloon_compaction: stop using __ClearPageMovable() Date: Wed, 18 Jun 2025 19:39:56 +0200 Message-ID: <20250618174014.1168640-14-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250618174014.1168640-1-david@redhat.com> References: <20250618174014.1168640-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 3YDm1o7c3C8BpMfqc_uNBMyOT4dtzr2iWbflgGmaIRs_1750268453 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Queue-Id: A4E19120006 X-Rspamd-Server: rspam10 X-Stat-Signature: ftaqug8144stnd9f5eik4ieikfof6uhh X-HE-Tag: 1750268455-987625 X-HE-Meta: U2FsdGVkX18rgW2VJxBwPgCsbWum7Il5YM325XTTcFr2Q5MCsvarxitgyOrKEz6utXFUIjxqFVtHlnb83d+CyuqVDOjySo+oneUuGYC0V4Rorfceasxy3zMoqa3KP3ZMX1y4xdIigp567RFOjDU6HozYkr9jiIu0VMPheOROd+VAL76CWUPh5cafmFDm+ncNTFdtRMKXaTOkL0bT4L3SUmCCJh6PSWWO6inJKZIRsOWQwJQLjtXjwa9/XptuYJ15INeAAM/ZVSFUZY+zw1CTZTOl1Nd9QI1L+vfgiQA8cAqI3d3WvK6Do4gcSaoD2DQBQIgd5cgr5swdRIVqSfExZ45f/HIhS7eC5YzVKA6j9/GaW4F7HdXNlqjIL5QgF+NKOHjSiPmq7vLX5r33vMVSNKoKzq+jdczIj6vHJ83iabfRAtbTDFc01hKLgSnsbzLEhf3K+TEgCnCSmOFWwFaDAKjyQ4l8HLYh/MF7QYLRlXpMlwIxJ05HOewPdUdKQH1VJg7Iq6ll4+/ssRanRqIetCfaXz+sF92VPgFOTeIJa5CaLc7I/f0CBdvvXtRdU8o/6dZBmR2l45QbQ0zTxALxES6CaU1p2XRdePRcEYgoegBCWYHfTa7UHVywbs3zc/zzJIo/0gv0THfL0oeD/umn6B3cseMo2aiHK2wusTwNmVpnsXHBMtkGXOYfgcmsBnduvguEZgfgY5VS2jc7lI0w4JNiYc4M3Gze4i20JNRtirV2lk7RTIwrNFuTe5JazIIZm068JLKqtOqNZXsma8CHg6FfEKTL/nRamBPOaxu0+NlzKz3nkTlFoFmkWKDnhR6Y5Mc037kqf05fVOQ9wCYj+GIiMPJ3EUdbouVLknwkUHCCSCk68lxWNGOW8q9bLA9jclvwTlY4RnkDe7JnI9oGNJTdEd8d+kntxzNVnwd2FO8IPVRT5FnI4qVs4heeBPI3kDrFaajnAkQ/0oEPDbu PoTX+vWS G4x5dUrVwgsQrk9dmRWmFMh9qL01p13hhSWz8OIB/re1dDfM/bCpEPRkPB9/PQj4lelmberjvcyKu34Y/y/87A5GoQ9gpj8L1BzG5oC+PPKdSpgebBdgsVdhuyEDUnnBylberpM4t57NMmKoCsokn/Rq+JDb5+k5g4nSZOZAhPzqar4FYDpUNvhW1NC6Ux3+gV3nNdlQdsZLSLn6QroIGvHhKDmPQwqiiYX76l54R1ysfcJbDbTX8MlS8zhnRmKNNdYM0fcHhbdJbA5RBQivBbjzPfCUU1+DGR061UFCGNcUT0hJ/KucLjAAW5JUT2doB/4uQugqIM/YrnYCPRnBtAQRHsQx9hGFI3HeQ3PoKKgqvHqL2dVoL8n4lq4HfNITuHu6Ocyt2i7YP0OOzmFb3kGsYLq1M2cdcltzCzhG+VajYmqvmdW4tskbKnRQwWW2tBQjJG7ZZdsn2KVUKnQbWPBc4fAlYb1BmF+3xyBZcldTYgCgAb6qEaZberbAezMUOZY7LjjAJ1TdWKVk8UmzGu3dEjmNfLOF/WojL5d5HrsATH7llK//UEoBWWsq2UHoe1+43TDZrSO3Emr9nV06Sj5GjvsgVKk73wOfa 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: We can just look at the balloon device (stored in page->private), to see of the page is still part of the balloon. As isolated balloon pages cannot get released (they are taken off the balloon list while isolated), we don't have to worry about this case in the putback and migration callback. Add a WARN_ON_ONCE for now. Signed-off-by: David Hildenbrand --- include/linux/balloon_compaction.h | 4 +--- mm/balloon_compaction.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/linux/balloon_compaction.h b/include/linux/balloon_compaction.h index bfc6e50bd004b..9bce8e9f5018c 100644 --- a/include/linux/balloon_compaction.h +++ b/include/linux/balloon_compaction.h @@ -136,10 +136,8 @@ static inline gfp_t balloon_mapping_gfp_mask(void) */ static inline void balloon_page_finalize(struct page *page) { - if (IS_ENABLED(CONFIG_BALLOON_COMPACTION)) { - __ClearPageMovable(page); + if (IS_ENABLED(CONFIG_BALLOON_COMPACTION)) set_page_private(page, 0); - } /* PageOffline is sticky until the page is freed to the buddy. */ } diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c index ec176bdb8a78b..e4f1a122d786b 100644 --- a/mm/balloon_compaction.c +++ b/mm/balloon_compaction.c @@ -206,6 +206,9 @@ static bool balloon_page_isolate(struct page *page, isolate_mode_t mode) struct balloon_dev_info *b_dev_info = balloon_page_device(page); unsigned long flags; + if (!b_dev_info) + return false; + spin_lock_irqsave(&b_dev_info->pages_lock, flags); list_del(&page->lru); b_dev_info->isolated_pages++; @@ -219,6 +222,10 @@ static void balloon_page_putback(struct page *page) struct balloon_dev_info *b_dev_info = balloon_page_device(page); unsigned long flags; + /* Isolated balloon pages cannot get deflated. */ + if (WARN_ON_ONCE(!b_dev_info)) + return; + spin_lock_irqsave(&b_dev_info->pages_lock, flags); list_add(&page->lru, &b_dev_info->pages); b_dev_info->isolated_pages--; @@ -234,6 +241,10 @@ static int balloon_page_migrate(struct page *newpage, struct page *page, VM_BUG_ON_PAGE(!PageLocked(page), page); VM_BUG_ON_PAGE(!PageLocked(newpage), newpage); + /* Isolated balloon pages cannot get deflated. */ + if (WARN_ON_ONCE(!balloon)) + return -EAGAIN; + return balloon->migratepage(balloon, newpage, page, mode); } -- 2.49.0