<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linux-kvm.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DanielBerrange</id>
	<title>KVM - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://linux-kvm.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DanielBerrange"/>
	<link rel="alternate" type="text/html" href="https://linux-kvm.org/page/Special:Contributions/DanielBerrange"/>
	<updated>2026-04-14T08:30:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Projects/auto-ballooning&amp;diff=173924</id>
		<title>Projects/auto-ballooning</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Projects/auto-ballooning&amp;diff=173924"/>
		<updated>2018-08-23T10:51:19Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: /* Automatic Ballooning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automatic Ballooning =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: This page describes an experimental development project from 2013 that was never completed. It is left here as a historical record. The feature described does not exist in any currently shipping version of QEMU&#039;&#039;&#039;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The virtio balloon device allows KVM guests to reduce their memory size (thus relinquishing memory to the host) and to increase it back (thus taking memory from the host).&lt;br /&gt;
&lt;br /&gt;
This feature is mainly intended to support over-committing memory on KVM hosts. That is, hosts that are running VMs whose total memory size is greater than what the host has physically available. For example, a 2G host running two VMs each with 2G would be over-committed.&lt;br /&gt;
&lt;br /&gt;
The balloon device is important to support memory over-commitment because it allows for reducing a guest&#039;s memory size if needed. Suppose, in the previous example, that one of the guests is using 1G and its other 1G is free. We could use the balloon device to reduce this guest&#039;s size from 2G to 1G, this would free 1G in the host allowing the other VM to use it. Of course, if the reduced guest wants to run an application that consumes more than the 1G it currently has, it has to grow again.&lt;br /&gt;
&lt;br /&gt;
That&#039;s the problem with the current balloon device, it&#039;s entirely manual. Someone (or some tool) is supposed to be watching the pressure in the host and guest and then operate the balloon accordingly. This doesn&#039;t work well in practice (if doable at all).&lt;br /&gt;
&lt;br /&gt;
The balloon has to be automatic in order to be really useful. It could like this: when the host is under pressure, it asks guests to relinquish some megas if they can. When/if a guest gets into memory pressure, it gets some megas back from the host. That&#039;s what the automatic ballooning series is about.&lt;br /&gt;
&lt;br /&gt;
=== KVM Forum 2013 presentation slides ===&lt;br /&gt;
&lt;br /&gt;
[https://www.linux-kvm.org/images/5/58/Kvm-forum-2013-automatic-ballooning.pdf They can be found here], but note that much has changed since this talk.&lt;br /&gt;
&lt;br /&gt;
== Patches and Git trees ==&lt;br /&gt;
&lt;br /&gt;
=== Latest RFC version posted upstream ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Guest kernel:&#039;&#039;&#039; [http://marc.info/?l=kvm&amp;amp;m=138988948715638&amp;amp;w=2 RFC PATCH 0/4 virtio_balloon: add pressure notification via a new virtqueue]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QEMU:&#039;&#039;&#039; [http://marc.info/?l=kvm&amp;amp;m=138988966315690&amp;amp;w=2 RFC PATCH balloon: add automatic ballooning support]&lt;br /&gt;
&lt;br /&gt;
=== Git trees ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Guest kernel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://repo.or.cz/w/linux-2.6/luiz-linux-2.6.git git://repo.or.cz/linux-2.6/luiz-linux-2.6.git] virtio-balloon/pressure-notification/rfc/v1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QEMU:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://repo.or.cz/w/qemu/qmp-unstable.git git://repo.or.cz/qemu/qmp-unstable.git] balloon-automatic/handle-all-events/rfc/v1&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* More performance tests&lt;br /&gt;
* Make it dynamic to enable/disable automatic ballooning&lt;br /&gt;
* Do kernel work required in order to have non-cgroups code using in-kernel memory pressure notification&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
&lt;br /&gt;
# Install kernel 3.10 or higher in your host. Make sure the kernel options CONFIG_CGROUPS and CONFIG_MEMCG are enabled&lt;br /&gt;
# Build QEMU from [[#Git trees| the Git trees section]]&lt;br /&gt;
# Build and install the guest kernel from [[#Git trees| the Git trees section]]&lt;br /&gt;
&lt;br /&gt;
Then start qemu with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;   # qemu [...] -device virtio-balloon,automatic=true&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To see automatic ballooning in action, do the following:&lt;br /&gt;
&lt;br /&gt;
# Generate pressure in your host (like running several VMs in parallel); or connect to QMP and issue the &#039;&#039;balloon-inject-host-pressure&#039;&#039; command&lt;br /&gt;
# You can monitor automatic ballooning activity by issuing &#039;&#039;info balloon&#039;&#039; in QEMU&#039;s monitor (also, I have debug code enabled that will dump a lot of info to stdout when &amp;quot;info balloon&amp;quot; is issued)&lt;br /&gt;
# After the guest has shrinked a bit, you can generate pressure in the guest to see it increasing its size again&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=KVM_Forum_2012&amp;diff=4605</id>
		<title>KVM Forum 2012</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=KVM_Forum_2012&amp;diff=4605"/>
		<updated>2012-11-21T12:26:06Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KVM Forum 2012 =&lt;br /&gt;
&lt;br /&gt;
The [https://events.linuxfoundation.org/events/kvm-forum KVM Forum 2012] was held from November 7-9, 2012 at the Hotel Fira Palace in Barcelona. It was co-located with LinuxCon Europe 2012&lt;br /&gt;
&lt;br /&gt;
== Community Team Photo ==&lt;br /&gt;
&lt;br /&gt;
Jeff Cody managed to get a photograph of (a large part of) the KVM / QEMU community development team. [http://www.linux-kvm.org/static/kvm-forum-2012-barcelona-team-photo.html View the photo and name key]&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=KVM_Forum_2012&amp;diff=4596</id>
		<title>KVM Forum 2012</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=KVM_Forum_2012&amp;diff=4596"/>
		<updated>2012-11-19T18:48:28Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KVM Forum 2012 =&lt;br /&gt;
&lt;br /&gt;
The [https://events.linuxfoundation.org/events/kvm-forum KVM Forum 2012] was held from November 7-9, 2012 at the Hotel Fira Palace in Barcelona. It was co-located with LinuxCon Europe 2012&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4487</id>
		<title>WindowsGuestDrivers/Download Drivers</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Download_Drivers&amp;diff=4487"/>
		<updated>2011-11-22T14:26:05Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Windows VirtIO Drivers =&lt;br /&gt;
&lt;br /&gt;
The source for the Windows drivers is hosted in a repository on GIT hub. Anonymous users can clone the repository&lt;br /&gt;
&lt;br /&gt;
git clone git://github.com/YanVugenfirer/kvm-guest-drivers-windows.git&lt;br /&gt;
&lt;br /&gt;
[https://github.com/YanVugenfirer/kvm-guest-drivers-windows Browse GIT repository online ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Binary Drivers ==&lt;br /&gt;
&lt;br /&gt;
Binary drivers are provided by some Linux distributions including WHQL Certified drivers.&lt;br /&gt;
&lt;br /&gt;
64-bit versions of Windows Vista and newer (this currently includes Windows Server 2008, Windows 7 and Windows Server 2008 R2) require the drivers to be [http://msdn.microsoft.com/en-us/windows/hardware/gg487332 digitally signed] to load.&lt;br /&gt;
&lt;br /&gt;
If your distribution does not provide binary drivers for Windows, you can use the package from the Fedora Project. These drivers are digitally signed, and will work on 64-bit versions of Windows:&lt;br /&gt;
&lt;br /&gt;
[http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/ Latest VirtIO drivers for Windows from Fedora ]&lt;br /&gt;
&lt;br /&gt;
Note: as of this writing (2011-Nov-08), latest drivers are of version &amp;quot;15&amp;quot;, dated &amp;quot;15-Jun-2011&amp;quot;, with the CD image being virtio-win-0.1-mm34.iso.  In that image, WindowsXP drivers does not seem to work, it is impossible to install them using regular winXP driver interface.  But the previous drivers, version &amp;quot;14&amp;quot; as found on this [http://alt.fedoraproject.org/pub/alt/virtio-win/ Directory], dated &amp;quot;13-Jan-2011&amp;quot;, from CD image named &amp;quot;virtio-win-1.1.16.iso&amp;quot;, installs on winXP fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Code signing drivers for the Windows 64bit platforms =&lt;br /&gt;
* Drivers should be signed for Windows 64bit platforms. &lt;br /&gt;
* Here are some links how to self sign and install self signed drivers:&lt;br /&gt;
** [http://msdn.microsoft.com/en-us/library/ff547649.aspx Installing Test-Signed Driver Packages]&lt;br /&gt;
** [http://www.microsoft.com/whdc/driver/tips/IFS_Signing.mspx How to Release-Sign File System Drivers]&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Repository&amp;diff=4486</id>
		<title>WindowsGuestDrivers/Repository</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=WindowsGuestDrivers/Repository&amp;diff=4486"/>
		<updated>2011-11-22T14:24:47Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The master repository for development of the KVM Windows guest drivers is hosted on GitHub:&lt;br /&gt;
&lt;br /&gt;
* Anonymous clone of repository:&lt;br /&gt;
  &lt;br /&gt;
   git clone git://github.com/YanVugenfirer/kvm-guest-drivers-windows.git&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/YanVugenfirer/kvm-guest-drivers-windows Browse GIT repository online]&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Test&amp;diff=4448</id>
		<title>Test</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Test&amp;diff=4448"/>
		<updated>2011-11-10T18:01:57Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testing&lt;br /&gt;
123&lt;br /&gt;
&lt;br /&gt;
http://kernel.org/&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Test&amp;diff=4447</id>
		<title>Test</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Test&amp;diff=4447"/>
		<updated>2011-11-10T18:01:45Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testing&lt;br /&gt;
123&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Test&amp;diff=4446</id>
		<title>Test</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Test&amp;diff=4446"/>
		<updated>2011-11-10T17:59:58Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testing&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Management_Tools&amp;diff=2866</id>
		<title>Management Tools</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Management_Tools&amp;diff=2866"/>
		<updated>2010-02-04T14:34:28Z</updated>

		<summary type="html">&lt;p&gt;DanielBerrange: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are a several options available to manage kvm virtual machines:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Name/URL&lt;br /&gt;
!Description&lt;br /&gt;
!UI Type&lt;br /&gt;
!Active|Last Updated&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.linux-kvm.org Plain old qemu/kvm]&lt;br /&gt;
|You can run qemu/kvm straight from the command line&lt;br /&gt;
|cli&lt;br /&gt;
|active&lt;br /&gt;
|See man (qemu-system-x86_64 or kvm or qemu-kvm) for more info&lt;br /&gt;
|-&lt;br /&gt;
|[http://libvirt.org virsh]&lt;br /&gt;
|A minimal shell around libvirt for managing VMs&lt;br /&gt;
|cli&lt;br /&gt;
|active&lt;br /&gt;
|uses [http://libvirt.org libvirt]&lt;br /&gt;
|-&lt;br /&gt;
|[http://virt-manager.org virt-install/clone/convert]&lt;br /&gt;
|Command line tools for provisioning new VMs, cloning existing VMs and importing / converting appliance images&lt;br /&gt;
|cli&lt;br /&gt;
|active&lt;br /&gt;
|uses [http://libvirt.org libvirt]&lt;br /&gt;
|-&lt;br /&gt;
|[http://virt-manager.org Virtual Machine Manager]&lt;br /&gt;
|Also known as virt-manager. A desktop user interface for managing virtual machines&lt;br /&gt;
|desktop&lt;br /&gt;
|active&lt;br /&gt;
|uses [http://libvirt.org libvirt]&lt;br /&gt;
|-&lt;br /&gt;
|[http://gkvm.sourceforge.net/ GKVM]&lt;br /&gt;
|a gnome user interface for KVM&lt;br /&gt;
|desktop&lt;br /&gt;
|2007-08-01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://sourceforge.net/projects/aqemu/ AQemu]&lt;br /&gt;
|a Qt4 user interface for KVM&lt;br /&gt;
|desktop&lt;br /&gt;
|active&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://code.google.com/p/kvmadm/ kvmadm]&lt;br /&gt;
|a minimalistic set of command-line tools to control multi-user utilization of KVM&lt;br /&gt;
|cli&lt;br /&gt;
|2007-09-25&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://pve.proxmox.com/wiki/Main_Page Proxmox VE]&lt;br /&gt;
|Open Source virtualization platform for running Virtual Appliances and Virtual Machines&lt;br /&gt;
|web &amp;amp; cli&lt;br /&gt;
|active&lt;br /&gt;
|Bar-metall installer including KVM and OpenVZ management tools&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.convirture.com/community.html ConVirt]&lt;br /&gt;
|an intuitive, graphical management console providing comprehensive life cycle management for Virtual Machines and virtualization infrastructures&lt;br /&gt;
|web?&lt;br /&gt;
|active&lt;br /&gt;
|basic support for kvm added in 0.9.1; formerly known as xenman&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.opennebula.org/doku.php OpenNebula]&lt;br /&gt;
|an open source virtual infrastructure engine&lt;br /&gt;
|cli &amp;amp; xml-rpc&lt;br /&gt;
|active&lt;br /&gt;
|cloud computing managment; uses libvirt&lt;br /&gt;
|-&lt;br /&gt;
|[http://code.google.com/p/ganeti/ Ganeti]&lt;br /&gt;
|Ganeti is a cluster virtual server management software tool built on top of existing virtualization technologies&lt;br /&gt;
|cli&lt;br /&gt;
|active&lt;br /&gt;
|KVM support added in Ganeti 2.0&lt;br /&gt;
|-&lt;br /&gt;
|[http://src.enomaly.com/ Enomaly]&lt;br /&gt;
|a programmable virtual cloud infrastructure for small, medium and large businesses&lt;br /&gt;
|web &amp;amp; REST API&lt;br /&gt;
|active&lt;br /&gt;
|they have commercial and open source editions&lt;br /&gt;
|-&lt;br /&gt;
|[http://karesansui-project.info/ Karesansui]&lt;br /&gt;
|Karesansui is an open-source virtualization management application. It&#039;s smart graphical user interface lowers your management cost, and brings a total management/audit solution for both physical and virtual servers.&lt;br /&gt;
|web &amp;amp; REST API&lt;br /&gt;
|active&lt;br /&gt;
|KVM &amp;amp; Xen support; uses libvirt&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DanielBerrange</name></author>
	</entry>
</feed>