All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: linux-mm@kvack.org
Cc: Michal Hocko <mhocko@suse.com>,
	linux-pm@vger.kernel.org, pv-drivers@vmware.com,
	linux-doc@vger.kernel.org, kexec-ml <kexec@lists.infradead.org>,
	linux-kernel@vger.kernel.org,
	Matthew Wilcox <willy@infradead.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
	devel@linuxdriverproject.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH v2 1/8] mm: balloon: update comment about isolation/migration/compaction
Date: Thu, 22 Nov 2018 11:06:20 +0100	[thread overview]
Message-ID: <20181122100627.5189-2-david__1695.96644486791$1542881123$gmane$org@redhat.com> (raw)
In-Reply-To: <20181122100627.5189-1-david@redhat.com>

Commit b1123ea6d3b3 ("mm: balloon: use general non-lru movable page
feature") reworked balloon handling to make use of the general
non-lru movable page feature. The big comment block in
balloon_compaction.h contains quite some outdated information. Let's fix
this.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 include/linux/balloon_compaction.h | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/include/linux/balloon_compaction.h b/include/linux/balloon_compaction.h
index 53051f3d8f25..cbe50da5a59d 100644
--- a/include/linux/balloon_compaction.h
+++ b/include/linux/balloon_compaction.h
@@ -4,15 +4,18 @@
  *
  * Common interface definitions for making balloon pages movable by compaction.
  *
- * Despite being perfectly possible to perform ballooned pages migration, they
- * make a special corner case to compaction scans because balloon pages are not
- * enlisted at any LRU list like the other pages we do compact / migrate.
+ * Balloon page migration makes use of the general non-lru movable page
+ * feature.
+ *
+ * page->private is used to reference the responsible balloon device.
+ * page->mapping is used in context of non-lru page migration to reference
+ * the address space operations for page isolation/migration/compaction.
  *
  * As the page isolation scanning step a compaction thread does is a lockless
  * procedure (from a page standpoint), it might bring some racy situations while
  * performing balloon page compaction. In order to sort out these racy scenarios
  * and safely perform balloon's page compaction and migration we must, always,
- * ensure following these three simple rules:
+ * ensure following these simple rules:
  *
  *   i. when updating a balloon's page ->mapping element, strictly do it under
  *      the following lock order, independently of the far superior
@@ -21,19 +24,8 @@
  *	      +--spin_lock_irq(&b_dev_info->pages_lock);
  *	            ... page->mapping updates here ...
  *
- *  ii. before isolating or dequeueing a balloon page from the balloon device
- *      pages list, the page reference counter must be raised by one and the
- *      extra refcount must be dropped when the page is enqueued back into
- *      the balloon device page list, thus a balloon page keeps its reference
- *      counter raised only while it is under our special handling;
- *
- * iii. after the lockless scan step have selected a potential balloon page for
- *      isolation, re-test the PageBalloon mark and the PagePrivate flag
- *      under the proper page lock, to ensure isolating a valid balloon page
- *      (not yet isolated, nor under release procedure)
- *
- *  iv. isolation or dequeueing procedure must clear PagePrivate flag under
- *      page lock together with removing page from balloon device page list.
+ *  ii. isolation or dequeueing procedure must remove the page from balloon
+ *      device page list under b_dev_info->pages_lock.
  *
  * The functions provided by this interface are placed to help on coping with
  * the aforementioned balloon page corner case, as well as to ensure the simple
-- 
2.17.2


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  parent reply	other threads:[~2018-11-22 10:06 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 10:06 [PATCH v2 0/8] mm/kdump: allow to exclude pages that are logically offline David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 1/8] mm: balloon: update comment about isolation/migration/compaction David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand [this message]
2018-11-22 10:06 ` [PATCH v2 2/8] mm: convert PG_balloon to PG_offline David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 3/8] kexec: export PG_offline to VMCOREINFO David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2019-03-11  9:04   ` Dave Young
2019-03-11  9:04   ` Dave Young
2019-03-11  9:04     ` Dave Young
2019-03-11  9:55     ` David Hildenbrand
2019-03-11  9:55     ` David Hildenbrand
2019-03-11  9:55       ` David Hildenbrand
2019-03-11 10:04       ` Dave Young
2019-03-11 10:04         ` Dave Young
2019-03-11 10:04       ` Dave Young
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 4/8] xen/balloon: mark inflated pages PG_offline David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-23 13:41   ` Juergen Gross
2018-11-23 13:41   ` Juergen Gross
2018-11-23 13:41     ` Juergen Gross
2018-11-23 13:41     ` Juergen Gross
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 5/8] hv_balloon: " David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 6/8] vmw_balloon: " David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 7/8] PM / Hibernate: use pfn_to_online_page() David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06 ` [PATCH v2 8/8] PM / Hibernate: exclude all PageOffline() pages David Hildenbrand
2018-11-22 10:06   ` David Hildenbrand
2018-11-22 10:06 ` David Hildenbrand
2018-11-22 10:09 ` [PATCH v2] makedumpfile: exclude pages that are logically offline David Hildenbrand
2018-11-22 10:09 ` David Hildenbrand
2018-11-22 10:09   ` David Hildenbrand
2018-11-27 16:32   ` Kazuhito Hagio
2018-11-27 16:32     ` Kazuhito Hagio
2018-11-27 16:32     ` Kazuhito Hagio
2019-03-07  8:41     ` David Hildenbrand
2019-03-07  8:41     ` David Hildenbrand
2019-03-07  8:41       ` David Hildenbrand
2019-03-11 16:40       ` Kazuhito Hagio
2019-03-11 16:40         ` Kazuhito Hagio
2019-03-11 16:40       ` Kazuhito Hagio
2018-11-27 16:32   ` Kazuhito Hagio
2019-02-27  5:32 ` [PATCH v2 0/8] mm/kdump: allow to " Dave Young
2019-02-27  5:32   ` Dave Young
2019-02-27  5:32   ` Dave Young
2019-02-28 19:45   ` Andrew Morton
2019-02-28 19:45   ` Andrew Morton
2019-02-28 19:45     ` Andrew Morton
2019-02-28 19:45     ` Andrew Morton
2019-02-28 19:54     ` Boris Ostrovsky
2019-02-28 19:54     ` Boris Ostrovsky
2019-02-28 19:54       ` Boris Ostrovsky
2019-02-28 19:54       ` Boris Ostrovsky
2019-03-04  6:21     ` Dave Young
2019-03-04  6:21     ` Dave Young
2019-03-04  6:21       ` Dave Young
2019-03-04  6:21       ` Dave Young
2019-03-04  7:14       ` Juergen Gross
     [not found]       ` <20190304062118.GA31037-0VdLhd/A9Pl+NNSt+8eSiB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2019-03-04  7:14         ` Juergen Gross
2019-03-04  7:14           ` Juergen Gross
2019-03-04  7:14           ` Juergen Gross
2019-02-27  5:32 ` Dave Young

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='20181122100627.5189-2-david__1695.96644486791$1542881123$gmane$org@redhat.com' \
    --to=david@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=devel@linuxdriverproject.org \
    --cc=kexec@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mhocko@suse.com \
    --cc=mst@redhat.com \
    --cc=pv-drivers@vmware.com \
    --cc=willy@infradead.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.