Re: KVM architecture docs

Zhao Forrest
2008-03-05T04:06:24Z

> >
> > could you (or anybody) elaborate on that? the mmu-related threads show
> > lots of progress, but it's way (way) out of my league.
> >
> > AFAICT, it's about the infrastructure to later write drivers (virtio?)
> > to DMA-heavy hardware (IB, RDMA, etc). am i wrong? or is it
> > something more complete (like a ready to use driver)?
> >
> >
>
> mmu notifiers provide a way for the core Linux memory management code to
> propagate changes in how Linux views a process' memory map to external
> memory management units that are also interested in that memory map.
> These changes include things like swapping, page migration, changes to
> memory protection, defragmentation, and copy-on-write. In this context,
> kvm appears as a dma capable memory controller, like RDMA NICs or GPUs.
>
> For kvm, this is important as it allows all those features to be used
> transparently with guests.
>
> - swapping allows you to overcommit memory

Normally swapping mechanism choose the Least Recently Used(LRU) pages
of a process to be swapped out. When KVM uses MMU notifier in linux
kernel to implement swapping for VM, could KVM choose LRU pages of a
VM to swap out? If so, could you give a brief description about how
this is implemented?

> - page migration allows optimization of memory placement within the host
> in response to changing workloads
> - defragmentation will allow (if/when it is merged into Linux) more
> widespread use of large pages, which improve performance
> - copy-on-write allows sharing identical pages of memory among guests,
> increasing guest density

Thanks,
Forrest