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 75DF1C8302F for ; Mon, 30 Jun 2025 13:01:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6CC976B008A; Mon, 30 Jun 2025 09:01:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A3856B00B8; Mon, 30 Jun 2025 09:01:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BA266B00B9; Mon, 30 Jun 2025 09:01:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4CB2D6B008A for ; Mon, 30 Jun 2025 09:01:00 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 19B4C1A04F7 for ; Mon, 30 Jun 2025 13:01:00 +0000 (UTC) X-FDA: 83612077080.30.CF458EB Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf21.hostedemail.com (Postfix) with ESMTP id D43861C0027 for ; Mon, 30 Jun 2025 13:00:57 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=d0EkiiCJ; spf=pass (imf21.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751288457; 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=rZbSryMy27xk/lWuJyIeQilPAEeTxdVw8qHGMwbITkw=; b=4hq5dZB7Xue5uaEzLhCBa2FqTBpzyxVv25tboSMBFLXUdg17tHevEDi5vcvnx3vmKw61ao VmOZDr93fu6q4LFliLxfoGNaYKeTuL41trz/ZYy/4G8BlH2PQQKjVXptbgA1Ce8q3mGxXm SdOYW0HPzGdQhCwbXMDfqHbsK7V1dZo= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=d0EkiiCJ; spf=pass (imf21.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751288457; a=rsa-sha256; cv=none; b=iNtAhs42ZMQBzwKwUzTa3yrBhbMITf+/m0LKZ54qc4wjzuhcozl9efvsCI+ANjOewgF7+u rSROH6Ui6TqgmZExFOSjprzA5V5HO3TSbxG9m7c+oCP9ioPQs2Vu1INddMOgpAP36wrQ9r nd384Cw+c5Y1KUQDHCpSwcOwVhLAzwo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1751288457; 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=rZbSryMy27xk/lWuJyIeQilPAEeTxdVw8qHGMwbITkw=; b=d0EkiiCJSmsdqAUDn7onNYNtuOPY4McZjuq5xPz3mkGW3ItbkuBPF4o39pDoJbFOWDlF/C kKAlt/5C4MbpZm9CR7HN9IlH3VqVDFAZ9yU2fXxN21eVoxQ6t9fosk/bAPwm7e6qLhIkCV nPu/78BxmR1nmiTkhCs64EuE3J9JeaM= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-163-5Vg2ZCdIMkiwT76rCIB_ZQ-1; Mon, 30 Jun 2025 09:00:54 -0400 X-MC-Unique: 5Vg2ZCdIMkiwT76rCIB_ZQ-1 X-Mimecast-MFC-AGG-ID: 5Vg2ZCdIMkiwT76rCIB_ZQ_1751288454 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-451ecc3be97so19884985e9.0 for ; Mon, 30 Jun 2025 06:00:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751288453; x=1751893253; 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=rZbSryMy27xk/lWuJyIeQilPAEeTxdVw8qHGMwbITkw=; b=TaU1gTppeKR4Blegs/CLZu1E8tVAJKOeuLU9TGM2+ySauTfBij6kAB20fsQ5zb4/6R yoq9tiAZmPiZ9DulEEk4sq1LxF+idyM9GmIPGEubXPj0OaUXrTEIAHS93B9Re8vD9kQ3 4sgo/Sl83HPsEVEaNcSn2eJeBxnwPYiFZIAhie29GKHqhPl+o/pKdRyvH91v6H/wGWIR jgnXSost57svfu41w+hwAKe28ouVD4aGx7FsWMY4U6mIu7aDWvebmE7unvw7wQMB5eDH zskVlickVCgU4EaXkWvU2Cr11knfkuyJCzTSb6YKFeaOWNMVsZ6zbUgV4qMJ3cclw8h4 f1ew== X-Gm-Message-State: AOJu0YxGTWzpCmwc3JvWaV+h0Y9KAGm57FU25YrkWNj/JXh8QaPV4Xvq jz1A6VH7SpkZ7/WtHtPtZn4KwI/hqkLHdUB7hphSN+Tob9DMdJZXUcmV4NATYfTO5Ad3rNEO5Zs pKh4Rya5FiLoC9+aUYI8CfB+KKhLKisSXCBPDHgG9gQUYdP2/V9ry X-Gm-Gg: ASbGncspxS4J0wXVZZ8jG4Qp6oVZqtVbRxGlscUQ92j/1E2cr5or7qwQFz+1GqpnsI/ WfEEcJXcobYPbgPviypHS+qYemK7aaU/e6TWo+J38oS9+WRLWGnJDlijjYIrk9UU0OOmwAEWvTj /LIIRg8y0WdMSHLbv4hkeSRHui4+SW/fRZfpWdFHWT3U03UGoYiKUBm5WKcO1ynz4wxcFa1mLEC FSryvx1who7ZWTkMBeQd8F1bW5i2IAjE5W6Hm5GO8PN2308u7/0UVErVO2rQ0vq2t368OboXltd huKObpVIyGOqcUUBwNfKpagOVK/B1RB/c5VoLHYYiym6M3WtCUGoQ0ubQe1YIlQObwYaSrgHMOh LXECYEPs= X-Received: by 2002:adf:a143:0:b0:3a5:8565:44d1 with SMTP id ffacd0b85a97d-3a8fe8917d5mr8134369f8f.25.1751288451243; Mon, 30 Jun 2025 06:00:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEcHR74Vg3fOLDK1bhOkeMb0O7J5iWXrvKqq6qclu6yGGjB1xdv/xPEmRceAckepewzfNXHQQ== X-Received: by 2002:adf:a143:0:b0:3a5:8565:44d1 with SMTP id ffacd0b85a97d-3a8fe8917d5mr8134296f8f.25.1751288450453; Mon, 30 Jun 2025 06:00:50 -0700 (PDT) Received: from localhost (p200300d82f40b30053f7d260aff47256.dip0.t-ipconnect.de. [2003:d8:2f40:b300:53f7:d260:aff4:7256]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-453823b6d50sm167133055e9.30.2025.06.30.06.00.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Jun 2025 06:00:49 -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 v1 13/29] mm/balloon_compaction: stop using __ClearPageMovable() Date: Mon, 30 Jun 2025 14:59:54 +0200 Message-ID: <20250630130011.330477-14-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250630130011.330477-1-david@redhat.com> References: <20250630130011.330477-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: quOBH8Dj9dR4TAesrcb7mZEg8MHptCm2tuW5jaotQ0c_1751288454 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D43861C0027 X-Stat-Signature: e7zedkx11ackj8ikoha634dj9uuy8xs7 X-HE-Tag: 1751288457-489585 X-HE-Meta: U2FsdGVkX1/pbYwSZh3Kt7SmK7PQyIDFwywf1GucpAZWIw6ySmKZYGoLec1jhBOKBHu8ezcafbep3SKNt2scVaFHIxMuWvD+HJPPmbwKJLYjOATmB/vat34ZsjhfaKVFDNhLLsMsTAhv5cy9wNbucDqEyOoUkTJzSr4Gt+Qeu/bTHUQST4wq2V6nbOkktvYu2BsNPadTL20IpVJswt79TGaILw3IhuSLiIVm5xNiV8ajkSsfxG1GT+KzPQTt5+ksZkH/ayjZZrvFFvKVJObEvlvb2UxGwHQQ8WPwA5OND3G6mNAY+xvCJ2R1YZqdO+e9fR/ulXsmEj7eqxRR7MKCdq4Pebp5S3r83knM/iqJbHgwROzL2O6dQnTmBjBaG3Te0yDfKjQMbKxfiqieQdTAPcUHAv9JtNtH9Aq7Z4lrMq1QD43hdNpyAssz7c0Rh4BnKetYLYXSIRgTDnZ72XVv+Z2zaOgh3WcUKT//YrEUMYn3gaDMQ5p2m22+woFWfgBrSYmTlkDzLGWYvvMM0YiJri6bMYvOhf3DNKh6OU+dC5PM+0lAC6+6uZvNpxKlhjGUYAW3wZsgXntmCrmD8ye9kmuC6pw6b6cyMU3vGd9sTWYPFrJd49y590SQn3lZB+hRy3HkfStkHcaJ3sCyEJExopFbcfdcAhmvLKRwM3c1b5e4GQeSk7GFUiCxXJPkibxWXXKBkz14k9n74R7OP1D4KTfQqeaOHJIy6k4detV9VeXegOrT9k0zwZtQQRgZ0hIHzO7KrjbQBNgRvAJwDe9xDAfoaWOH3TRcIRFmffMmM8OSosYds0HDHwO2MXkfkHptMQGjDKZotsxky2+dsBSXKwVSoXNaRCVzwmy/G9EM82OqmFZY9aa+VKeqKdMKHi/LhlfJXyPqlMAqGRuTWn+CZgrG+9v066G91+xxqXLGuLBqhGZ5ebogvasRXSM+CfgAx7Zw5Ul7MzDd+lxEgBg vH3U2E18 5cBaRcAV9aUO479frszmpHcJG6LlPhMTQdjNX3hxMUdKmvY0zvLGCDPFvwoihZB9kOT17i7Buay91MJfEYtfoWSf4ABAnRps48emFKt8J+GQRUL+raezo7BRTCENN1j9F52mkTLT4BspHwntctDPIBuZmZ+NvS1jS2gF2XxGx0BX34VHmVfJsaJEJvRQcoe1XaGzbYM20vjQJlwBnoiJy5YgNq6ttj/v1/y5Si3gtWwVWHS0Ts6CG8GV2lQkDPDEi/0B5/Odpioe4hT/Xl1YVuRVP2xt7k8UmfMr8w7WPlh0AINLihEq7fvN9z7RoDiavuXy6ci3BxOk8bPkt9lexhu51k41YDLnKbDAJgFdaidb3KH0KhJcCQATLPFb4eII8oEdrrLpOphrSpMcxptsBEvuBvqf4wIElD3/LsBekWRvcKav6gFO9TPDqC8oRBgSNVNVaACxo50WpL9LR9YpWrom58QUbIobQ0xdlzvNZsrQN7Cli0cRKZ2WIYA6eOTh/cV/LHF325pirYVrG2CZQwEWeq/Bi3eXyrEfwtyD+lMiessRSmf92GQzwFTqltFAUGk0Cig0uvkYSVUNdmQsLYNpzQowGcpCZci3WVbZdh4CcHf6wh4XgFl+YpW/TYAPen/7byqF9oSOROnlbly2+L2uIXeHNNdMCvcD5 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 if 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