linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc.
@ 2018-09-20 17:30 Nadav Amit
  2018-09-20 17:30 ` [PATCH v2 01/20] vmw_balloon: handle commands in a single function Nadav Amit
                   ` (20 more replies)
  0 siblings, 21 replies; 24+ messages in thread
From: Nadav Amit @ 2018-09-20 17:30 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Arnd Bergmann
  Cc: linux-kernel, Xavier Deguillard, Nadav Amit, Michael S. Tsirkin,
	Jason Wang, linux-mm, virtualization

This patch-set adds the following enhancements to the VMware balloon
driver:

1. Balloon compaction support.
2. Report the number of inflated/deflated ballooned pages through vmstat.
3. Memory shrinker to avoid balloon over-inflation (and OOM).
4. Support VMs with memory limit that is greater than 16TB.
5. Faster and more aggressive inflation.

To support compaction we wish to use the existing infrastructure.
However, we need to make slight adaptions for it. We add a new list
interface to balloon-compaction, which is more generic and efficient,
since it does not require as many IRQ save/restore operations. We leave
the old interface that is used by the virtio balloon.

Big parts of this patch-set are cleanup and documentation. Patches 1-13
simplify the balloon code, document its behavior and allow the balloon
code to run concurrently. The support for concurrency is required for
compaction and the shrinker interface.

For documentation we use the kernel-doc format. We are aware that the
balloon interface is not public, but following the kernel-doc format may
be useful one day.

v1->v2:	* Fix build error when THP is off (kbuild)
	* Fix build error on i386 (kbuild)

Cc: Xavier Deguillard <xdeguillard@vmware.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: linux-mm@kvack.org
Cc: virtualization@lists.linux-foundation.org

Nadav Amit (19):
  vmw_balloon: handle commands in a single function.
  vmw_balloon: unify commands tracing and stats
  vmw_balloon: merge send_lock and send_unlock path
  vmw_balloon: simplifying batch access
  vmw_balloon: remove sleeping allocations
  vmw_balloon: change batch/single lock abstractions
  vmw_balloon: treat all refused pages equally
  vmw_balloon: rename VMW_BALLOON_2M_SHIFT to VMW_BALLOON_2M_ORDER
  vmw_balloon: refactor change size from vmballoon_work
  vmw_balloon: simplify vmballoon_send_get_target()
  vmw_balloon: stats rework
  vmw_balloon: rework the inflate and deflate loops
  vmw_balloon: general style cleanup
  vmw_balloon: add reset stat
  mm/balloon_compaction: suppress allocation warnings
  mm/balloon_compaction: list interfaces
  vmw_balloon: compaction support
  vmw_balloon: memory shrinker
  vmw_balloon: split refused pages

Xavier Deguillard (1):
  vmw_balloon: support 64-bit memory limit

 drivers/misc/Kconfig               |    1 +
 drivers/misc/vmw_balloon.c         | 2196 +++++++++++++++++++---------
 include/linux/balloon_compaction.h |    4 +
 include/uapi/linux/magic.h         |    1 +
 mm/balloon_compaction.c            |  142 +-
 5 files changed, 1577 insertions(+), 767 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-09-25 19:56 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-20 17:30 [PATCH v2 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc Nadav Amit
2018-09-20 17:30 ` [PATCH v2 01/20] vmw_balloon: handle commands in a single function Nadav Amit
2018-09-20 17:30 ` [PATCH v2 02/20] vmw_balloon: unify commands tracing and stats Nadav Amit
2018-09-20 17:30 ` [PATCH v2 03/20] vmw_balloon: merge send_lock and send_unlock path Nadav Amit
2018-09-20 17:30 ` [PATCH v2 04/20] vmw_balloon: simplifying batch access Nadav Amit
2018-09-20 17:30 ` [PATCH v2 05/20] vmw_balloon: remove sleeping allocations Nadav Amit
2018-09-20 17:30 ` [PATCH v2 06/20] vmw_balloon: change batch/single lock abstractions Nadav Amit
2018-09-20 17:30 ` [PATCH v2 07/20] vmw_balloon: treat all refused pages equally Nadav Amit
2018-09-20 17:30 ` [PATCH v2 08/20] vmw_balloon: rename VMW_BALLOON_2M_SHIFT to VMW_BALLOON_2M_ORDER Nadav Amit
2018-09-20 17:30 ` [PATCH v2 09/20] vmw_balloon: refactor change size from vmballoon_work Nadav Amit
2018-09-20 17:30 ` [PATCH v2 10/20] vmw_balloon: simplify vmballoon_send_get_target() Nadav Amit
2018-09-20 17:30 ` [PATCH v2 11/20] vmw_balloon: stats rework Nadav Amit
2018-09-20 17:30 ` [PATCH v2 12/20] vmw_balloon: rework the inflate and deflate loops Nadav Amit
2018-09-20 17:30 ` [PATCH v2 13/20] vmw_balloon: general style cleanup Nadav Amit
2018-09-20 17:30 ` [PATCH v2 14/20] vmw_balloon: add reset stat Nadav Amit
2018-09-20 17:30 ` [PATCH v2 15/20] mm/balloon_compaction: suppress allocation warnings Nadav Amit
2018-09-20 17:30 ` [PATCH v2 16/20] mm/balloon_compaction: list interfaces Nadav Amit
2018-09-20 17:30 ` [PATCH v2 17/20] vmw_balloon: compaction support Nadav Amit
2018-09-25 18:15   ` Greg Kroah-Hartman
2018-09-20 17:30 ` [PATCH v2 18/20] vmw_balloon: support 64-bit memory limit Nadav Amit
2018-09-20 17:30 ` [PATCH v2 19/20] vmw_balloon: memory shrinker Nadav Amit
2018-09-20 17:30 ` [PATCH v2 20/20] vmw_balloon: split refused pages Nadav Amit
2018-09-25 18:15 ` [PATCH v2 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc Greg Kroah-Hartman
2018-09-25 19:55   ` Nadav Amit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).