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 X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DECC6C433E1 for ; Sun, 16 Aug 2020 12:53:49 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9D8B0207FB for ; Sun, 16 Aug 2020 12:53:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="bvbRzc5a" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9D8B0207FB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 2DC7D6B0002; Sun, 16 Aug 2020 08:53:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 28E776B0003; Sun, 16 Aug 2020 08:53:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 154706B0005; Sun, 16 Aug 2020 08:53:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0170.hostedemail.com [216.40.44.170]) by kanga.kvack.org (Postfix) with ESMTP id 008646B0002 for ; Sun, 16 Aug 2020 08:53:48 -0400 (EDT) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id AEB5E3656 for ; Sun, 16 Aug 2020 12:53:48 +0000 (UTC) X-FDA: 77156423736.04.dog16_3e0bbd02700e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin04.hostedemail.com (Postfix) with ESMTP id 811E1800E099 for ; Sun, 16 Aug 2020 12:53:48 +0000 (UTC) X-HE-Tag: dog16_3e0bbd02700e X-Filterd-Recvd-Size: 5504 Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by imf06.hostedemail.com (Postfix) with ESMTP for ; Sun, 16 Aug 2020 12:53:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1597582427; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XGLoJ7O+V6ZZmFm5YMkauKx8SWaJ05qtX0s9I5/GzsQ=; b=bvbRzc5alqvh5sFD0p4+8W789EycvNYX3Z650KgaSPsHqtuY9JUfN0Y4Q3Hb6GFhnkSYVF MuXaqBeOL4e8YD8oK8PtE1lGA57r8BzcOroHwfjHe5hwKSEVj/un2gSqPgqOVtO6XKs4TY 1bDW38WT5EcgNM5pd+yxYQBMACdewhY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-103-kB4Cn_1BNAaaJmFGj8OAbg-1; Sun, 16 Aug 2020 08:53:44 -0400 X-MC-Unique: kB4Cn_1BNAaaJmFGj8OAbg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 36802801A9D; Sun, 16 Aug 2020 12:53:43 +0000 (UTC) Received: from t480s.redhat.com (ovpn-112-43.ams2.redhat.com [10.36.112.43]) by smtp.corp.redhat.com (Postfix) with ESMTP id 108476E72F; Sun, 16 Aug 2020 12:53:33 +0000 (UTC) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: virtualization@lists.linux-foundation.org, linux-mm@kvack.org, David Hildenbrand , Andrew Morton , Baoquan He , Jason Wang , "Michael S. Tsirkin" , Michal Hocko , Mike Kravetz , Mike Rapoport , Mike Rapoport , Pankaj Gupta , Qian Cai Subject: [PATCH v5 0/6] mm / virtio-mem: support ZONE_MOVABLE Date: Sun, 16 Aug 2020 14:53:27 +0200 Message-Id: <20200816125333.7434-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Rspamd-Queue-Id: 811E1800E099 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 Content-Transfer-Encoding: quoted-printable 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: For 5.10. Patch #1-#4,#6 have RBs or ACKs, patch #5 is virtio-mem stuff maintained by me. This should go via the -mm tree. --- When introducing virtio-mem, the semantics of ZONE_MOVABLE were rather unclear, which is why we special-cased ZONE_MOVABLE such that partially plugged blocks would never end up in ZONE_MOVABLE. Now that the semantics are much clearer (and are documented in patch #6), let's support partially plugged memory blocks in ZONE_MOVABLE, allowing partially plugged memory blocks to be online to ZONE_MOVABLE and also unplugging from such memory blocks. This avoids surprises when onlining of memory blocks suddenly fails, just because they are not completely populated by virtio-mem (yet). This is especially helpful for testing, but also paves the way for virtio-mem optimizations, allowing more memory to get reliably unplugged. Cleanup has_unmovable_pages() and set_migratetype_isolate(), providing better documentation of how ZONE_MOVABLE interacts with different kind of unmovable pages (memory offlining vs. alloc_contig_range()). v4 -> v5: - Rename "mm/page_isolation: don't dump_page(NULL) in set_migratetype_isolate()" to "mm/page_isolation: exit early when pageblock is isolated in set_migratetype_isolate()" as I was messing up things while reshuffling patches (dump_page(NULL) could never happen= , only the WARN_ON_ONCE()) -- Clarify in the description that this is currently a cleanup only - "mm: document semantics of ZONE_MOVABLE" -- Clarified in the memory hole case, that kernelcore/movablecore is required to create such rare special cases v3 -> v4: - "mm/page_isolation: drop WARN_ON_ONCE() in set_migratetype_isolate()" -- Fix typo in description - "virtio-mem: don't special-case ZONE_MOVABLE" -- Add more details why we initialli special-cased ZONE_MOVABLE (via MST) - "mm: document semantics of ZONE_MOVABLE" -- Rephrase some parts of documentation (via Mike) v2 -> v3: - "mm: document semantics of ZONE_MOVABLE" -- Fix a typo v1 -> v2: - "mm/page_isolation: don't dump_page(NULL) in set_migratetype_isolate()" -- Move to position 1, add Fixes: tag -- Drop unused "out:" label - "mm/page_isolation: drop WARN_ON_ONCE() in set_migratetype_isolate()" -- Keep curly braces on "else" case - Replace "[PATCH v1 5/6] mm/page_alloc: restrict ZONE_MOVABLE optimizati= on in has_unmovable_pages() to memory offlining" by "mm: document semantics of ZONE_MOVABLE" -- Brain dump of what I know about ZONE_MOVABLE David Hildenbrand (6): mm/page_alloc: tweak comments in has_unmovable_pages() mm/page_isolation: exit early when pageblock is isolated in set_migratetype_isolate() mm/page_isolation: drop WARN_ON_ONCE() in set_migratetype_isolate() mm/page_isolation: cleanup set_migratetype_isolate() virtio-mem: don't special-case ZONE_MOVABLE mm: document semantics of ZONE_MOVABLE drivers/virtio/virtio_mem.c | 47 +++++++------------------------------ include/linux/mmzone.h | 35 +++++++++++++++++++++++++++ mm/page_alloc.c | 22 +++++------------ mm/page_isolation.c | 39 ++++++++++++++---------------- 4 files changed, 66 insertions(+), 77 deletions(-) --=20 2.26.2