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 B2914C3ABDD for ; Tue, 20 May 2025 16:42:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4EFC36B0098; Tue, 20 May 2025 12:42:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C70E6B0099; Tue, 20 May 2025 12:42:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3DDFD6B009A; Tue, 20 May 2025 12:42:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 20A0C6B0098 for ; Tue, 20 May 2025 12:42:24 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D18B1120A44 for ; Tue, 20 May 2025 16:42:23 +0000 (UTC) X-FDA: 83463854166.15.D5AAEB9 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf30.hostedemail.com (Postfix) with ESMTP id 99FC180011 for ; Tue, 20 May 2025 16:42:21 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=h2rKUuBg; spf=pass (imf30.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=1747759341; 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: references:dkim-signature; bh=dMmCTr8FV4camAPV2B6Uv6O4Wah81IfL3gtjzE3sMkA=; b=eCNP31grCiPqSbmJWq3EXHYq6eMoLfeyYoKfcqamNolvKOcZ3Ol/4TUm9zEJQiIgndTAwC Q/acT5u/BcAbpXU5KQ1+6/6FH/XOPpKDstJ+M/w6C4WGns8rd4mnZToPrduMxbOHWjUA6P W9YJTOEAYSo1heNUZPrABGg6tj2QEkU= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=h2rKUuBg; spf=pass (imf30.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=1747759341; a=rsa-sha256; cv=none; b=kcQ+etNmu9DN9+/A6Q0sWEDfIhsBdjg29ein06cyj41Fbym1isBMEmSuyyepYH9c2WIX7I PFklPsezv1PASBjpBuQdLK1lytNXYai9ToAUVOIq2c0OzNaSJw/hz6IXW/IID8WmInfpoz +X5xvMZGenWr8pe6uOExRWXLzce8NiA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747759341; 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; bh=dMmCTr8FV4camAPV2B6Uv6O4Wah81IfL3gtjzE3sMkA=; b=h2rKUuBgund69sF5KlRcTACs78XIk7ibnScsIm+jgThKyoy7Cd0eP5I5MOoyZBf/M4ZR44 80HVQ+qVkQ3GxD3b5m4otngSzjaUCLQBpC0oMRBZgmCCRbPy2dYNbpcjM4wUFlD6bkmF13 GXwAqzCzpA8zecO5jghWW/wW/8bOx1I= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-365-_qzaIvmsOEmAlldlOVBt9w-1; Tue, 20 May 2025 12:42:19 -0400 X-MC-Unique: _qzaIvmsOEmAlldlOVBt9w-1 X-Mimecast-MFC-AGG-ID: _qzaIvmsOEmAlldlOVBt9w_1747759338 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3a36416aef2so1225782f8f.1 for ; Tue, 20 May 2025 09:42:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747759338; x=1748364138; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dMmCTr8FV4camAPV2B6Uv6O4Wah81IfL3gtjzE3sMkA=; b=HZEVtsuzfxTR2HwQMwAu76Z9q3LJVYBtezXAocSxuv3IZGtaB1Xz7mpuLfzkkYIGcX qPYlkbak13p8pfaUJ2uiONQ1O91jr0voD+a4HqvpsNeZGsfZVarrJiPZBtVLxXOER1ub 4hrnZVzyUPZShSo1J+hr9qk9Iu8P/uBPn7o7AV4Pr9bGwMjZ+QclQpJOyGN6ArpTloEz sF9+Em+O6zFu0jDr61hV7cfWse92dM13ODyhqxKZZEe8BIlIQNed/WEP4iYHFw/sH+d4 nXGoV7e33tSUDXlRcYyZAv5UAmOd1GLv9TgiLYY5AAaIE4JIEcmJ0xFqveHvH3fkZpSD 3dqQ== X-Gm-Message-State: AOJu0Yw71XLQ3etD/8G8zsKXgAGRevYatKtQ2aW/qU67rjeWEbSwNdp8 S6KMtMAvKXBE61Eak0UzTEVl93CLVcy5xy3vOUGIJJ8OUkz2Ftf5tb2/hydXLhU8gh0qJVPAKPZ dCJJuM3wzQWjkRwv3B0U/EV/F+DZHG418OGS/GwhRqRCOTu3aQvz6 X-Gm-Gg: ASbGnctB5hqV1mITKjinQiaI0upc/a5xgi3VSB/G8XV8RQP8Aaf4QKnhab0NRWbWv8w MX9WQ107QlGB8A3rd70jNNABsrF0bTIVnPgfkSqgGBBLJBj3nJ1TAd+Bd4ZuQgxY08LgX/xg7lU 2QjNGZ2OVrBzibIMI/cSR/WOqiLKoCavv7HKWTJNRW522wQGlkfhIWYrfi/cnY5Ww4qAnONtxyG b5LLLD8yUddJT7nq+DHc/zcLsXQqgElIdH/tXJuSLoyZ5Ap2oiNBAKhk9hPit/yn6Ela+eMxK69 63VNl7OeFoZ+5xZzQrIK9AQngPfUqETMnucFrSISdQcil1Ey5DpL/WnTISqFdervsVY6TMme X-Received: by 2002:a05:6000:2304:b0:3a3:621a:d3c2 with SMTP id ffacd0b85a97d-3a3621ad425mr10859932f8f.58.1747759338413; Tue, 20 May 2025 09:42:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF01oyCH30NXY3wu6mQba4pmLtfM7r7ivSDHBlg1KpnoWBCJHpNy44l4OgJZ2MH/4+39rTc7g== X-Received: by 2002:a05:6000:2304:b0:3a3:621a:d3c2 with SMTP id ffacd0b85a97d-3a3621ad425mr10859915f8f.58.1747759338012; Tue, 20 May 2025 09:42:18 -0700 (PDT) Received: from localhost (p200300d82f287c00a95eac49f2adab84.dip0.t-ipconnect.de. [2003:d8:2f28:7c00:a95e:ac49:f2ad:ab84]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a35ca889e6sm17013724f8f.71.2025.05.20.09.42.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 20 May 2025 09:42:17 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, virtualization@lists.linux.dev, David Hildenbrand , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Andrew Morton , Oscar Salvador , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan , "Matthew Wilcox (Oracle)" Subject: [PATCH v2 0/1] mm/memory_hotplug: introduce and use PG_offline_skippable Date: Tue, 20 May 2025 18:42:10 +0200 Message-ID: <20250520164216.866543-1-david@redhat.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: lhxOattbFa07GkmUWtmcl8TgJxZs-inwBEw_eKqtn7c_1747759338 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam10 X-Stat-Signature: t7mf96wehbbgprmi5gz579nciwb3hanx X-Rspamd-Queue-Id: 99FC180011 X-Rspam-User: X-HE-Tag: 1747759341-574526 X-HE-Meta: U2FsdGVkX1+DLWekbiFAepAKiMla8aKGESWN7Koj0aQYphz/zMwBnkZi/Y1puW92E6xCNquigsm7grusULNnnbEcHcsCwHDKYODUZ0GfRfvHtXL8xBsuFRbJQIxhwxjzUiqxFoLMfJbGYdxFm1KZE2OpxgSi6Pev6NwmFmNiTKxkILxzwb/bueUUaBGih9lSUxOBXJuQc8/36gzqOs241fDSzXLz8QjRdlC5ZVm7mOmRjYvC2AzmLe0dMn65pZkg8k/vOU+flt4JuQrhrJUrScXvgINzGMv0bhbImdknT21f8HxRMXUz7Fvtfd/5xa29teyCzR14qDh1PS3zIw/LTHsmhy4ILlD+PSvjLZ21mOx8rgnaRxvk02eGZxsqzofcx0t7MAkquJvRZKjwYFQ+BgiXZcjSdqfXQKQ89J3LoJq1KnZua63FFox4Dn1amig/zh8OZDcJ3cY4Uaog774rdPiZAMyLKwV7x9h8OBfZRPWf31cLqkwAqGBOO14SCBNvKbqrs8Vvo2ii0DJnip9BFxNMo4jNG6s/5iNdN8RmGsLp84OXYqRIMmF42KpRLorcWX4SHMv7hQ161qNE8Q28+7ssth9rI8nP2Wy31mMWo1rFuEeVLNfMDNcltvG7VNJR08LSFFBeAwsORto36qUGNSXmUKvZntOFL4AcCTqehFbgI4t2T2hWsDs0kRmkn+g/6M2PxBW4CGUlXCnrKa7yfNOj2OQJ15tne+mPsKNItWLtbs0k51aB8QiftwG6RMdGnLTo0QNLc6f3MLsZCAx1gZ3sudrCkL2gIvDTZNIWh3ThqgGULciZNiveLLFIbIFjs0PZpD1xgKx5FTEmrZxmQAclHSEnca4cZFcrWckzYO+rHos+AK/kH8wWFnBpCNevtfiNZCBItwuHfr2VoKRqdqkdWu+rFFA/QW9DxXZcclZ6yBmI3hku1CiKC+aBPAW5GkgeKWh9yyD9vaCRH6t QMStowH6 X8BkZ5IeMii2+aVtwEspAzCUvjhA2zwO1bL+fF8ZRQ6ydwzmy8CKV4kutRX5E5cfT5GEgjzuQzVizDC5uuMO2T0mNvI3w9Uj/BOUf6tqBouy6D/HrmTwMsNCBvVMhGy8JmMvAWPDgyRV2q9OcSsJmGIhWepnJNBoCNg++x6C7z/W3yXQDYncU2tJf8+PcRbFy+JWy/IRgymJMeannP36KN18fCJzkoBXMe7rEDaLuCM2c6SXEaoRy6K/yRca1jiX10Z2Ea50Es1UmlsCyVlDHQMAHmbXP8tSkSB7KtPO8DQDGF4kda4retL6sQhtSUdlVRbuFfilcy4poVMqqok/VbSefmKZxKFL3H2PJncTBsDej1v/xEtpgShC0v3YL9gKtoRBtNC3HrzNTJa5Ody/zZmq/wkAPFKrEEhZlDT+093Wy9ejkgeufkexdDavZz9gQDxpHg7K4E0mEieQTaJ2NKND2csjhYtsGkFkfkUgjQJfpbNvLB+pt0m+oDa0+Fg9kpdlffwKQrduCOHAJVVxrlRyQPt4ujG3GXUVwpMCDkqLk3XJ5Q4GT7Jou4y4uvQZBLtg2+q/UKq8CFhmaMX6Qzm5GBoGkTVTFEzWYu2yedMqwi/ZHJmXm9W3gSKokHADBYj/YeyPnc/ULNrEtrGPSZ3A0hQUnc+viWWRM2v6VfaksDNMwzLn8kejsf77RSdP9X/j3zHsiMd3jb/qE+sfEUybMnwdQZN6ik7AlioSN0/6j8cFm25m1DRM52RU1DX/ZCuIPK9SU9gOQVWQ+6mcnhjA4l/ON0oa2VBqJTu3tnAHN1/s1M8EiNSqp+gwCeHIZ+ovCo1EhzT1QtraVrDR4yxxMiaxE1vmCIPsAf6jqVsQBtwg= 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: This is a requirement for making PageOffline pages not have a refcount in the long future ("frozen"), and for reworking non-folio page migration in the near future. I have patches mostly ready to go to handle the latter. For turning all PageOffline() pages frozen, the non-folio page migration and memory ballooning drivers will have to be reworked first, to no longer rely on the refcount of PageOffline pages. Introduce PG_offline_skippable that only applies to PageOffline() pages -- of course, reusing one of the existing PG_ flags for now -- and convert virtio-mem to make use of the new way: to allow for skipping PageOffline pages during memory offlining, treating them as if they would not be allocated. Note that the existing mechanism relied on the driver (virtio-mem) dropping its reference during MEM_GOING_OFFLINE, which is complicated and not compatible with the concept of frozen pages (no refcount). Tested with virtio-mem on x86, including partially hotplugging a memory block (hotplugging 64MiB with a 128 MiB memory block size), and repeatedly onlining+offlining the memory block. Also tested that forced driver unloading with partially plugged memory blocks keeps working as is. Cc: David Hildenbrand Cc: "Michael S. Tsirkin" Cc: Jason Wang Cc: Xuan Zhuo Cc: "Eugenio Pérez" Cc: Andrew Morton Cc: Oscar Salvador Cc: Vlastimil Babka Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Brendan Jackman Cc: Johannes Weiner Cc: Zi Yan Cc: "Matthew Wilcox (Oracle)" v1 -> v2: * Handle forced driver unloading of virtio-mem: clear the flag * Added a comment for a PageOfflineSkippable check * Added more details to the patch description * Drop patch #2 ("mm/memory_hotplug: remove -EBUSY handling from scan_movable_pages()") David Hildenbrand (1): mm/memory_hotplug: PG_offline_skippable for offlining memory blocks with PageOffline pages drivers/virtio/virtio_mem.c | 141 ++++++++---------------------------- include/linux/page-flags.h | 29 ++++++-- mm/memory_hotplug.c | 17 +++-- mm/page_alloc.c | 8 +- mm/page_isolation.c | 21 ++---- 5 files changed, 74 insertions(+), 142 deletions(-) -- 2.49.0