Allows the migration of the physical location of pages of processes while the virtual addresses are not changed. This is useful when allocating huge pages as migration can relocate pages to satisfy a huge page allocation instead of reclaiming.

- KSM (Location : Processor type and features)

Enable Kernel Samepage Merging: KSM periodically scans those areas of an application's address space that an app has advised may be mergeable. When it finds pages of identical content, it replaces the many instances by a single page with that content, so saving memory until one or another app needs to modify the content. KSM is inactive until a program has madvised that an area is MADV_MERGEABLE, and root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).

A daemon as "ksmtuned" can be used to tuning KSM.

- TRANSPARENT_HUGEPAGE (Location : Processor type and features)

Transparent Hugepages allows the kernel to use huge pages and huge tlb transparently to the applications whenever possible. This feature can improve computing performance to certain applications by speeding up page faults during memory allocation, by reducing the number of tlb misses and by speeding up the pagetable walking.

- CGROUPS (Location : General setup)

The cgroup allow you to control the distribution of resources (processors, cores, memory, IO) at different VM.

This drivers provides support for virtio based paravirtual device drivers over PCI. This requires that your VMM has appropriate PCI virtio backends.

- VIRTIO_BALLOON (Location : Virtualization)

This driver supports increasing and decreasing the amount of memory within a KVM guest.

- VIRTIO_RING

Selected by VIRTIO_PCI or VIRTIO_BALLOON

- VIRTIO_CONSOLE (Location : Device Drivers -> Character devices)

Serves as a general-purpose serial device for data transfer between the guest and host. Character devices at /dev/vportNpn will be created when corresponding ports are found, where N is the device number and n is the port number within that device. If specified by the host, a sysfs attribute called 'name' will be populated with a name for the port which can be used by udev scripts to create a symlink to the device.

This changes the kernel so it can modify itself when it is run under a hypervisor, potentially improving performance significantly over full virtualization. However, when run without a hypervisor the kernel is theoretically slower and slightly larger.