Skip to content

RFC kvm: Transcendent Memory (tmem) on KVM

Akshay Karle kvm lkml 1 version In review

Get series with b4
b4 am 1331224181.2585.16.camel@aks

Versions newest first

  1. v1 RFC Latest2 patches 22 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2kvm: host-side changes for tmem on KVM/arch/x86/include/asm/kvm_host.h /arch/x86/kvm/x86.c /drivers/staging/zcache/zcache-main.c+95 -87 replies
2/2kvm: guest-side changes for tmem on KVM/drivers/staging/zcache/Makefile /drivers/staging/zcache/kvm-tmem.c /drivers/staging/zcache/kvm-tmem.h +1 more+413 -15 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC 0/2] kvm: Transcendent Memory (tmem) on KVM

Hi,

We are undergraduate engineering students of Maharashtra Academy of Engineering, Pune, India and we are working on a project entitled 'Transcendent Memory on KVM' as a part of our academics. The project members are:
1. Ashutosh Tripathi
2. Shreyas Mahure
3. Nishant Gulhane
4. Akshay Karle

---
Project Description:
What is Transcendent Memory(tmem in short)?
Transcendent Memory is a memory optimization technique for the virtualized environment. It collects the underutilized memory of the guests and the unassigned(fallow) memory of the host and places it into a central tmem pool. Indirect access to this pool is then provided to the guests. For further information on tmem, please refer the article on lwn by Dr. Dan Magenheimer:
http://lwn.net/Articles/454795/

Since kvm is one of the most popular hypervisors available, we decided to implement this technique for kvm.

---
kvm-tmem Patch details:
This patch adds appropriate shims at the guest that invokes the kvm hypercalls, and the host uses zcache pools to implement the required functions.

To enable tmem on the 'kvm host' add the boot parameter:
"kvmtmem"
And to enable tmem in the 'kvm guests' add the boot parameter:
"tmem"

The diffstat details for this patch are given below:

 arch/x86/include/asm/kvm_host.h      |    1 
 arch/x86/kvm/x86.c                   |    4 
 drivers/staging/zcache/Makefile      |    2 
 drivers/staging/zcache/kvm-tmem.c    |  356 +++++++++++++++++++++++++++++++++++
 drivers/staging/zcache/kvm-tmem.h    |   55 +++++
 drivers/staging/zcache/zcache-main.c |   98 ++++++++-
 include/linux/kvm_para.h             |    1 
 7 files changed, 508 insertions(+), 9 deletions(-)

We have already uploaded our work alongwith the 'Frontswap' submitted by Dan, on the following link:
https://github.com/akshaykarle/kvm-tmem

Any comments/feedback would be appreciated and will help us a lot with our work.

Regards,
Akshay