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 73516C83F05 for ; Fri, 4 Jul 2025 10:26:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 78DB46B802D; Fri, 4 Jul 2025 06:26:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 73EDD6B800A; Fri, 4 Jul 2025 06:26:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5DF066B802D; Fri, 4 Jul 2025 06:26:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4BD386B800A for ; Fri, 4 Jul 2025 06:26:11 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2A621B7D6F for ; Fri, 4 Jul 2025 10:26:11 +0000 (UTC) X-FDA: 83626202142.09.79433AE Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf14.hostedemail.com (Postfix) with ESMTP id 0F4BD100006 for ; Fri, 4 Jul 2025 10:26:08 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BDTDuX30; spf=pass (imf14.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.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=1751624769; 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=NMn47cTQVrdLq38vaZj//jvNYLvXfWrM/D4yqUNgXk8=; b=i53XbQ4TeYE5EffTJhgnqeGl5yaa9iDjuL87q2atkHaXFsF59MNuv0Vzg7zs2gUm3pZX+H qfCluxx/ptxq2Y+EiJm53HK33o5iKqgKIWA7RpVWa5f1pAbsKoPhDQRur0QX2VIW6h8Gnn hWsiJSxdk7eC1a4h+2d86BS2xryGXhc= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BDTDuX30; spf=pass (imf14.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.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=1751624769; a=rsa-sha256; cv=none; b=Y/C8CozMAokHw1zo5XrldAO0e4BX/uZGQgMaB7IzHpdcK4FWh/5TuqhHmKDm1KVhYVsZ/F JETrOZZ5ZWEsi0S1+97mTw6MeF02TZxMBiRa2Pkvmkc+aH/9TLVBX3PiDuXW9LB7QzOwyQ imTweX5zeKYQ1ofs7OhKEm7OILBZyps= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1751624768; 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=NMn47cTQVrdLq38vaZj//jvNYLvXfWrM/D4yqUNgXk8=; b=BDTDuX30hBswVh5xV21IwPyBQ4z+pwdDCS4AULT/Lp1uG2a9mCVAWDOrF8T+5BGF7otl9I pWFP8xxTM4FZXYf8e0MBXuhUwx46bp/KBTQGcbyH38UHlyTSLTxSRBYuu6eDDiOjAGonDZ e2dDElU5j4mSi1IHOX8wjEGYRh0vizo= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-488-wZL1NuKpPsGr-ynLV3Uf6A-1; Fri, 04 Jul 2025 06:26:07 -0400 X-MC-Unique: wZL1NuKpPsGr-ynLV3Uf6A-1 X-Mimecast-MFC-AGG-ID: wZL1NuKpPsGr-ynLV3Uf6A_1751624766 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4530ec2c87cso6379105e9.0 for ; Fri, 04 Jul 2025 03:26:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751624766; x=1752229566; 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=NMn47cTQVrdLq38vaZj//jvNYLvXfWrM/D4yqUNgXk8=; b=IyXAc1pDen7tixiOzsXN7dhdpmw9jIyGYcYk4cd+zSFNvWtBlysEr11IFMLIHB115b pqM7v+NE9kWkLRSsZeTBpdw4NkmOIpyw+dWIjhVsEUxOwJB7ffkFY2LHLL4zUXKDG/mc cUSxI4p/hWF/6VuI+0fCBwn3DbkByoyfXSlI32ZU9+yHym7YXi1InDF/XSY4+3PpjLVJ BfAztvL/j0TSzKwBkiVDojOg+stX5nHdv5TUflZy6MeforbaoB+M+pz0/oc6KhcsSDCP 6jtbclR3VtNmCdNIX51JgemrBmcnZOM5huAxzC1C1XRKcmB2fAn3OiakXnl3Iuhp5sOR nXcw== X-Gm-Message-State: AOJu0YxUnB+Bxgz5pmv+TICPV24Kwx+I9GeHpbFalk9t8ljj4bJFEMCb UI3bjV3qVU1mRzgrycxnYAYi4T3JaTsjWHW6c+O2kCz6tGjBdyrP/NyAi/KLnVw408/MmGTpVVc NFmDOe6HDmWPGdvEunGejN6pbdyH2QVtaXgOF92MXqpwFIyfVkboL X-Gm-Gg: ASbGncvMyj0gJgV6ubohAev9IURaDyBug1VgCcE3BmG+y9SGDVIY/2G3PBOHff36Rq8 TSIzhZFcW0XvDUQQLzEOBgmaVfri5Wsmy3wX7SeLjcP4vdnth6ubYAk8/Anu/pwlXB8ypG9h5fW 4ibKtcEELjFEZyp+byDcsHtZS3NPezK3An+ysMFCNWUwx7Iamdlu4jG62lfCoOAqloxDc8h8dQc yQzaSscQhZDYvpZ723J6rkT1+49Ld0FNLPmFjz57PWAUsM2sYgtPHMUR4pWgpjKX/OND7iH78ZT WLPV9CNNPOKMtBgEPVtlmMxhSMzDnEVpcMNx4TSjoZEB6B9vy6ZiZ+WsqoF1cKEMHSjKH7ZoBUi CUugYKQ== X-Received: by 2002:a05:600c:34d2:b0:441:b3eb:574e with SMTP id 5b1f17b1804b1-454b306a0efmr19575805e9.5.1751624765957; Fri, 04 Jul 2025 03:26:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHOOTyF2MeOIC1dyzcwecIwxCxQh4QIfn5IAcyJ3Cqp147OZBgMH5DYs267rEpv1i04qDIM8Q== X-Received: by 2002:a05:600c:34d2:b0:441:b3eb:574e with SMTP id 5b1f17b1804b1-454b306a0efmr19575125e9.5.1751624765503; Fri, 04 Jul 2025 03:26:05 -0700 (PDT) Received: from localhost (p200300d82f2c5500098823f9faa07232.dip0.t-ipconnect.de. [2003:d8:2f2c:5500:988:23f9:faa0:7232]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-454b1628ff9sm22617005e9.11.2025.07.04.03.26.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Jul 2025 03:26:05 -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 v2 13/29] mm/balloon_compaction: stop using __ClearPageMovable() Date: Fri, 4 Jul 2025 12:25:07 +0200 Message-ID: <20250704102524.326966-14-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250704102524.326966-1-david@redhat.com> References: <20250704102524.326966-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 6FYAdigsOlgGRAX_m_MCKk4iKM8Ry6jzE1EeNImYYq8_1751624766 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Stat-Signature: stu7zjgh34856877wggk6onig1typ1jx X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 0F4BD100006 X-HE-Tag: 1751624768-306816 X-HE-Meta: U2FsdGVkX1/6DHgA75ZyUyVIL9B6xNh7vD3xRRcRZsLHf+DW3UkU45/xQ9mkL2C6VRR3mHJnuK5uCjpsXO79OVoA2sopGQODXhJ5CYQpsfsGxWI8pDGjyH6lEUAjCbsRKvh1bpWNCd8nhm6cqDQk+logOfi+gRSIqPzpfJ0FLzHvbFnjiM1cyeIdGa8ciCjYASuVs/aeLrmCW7KSHL9ESJmBO5AgEfY1KazXkxw5r7uccOIkJOLbaBbtQEfjaNswBWbMirFgR2m8LQSK9pp+chV8LjkMA8fttbaECioyoILUJI6mU1mUwksNYvrQDB/L3gEW9DVE78KQzJ0sgz3XhRJwTnGDIOUqY5aQlMckOFcNyhi4EW8Q8lGyTTa63MRj8OZyGv4UHcfld2QW0HJyCAJYYcHqor9/7mv86t5vcdXIsY49OmLakJA3gxFwYfxX6jiQkLKqCWXNfEZ/3CiBVuUEo0aX4AC+Qa1aDg4k9xOwWXWM16F7mUtWA5hI2GBVFlmHOR6xKZADlH0eVIqN+Um5H8WQO0ahPkNZqmNfslB6q+tyoTSRawH2zz7g90BFKdtwcSn2HAjmZBltFD5orpE3vMlnfCAF/2ry95b3RTX5RMET/wV6bcSFXbJebl/8MsV5MCW0dYjHuQn+WZB9hPYzh0wX8XMkCz9KPChKbRPtBzAEOd36Zpp/W0FXgtBgKUc6q7LyGKHHw6S+sU7oE+7dQFcXy/v5FQOvWDzvbai0GfeuSoYSSi1ctwYey/j1ZAFSu9ChFOOyqp0/tOuPEH3mcEACAawDtxD2EZiJOHUBh/e19KtDdR76l9+ieNCAzaPl9gvFkOdn/nIOy2CGm3+u4s/Gs7Ng9YXvLX3fICBReS1C3lbLxvYH533Eq/NxXDYyayTLUbpJkJC6s4fV6NU0M8QoxtgKKlYtsraBScy7HkKLYc/VUF/ewJdJnjAuUoru+h3SUFM6cVW0KKc 83brm6oU m7d/SP6ko2huwqQAxerlUg6cou2X8KRh2lMyLjZWlaP3OJ2SLiwpYZRYT8WNYAevfPwLP5yFwmFaW27BHDt56d/RJsklrlITcG3W5sHne4/AKI9ZWoIEyU939pawz51G7tPrnzG9aIwVBnbNeM4gSzvLP41iHoK5bdp/8UkLgrqipJdiXlKR1fPOWsMxPNFBVDyrJ9zBNJ+4ZHsktTHWIjReE5E5PwqOxo1IC1Bia7qZ11QpNc17Is8KQXeZmGEdX3Bl93H6Uun4r9w3oq/NwGQ282AxpAx7iILRBa7bkleXdzaYz/o0D/OTvgTFRh/RKlEAJdWYxNt7f1ALEEdQwtlgCay/Eo4Z4DxSOOAip/9tuKmfA1TJ+F2ywnVkYVvsTcWbkRy74xMZahvh8OFLbOUDiuoLA1DWzVeLvr5tvauvoCpFyI6O+YRTYUugVyiYSS7DwtNJXKIjo8YHkauHz7pEoAt2eY7iZkUCK7A7hBUFb3FcWrLIAj/5nc1mBG07ccjeF+Hx1wdanngQ3dp2bi4Z7cwYyS71UNfYOJZITiygMpSBq5lcrD0I4TAqw7FgR6qkanrsj0o8e/DvAU/yIBID2sFY2Fw9/3U8uNU+z5SxEFlFkRwv4BGBih6M3MG7pkdFozJd1u4J9kY7+bjt7AIzEoceEPGcoQhZBPf+EwVBOTwnLQgCCdg/RmA== 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. Reviewed-by: Lorenzo Stoakes 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