From: Nadav Amit <namit@vmware.com> To: Arnd Bergmann <arnd@arndb.de>, <gregkh@linuxfoundation.org> Cc: Xavier Deguillard <xdeguillard@vmware.com>, <linux-kernel@vger.kernel.org>, Nadav Amit <namit@vmware.com>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, <linux-mm@kvack.org>, <virtualization@lists.linux-foundation.org> Subject: [PATCH v3 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc. Date: Wed, 26 Sep 2018 12:13:16 -0700 [thread overview] Message-ID: <20180926191336.101885-1-namit@vmware.com> (raw) 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. v2->v3: * Moving the balloon magic-number out of uapi (Greg) 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 | 2198 +++++++++++++++++++--------- include/linux/balloon_compaction.h | 4 + mm/balloon_compaction.c | 142 +- 4 files changed, 1578 insertions(+), 767 deletions(-) -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Nadav Amit <namit@vmware.com> To: Arnd Bergmann <arnd@arndb.de>, gregkh@linuxfoundation.org Cc: Xavier Deguillard <xdeguillard@vmware.com>, linux-kernel@vger.kernel.org, Nadav Amit <namit@vmware.com>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, linux-mm@kvack.org, virtualization@lists.linux-foundation.org Subject: [PATCH v3 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc. Date: Wed, 26 Sep 2018 12:13:16 -0700 [thread overview] Message-ID: <20180926191336.101885-1-namit@vmware.com> (raw) 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. v2->v3: * Moving the balloon magic-number out of uapi (Greg) 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 | 2198 +++++++++++++++++++--------- include/linux/balloon_compaction.h | 4 + mm/balloon_compaction.c | 142 +- 4 files changed, 1578 insertions(+), 767 deletions(-) -- 2.17.1
next reply other threads:[~2018-09-26 19:15 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-26 19:13 Nadav Amit [this message] 2018-09-26 19:13 ` [PATCH v3 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc Nadav Amit 2018-09-26 19:13 ` [PATCH v3 01/20] vmw_balloon: handle commands in a single function Nadav Amit 2018-09-26 19:13 ` [PATCH v3 02/20] vmw_balloon: unify commands tracing and stats Nadav Amit 2018-09-26 19:13 ` [PATCH v3 03/20] vmw_balloon: merge send_lock and send_unlock path Nadav Amit 2018-09-26 19:13 ` [PATCH v3 04/20] vmw_balloon: simplifying batch access Nadav Amit 2018-09-26 19:13 ` [PATCH v3 05/20] vmw_balloon: remove sleeping allocations Nadav Amit 2018-09-26 19:13 ` [PATCH v3 06/20] vmw_balloon: change batch/single lock abstractions Nadav Amit 2018-09-26 19:13 ` [PATCH v3 07/20] vmw_balloon: treat all refused pages equally Nadav Amit 2018-09-26 19:13 ` [PATCH v3 08/20] vmw_balloon: rename VMW_BALLOON_2M_SHIFT to VMW_BALLOON_2M_ORDER Nadav Amit 2018-09-26 19:13 ` [PATCH v3 09/20] vmw_balloon: refactor change size from vmballoon_work Nadav Amit 2018-09-26 19:13 ` [PATCH v3 10/20] vmw_balloon: simplify vmballoon_send_get_target() Nadav Amit 2018-09-26 19:13 ` [PATCH v3 11/20] vmw_balloon: stats rework Nadav Amit 2018-09-26 19:13 ` [PATCH v3 12/20] vmw_balloon: rework the inflate and deflate loops Nadav Amit 2018-09-26 19:13 ` [PATCH v3 13/20] vmw_balloon: general style cleanup Nadav Amit 2018-09-26 19:13 ` [PATCH v3 14/20] vmw_balloon: add reset stat Nadav Amit 2018-09-26 19:13 ` [PATCH v3 15/20] mm/balloon_compaction: suppress allocation warnings Nadav Amit 2018-09-26 19:13 ` Nadav Amit 2018-09-26 19:13 ` [PATCH v3 16/20] mm/balloon_compaction: list interfaces Nadav Amit 2018-09-26 19:13 ` Nadav Amit 2018-09-28 19:48 ` Nadav Amit 2018-09-28 19:48 ` Nadav Amit 2018-10-17 2:42 ` Nadav Amit 2018-10-17 2:42 ` Nadav Amit 2018-09-26 19:13 ` [PATCH v3 17/20] vmw_balloon: compaction support Nadav Amit 2018-09-26 19:13 ` [PATCH v3 18/20] vmw_balloon: support 64-bit memory limit Nadav Amit 2018-09-26 19:13 ` [PATCH v3 19/20] vmw_balloon: memory shrinker Nadav Amit 2018-09-26 19:13 ` [PATCH v3 20/20] vmw_balloon: split refused pages Nadav Amit 2018-10-30 16:32 ` [PATCH v3 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc Nadav Amit 2018-10-30 16:32 ` Nadav Amit 2018-10-30 16:51 ` gregkh 2018-10-30 16:51 ` gregkh 2018-10-30 16:52 ` Nadav Amit 2018-10-30 16:52 ` Nadav Amit 2018-10-30 17:05 ` gregkh 2018-10-30 17:05 ` gregkh 2018-10-30 17:05 ` gregkh 2018-10-30 16:51 ` gregkh
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=20180926191336.101885-1-namit@vmware.com \ --to=namit@vmware.com \ --cc=arnd@arndb.de \ --cc=gregkh@linuxfoundation.org \ --cc=jasowang@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mst@redhat.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=xdeguillard@vmware.com \ /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: linkBe 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.