On 2020-08-28 17:45:26, CezarCraciunoiu <cezar.craciunoiu@xxxxxxxxx> wrote:
From: Cezar Craciunoiu
Hello to whoever is reading this.
This is my version of the memory ballooning patch two people added around
one year ago. This patch structures the code that they worked on and
separates it in different files, based on the content. This, along with
the additions brought to the Makefile and Config files, fixed one of their
issues mentioned in the cover letter: working with the Unikraft
build system.
Also, more than a couple of bugs were fixed, along with coding style fixes,
to ensure that the reviewing process takes as little time as possible.
Lastly, and maybe the most important part, the KVM Memory Balloon works in
any circumstances, handling malloc/free calls with
no noticeable slowdowns. Xen should also work, but the way the interaction
with it is done, made testing the balloon for it pretty hard.
Unfortunately, right now, the Linuxu implementation does not exist,
but it does not hinder the normal execution of applications.
The code could be revisited when a stable version of mmap/munmap is
released (if I understood correctly, right now it is just a "trick"
to fool Go).
Thank you very much for the chance to work on this patch.
I will stay in touch with the reviewer until the patch is brought to a
stable/usable state.
Yours sincerely,
Cezar Craciunoiu
University Politehnica of Bucharest
Cezar Craciunoiu (7):
plat/balloon: Declared balloon interaction functions
plat/drivers/include/balloon: Declared KVM driver inflate/deflate
functions
plat/drivers/balloon: KVM Virtio balloon driver implementation
plat/kvm/balloon: KVM balloon driver calls implementation
plat/linuxu/balloon: Linuxu balloon stubs
plat/xen/balloon: Xen balloon hypervisor calls implementation
lib/ukallocbbuddy: Balloon API calls insertion
include/uk/plat/balloon.h | 64 +++++
lib/ukallocbbuddy/Config.uk | 2 +
lib/ukallocbbuddy/bbuddy.c | 137 ++++++++-
plat/drivers/balloon/balloon_drv.c | 371 +++++++++++++++++++++++++
plat/drivers/include/balloon/balloon.h | 46 +++
plat/kvm/Config.uk | 10 +
plat/kvm/Makefile.uk | 11 +
plat/kvm/balloon.c | 107 +++++++
plat/linuxu/Makefile.uk | 2 +
plat/linuxu/balloon.c | 61 ++++
plat/xen/Makefile.uk | 1 +
plat/xen/balloon.c | 135 +++++++++
12 files changed, 945 insertions(+), 2 deletions(-)
create mode 100644 include/uk/plat/balloon.h
create mode 100644 plat/drivers/balloon/balloon_drv.c
create mode 100644 plat/drivers/include/balloon/balloon.h
create mode 100644 plat/kvm/balloon.c
create mode 100644 plat/linuxu/balloon.c
create mode 100644 plat/xen/balloon.c
--
2.20.1