mbox series

[v3,00/20] vmw_balloon: compaction, shrinker, 64-bit, etc.

Message ID 20180926191336.101885-1-namit@vmware.com (mailing list archive)
Headers show
Series vmw_balloon: compaction, shrinker, 64-bit, etc. | expand

Message

Nadav Amit Sept. 26, 2018, 7:13 p.m. UTC
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(-)

Comments

Nadav Amit Oct. 30, 2018, 4:32 p.m. UTC | #1
From: Nadav Amit
Sent: September 26, 2018 at 7:13:16 PM GMT
> 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.
> 
> 
> 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)
> 

Greg,

I realize you didn’t apply patches 17-20. Any reason for that?

Thanks,
Nadav
Greg Kroah-Hartman Oct. 30, 2018, 4:51 p.m. UTC | #2
On Tue, Oct 30, 2018 at 04:32:22PM +0000, Nadav Amit wrote:
> From: Nadav Amit
> Sent: September 26, 2018 at 7:13:16 PM GMT
> > 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.
> > 
> > 
> > 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)
> > 
> 
> Greg,
> 
> I realize you didn’t apply patches 17-20. Any reason for that?

I have no idea, that was a few thousand patches reviewed ago...

Did I not say anything about this when I applied them?

greg k-h
Nadav Amit Oct. 30, 2018, 4:52 p.m. UTC | #3
From: gregkh@linuxfoundation.org
Sent: October 30, 2018 at 4:51:19 PM GMT
> To: Nadav Amit <namit@vmware.com>
> Cc: Arnd Bergmann <arnd@arndb.de>, Xavier Deguillard <xdeguillard@vmware.com>, LKML <linux-kernel@vger.kernel.org>, Michael S. Tsirkin <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, linux-mm@kvack.org <linux-mm@kvack.org>, virtualization@lists.linux-foundation.org <virtualization@lists.linux-foundation.org>
> Subject: Re: [PATCH v3 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc.
> 
> 
> On Tue, Oct 30, 2018 at 04:32:22PM +0000, Nadav Amit wrote:
>> From: Nadav Amit
>> Sent: September 26, 2018 at 7:13:16 PM GMT
>>> 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.
>>> 
>>> 
>>> 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)
>> 
>> Greg,
>> 
>> I realize you didn’t apply patches 17-20. Any reason for that?
> 
> I have no idea, that was a few thousand patches reviewed ago...
> 
> Did I not say anything about this when I applied them?
> 
> greg k-h

You regarded the magic-number in v2, which I fixed for v3.

Should I resend?
Greg Kroah-Hartman Oct. 30, 2018, 5:05 p.m. UTC | #4
On Tue, Oct 30, 2018 at 04:52:55PM +0000, Nadav Amit wrote:
> From: gregkh@linuxfoundation.org
> Sent: October 30, 2018 at 4:51:19 PM GMT
> > To: Nadav Amit <namit@vmware.com>
> > Cc: Arnd Bergmann <arnd@arndb.de>, Xavier Deguillard <xdeguillard@vmware.com>, LKML <linux-kernel@vger.kernel.org>, Michael S. Tsirkin <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, linux-mm@kvack.org <linux-mm@kvack.org>, virtualization@lists.linux-foundation.org <virtualization@lists.linux-foundation.org>
> > Subject: Re: [PATCH v3 00/20] vmw_balloon: compaction, shrinker, 64-bit, etc.
> > 
> > 
> > On Tue, Oct 30, 2018 at 04:32:22PM +0000, Nadav Amit wrote:
> >> From: Nadav Amit
> >> Sent: September 26, 2018 at 7:13:16 PM GMT
> >>> 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.
> >>> 
> >>> 
> >>> 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)
> >> 
> >> Greg,
> >> 
> >> I realize you didn’t apply patches 17-20. Any reason for that?
> > 
> > I have no idea, that was a few thousand patches reviewed ago...
> > 
> > Did I not say anything about this when I applied them?
> > 
> > greg k-h
> 
> You regarded the magic-number in v2, which I fixed for v3.
> 
> Should I resend?

Please do, but note that I will not be reviewing anything until after
4.20-rc1 is out.

thanks,

greg k-h