<?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=Kashyapc</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=Kashyapc"/>
	<link rel="alternate" type="text/html" href="https://linux-kvm.org/page/Special:Contributions/Kashyapc"/>
	<updated>2026-05-03T13:57:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Nested_Guests&amp;diff=173899</id>
		<title>Nested Guests</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Nested_Guests&amp;diff=173899"/>
		<updated>2018-02-12T09:24:45Z</updated>

		<summary type="html">&lt;p&gt;Kashyapc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nested Guests =&lt;br /&gt;
&lt;br /&gt;
Nested guests are KVM guests run in a KVM guest. As of Feb 2018 this feature is considered working but experimental, and some limitations apply.&lt;br /&gt;
&lt;br /&gt;
When describing nested guests, we will use the following terminology:&lt;br /&gt;
&lt;br /&gt;
*  &amp;quot;L0&amp;quot; – the bare metal host, running KVM&lt;br /&gt;
*  &amp;quot;L1&amp;quot; – a VM running on L0; also called the &amp;quot;guest hypervisor&amp;quot; — as it &#039;&#039;itself&#039;&#039; is capable of running KVM&lt;br /&gt;
*  &amp;quot;L2&amp;quot; – a VM running on L1, also called the &amp;quot;nested guest&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Detailed =&lt;br /&gt;
== Why use it? ==&lt;br /&gt;
&lt;br /&gt;
An additional layer of virtualization sometimes comes in handy. You might have access to a large virtual machine in a cloud environment that you want to compartmentalize into multiple workloads. You might be running a lab environment in a training session.&lt;br /&gt;
&lt;br /&gt;
== How to run ==&lt;br /&gt;
&lt;br /&gt;
The KVM kernel modules do not enable nesting by default (though your distribution may override this default). To enable nesting, set the &amp;lt;code&amp;gt;nested&amp;lt;/code&amp;gt; module parameter to &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. You may set this parameter persistently in a file in &amp;lt;code&amp;gt;/etc/modprobe.d&amp;lt;/code&amp;gt; in the L0 host, for example:&lt;br /&gt;
&lt;br /&gt;
 # If you have an Intel CPU, use this:&lt;br /&gt;
 $ cat /etc/modprobe.d/kvm_intel.conf&lt;br /&gt;
 options kvm-intel nested=Y&lt;br /&gt;
 &lt;br /&gt;
 # If you have an AMD CPU, then this:&lt;br /&gt;
 $ cat /etc/modprobe.d/kvm_amd.conf&lt;br /&gt;
 options kvm-amd nested=1&lt;br /&gt;
&lt;br /&gt;
Once your L0 host is capable of nesting, you should be able to start an L1 guest with the &amp;lt;code&amp;gt;-cpu host&amp;lt;/code&amp;gt; option (or for better live migration compatibility, use a named CPU model supported by QEMU, such as: &amp;lt;code&amp;gt;-cpu Haswell-noTSX-IBRS,vmx=on&amp;lt;/code&amp;gt;) and the guest will subsequently be capable of running an L2 guest with accelerated KVM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
Once an L1 guest has started an L2 guest, it is no longer capable of being migrated, saved, or loaded (see [[Migration]] for details on these actions) until the L2 guest shuts down. This is currently an inherent limitation (that is being worked on, as of Feb 2018) of the KVM implementation on all architectures except s390x.&lt;br /&gt;
&lt;br /&gt;
Attempting to migrate or save &amp;amp; load an L1 guest while an L2 guest is running will result in undefined behavior. You might see a &amp;lt;code&amp;gt;kernel BUG!&amp;lt;/code&amp;gt; entry in &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt;, a kernel oops, or an outright kernel panic. At any rate, a thus migrated or loaded L1 guest can no longer be considered stable or secure, and must be restarted.&lt;br /&gt;
&lt;br /&gt;
Migrating an L1 guest merely &#039;&#039;configured to support&#039;&#039; nesting, while not &#039;&#039;actually&#039;&#039; running L2 guests, is expected to function normally. Live-migrating an L2 guest from one L1 guest to another is also expected to succeed.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
* [https://www.redhat.com/archives/libvirt-users/2018-February/msg00014.html Discussion on limitations of nested guests] (&amp;lt;code&amp;gt;libvirt-users&amp;lt;/code&amp;gt; mailing list, February 2018)&lt;br /&gt;
* [https://bugzilla.redhat.com/show_bug.cgi?id=1076294 Red Hat Bugzilla Bug 1076294 ]&lt;br /&gt;
* [https://bugzilla.kernel.org/show_bug.cgi?id=198621 kernel.org Bugzilla Bug 198621]&lt;br /&gt;
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/virtual/kvm/nested-vmx.txt Intel nVMX upstream specification]&lt;br /&gt;
[[Category:Docs]]&lt;/div&gt;</summary>
		<author><name>Kashyapc</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=Nested_Guests&amp;diff=173898</id>
		<title>Nested Guests</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=Nested_Guests&amp;diff=173898"/>
		<updated>2018-02-12T09:23:30Z</updated>

		<summary type="html">&lt;p&gt;Kashyapc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nested Guests =&lt;br /&gt;
&lt;br /&gt;
Nested guests are KVM guests run in a KVM guest. As of Feb 2018 this feature is considered working but experimental, and some limitations apply.&lt;br /&gt;
&lt;br /&gt;
When describing nested guests, we will use the following terminology:&lt;br /&gt;
&lt;br /&gt;
*  &amp;quot;L0&amp;quot; -- the bare metal host, running KVM&lt;br /&gt;
*  &amp;quot;L1&amp;quot; -- a VM running on L0; also called the &amp;quot;guest hypervisor&amp;quot; -- as it &#039;&#039;itself&#039;&#039; is capable of running KVM&lt;br /&gt;
*  &amp;quot;L2&amp;quot; -- a VM running on L1, also called the &amp;quot;nested guest&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Detailed =&lt;br /&gt;
== Why use it? ==&lt;br /&gt;
&lt;br /&gt;
An additional layer of virtualization sometimes comes in handy. You might have access to a large virtual machine in a cloud environment that you want to compartmentalize into multiple workloads. You might be running a lab environment in a training session.&lt;br /&gt;
&lt;br /&gt;
== How to run ==&lt;br /&gt;
&lt;br /&gt;
The KVM kernel modules do not enable nesting by default (though your distribution may override this default). To enable nesting, set the &amp;lt;code&amp;gt;nested&amp;lt;/code&amp;gt; module parameter to &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. You may set this parameter persistently in a file in &amp;lt;code&amp;gt;/etc/modprobe.d&amp;lt;/code&amp;gt; in the L0 host, for example:&lt;br /&gt;
&lt;br /&gt;
 # If you have an Intel CPU, use this:&lt;br /&gt;
 $ cat /etc/modprobe.d/kvm_intel.conf&lt;br /&gt;
 options kvm-intel nested=Y&lt;br /&gt;
 &lt;br /&gt;
 # If you have an AMD CPU, then this:&lt;br /&gt;
 $ cat /etc/modprobe.d/kvm_amd.conf&lt;br /&gt;
 options kvm-amd nested=1&lt;br /&gt;
&lt;br /&gt;
Once your L0 host is capable of nesting, you should be able to start an L1 guest with the &amp;lt;code&amp;gt;-cpu host&amp;lt;/code&amp;gt; option (or for better live migration compatibility, use a named CPU model supported by QEMU, such as: &amp;lt;code&amp;gt;-cpu Haswell-noTSX-IBRS,vmx=on&amp;lt;/code&amp;gt;) and the guest will subsequently be capable of running an L2 guest with accelerated KVM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
Once an L1 guest has started an L2 guest, it is no longer capable of being migrated, saved, or loaded (see [[Migration]] for details on these actions) until the L2 guest shuts down. This is currently an inherent limitation (that is being worked on, as of Feb 2018) of the KVM implementation on all architectures except s390x.&lt;br /&gt;
&lt;br /&gt;
Attempting to migrate or save &amp;amp; load an L1 guest while an L2 guest is running will result in undefined behavior. You might see a &amp;lt;code&amp;gt;kernel BUG!&amp;lt;/code&amp;gt; entry in &amp;lt;code&amp;gt;dmesg&amp;lt;/code&amp;gt;, a kernel oops, or an outright kernel panic. At any rate, a thus migrated or loaded L1 guest can no longer be considered stable or secure, and must be restarted.&lt;br /&gt;
&lt;br /&gt;
Migrating an L1 guest merely &#039;&#039;configured to support&#039;&#039; nesting, while not &#039;&#039;actually&#039;&#039; running L2 guests, is expected to function normally. Live-migrating an L2 guest from one L1 guest to another is also expected to succeed.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
* [https://www.redhat.com/archives/libvirt-users/2018-February/msg00014.html Discussion on limitations of nested guests] (&amp;lt;code&amp;gt;libvirt-users&amp;lt;/code&amp;gt; mailing list, February 2018)&lt;br /&gt;
* [https://bugzilla.redhat.com/show_bug.cgi?id=1076294 Red Hat Bugzilla Bug 1076294 ]&lt;br /&gt;
* [https://bugzilla.kernel.org/show_bug.cgi?id=198621 kernel.org Bugzilla Bug 198621]&lt;br /&gt;
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/virtual/kvm/nested-vmx.txt Intel nVMX upstream specification]&lt;br /&gt;
[[Category:Docs]]&lt;/div&gt;</summary>
		<author><name>Kashyapc</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=KVM_Forum_2012&amp;diff=4734</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=4734"/>
		<updated>2013-05-07T05:53:33Z</updated>

		<summary type="html">&lt;p&gt;Kashyapc: &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;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, November 7th&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
! Time !! Title !! Speaker &lt;br /&gt;
|-&lt;br /&gt;
|09:00am || [[Media:2012-forum-avi-keynote.pdf | Keynote]] || Avi Kivity, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|09:15am || [[Media:2012-forum-Jan-Kiszka-BQL.pdf | For Performance and Latency, Not for Fun]] || Jan Kiszka, Siemens&lt;br /&gt;
|-&lt;br /&gt;
|10:30am || [[Media:2012-forum-Andrew-Theurer-Big-SMP-VMs.pdf | KVM Scalability: Preparing for big SMP VMs]] || Andrew Theurer, IBM&lt;br /&gt;
|-&lt;br /&gt;
|11:15am || [[Media:2012-forum-Liguori-qtest.pdf | Integrated Testing in QEMU - An Overview of qtest and qemu-test]] || Anthony Liguori, IBM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! !! colspan=&amp;quot;2&amp;quot;|Track 1 !! colspan=&amp;quot;2&amp;quot;|Track 2&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Title !! Speaker !! Title !! Speaker&lt;br /&gt;
|-&lt;br /&gt;
|1:00pm || [[Media:2012-forum-kvm hyperv.pdf | KVM and Microsoft Hyper-V Enlightenments]] || Vadim Rozenfeld || [[Media:2012-forum-QOM CPU.pdf | QOM Vadis? Taking Objects to CPU and Beyond]] || Andreas Färber, SUSE&lt;br /&gt;
|-&lt;br /&gt;
|1:45pm || [[Media:2012-forum-Hemminger-New-Bridge.pdf | Linux bridging: Teaching an Old Dog New Tricks]] || Stephen Hemminger || [[Media:2012-forum-qidl-talk.pdf | QIDL: An Embedded Language to Serialize Guest Data Structures for Live Migration]] || Michael Roth, IBM&lt;br /&gt;
|-&lt;br /&gt;
|2:30pm || [[Media:2012-forum-Fernando-NTT-KVM-early-adopter.pdf | KVM in the Enterprise: An Early Adopter&#039;s Take]] || Fernando Luis Vazquez Cao, NTT || [[Media:2012-forum-live-migration.pdf | Live Migration: Even faster, Now With a Dedicated Thread!]] || Orit Wasserman, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|3:30pm || [[Media:2012-forum-qemu-usb-status-update.pdf | Qemu USB Status Report 2012]] || Gerd Hoffman, Red Hat || [[Media:2012-forum-postcopy.pdf | Yabusame Update on Postcopy Live Migration for QEMU/KVM]] || Isaku Yamahata, VA Linux Systems Japan K.K.&lt;br /&gt;
|-&lt;br /&gt;
|4:00pm || [[Media:2012-forum-yoshikawa.pdf | How to Use KVM&#039;s Reverse Mappings to Improve Scalability]] || Takuya Yoshikawa, NTT || [[Media:Spice-kvm-forum-2012.pdf | Spice Status Update]] || Hans de Goede, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|4:30pm || [[Media:2012-forum-Q35.pdf | A New Chipset for Qemu - Intel&#039;s Q35]] || Jason Baron, Red Hat || [[Media:2012-forum-rjones-libguestfs.pdf | New Features in libguestfs and the Virt Tools]] || Richard Jones, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|5:00pm || [[Media:2012-forum-libvirt-sandbox-kvm.pdf | Building Application Sandboxes on Top of KVM or LXC Using libvirt]] ||  Daniel Berrange, Red Hat KVM || [[Media:2012-forum-Kvm-autotest.pdf | Autotest - It&#039;s not Just a QA Tool Anymore]] || Lucas Meneghel Rodrigues, Red Hat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thursday, November 8th&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
! Time !! Title !! Speaker&lt;br /&gt;
|-&lt;br /&gt;
|09:00am || [[Media:2012-forum-Keynote-Liguori.pdf | Keynote]] || Anthony Liguori, IBM&lt;br /&gt;
|-&lt;br /&gt;
|09:15am || [[Media:2012-forum-Virtio_net_status_challenges_2012.pdf | Virtio &amp;amp; Networking Status and Challenges]] || Michael S. Tsirkin, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|10:30am || [[Media:2012-forum-memory-mgmt.pdf | KVM Memory Management Update &amp;amp; Plans]] || Rik van Riel, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|11:15am || [[Media:2012-forum-memory-api.pdf | Revamping the QEMU Memory API]] ||  Avi Kivity, Red Hat&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
! !! colspan=&amp;quot;2&amp;quot;|Track 1 !! colspan=&amp;quot;2&amp;quot;|Track 2&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Title !! Speaker !! Title !! Speaker&lt;br /&gt;
|-&lt;br /&gt;
|1:00pm || [[Media:2012-fourm-block-overview.pdf  | A Block Layer Overview]] || Kevin Wolf, Red Hat || [[Media:2012-forum-MMIO Tuning.pdf | Partial Device Port Acceleration]] || Alexander Graf, SUSE&lt;br /&gt;
|-&lt;br /&gt;
|1:45pm || [[Media:2012-forum-thin-provisioning.pdf | The Road to Effective Thin Provisioning in QEMU]] || Paolo Bonzini, Red Hat || [[Media:2012-forum-VFIO.pdf | VFIO: A User&#039;s Perspective]] || Alex Williamson, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|2:30pm || [[Media:2012-forum-glusterfs-stefanha.pdf  | GlusterFS for KVM Users and Developers]] || Stefan Hajnoczi, Red Hat || [[Media:2012-forum-megasas-vfio.pdf | Megasas on Steroids: Qemu Device-Passthrough With VFIO]] || Hannes Reinecke, SUSE&lt;br /&gt;
|-&lt;br /&gt;
|3:30pm || [[Media:2012-forum-nakajima apicv.pdf | Enabling Optimized Interrupt/APIC Virtualization in KVM]] || Jun Nakajima, Intel || QEMU Live Block Operations: Snapshots, Merging, and Mirroring || Jeff Cody, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|4:00pm || [[Media:2012-forum-device-sharing-Bharat.pdf | Efficient Sharing of Physical Devices Between KVM Guests and Host]] || Bharat Bhushan, Freescale || [[Media:2012-forum-virtio-blk-performance-improvement.pdf  | Virtio-blk Performance Improvement]] ||  Asias He, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|4:30pm || [[Media:2012-forum-multiqueue-networking-for-kvm.pdf | Multiqueue Networking for KVM]] || Jason Wang, Red Hat || [[Media:2012-forum-WHQLAndTheCommunity.pdf | WHQL Pprocess for Windows Drivers and What the Community Can Learn From It]] || Yan Vugenfirer, Daynix&lt;br /&gt;
|-&lt;br /&gt;
|5:00pm || Lightning Talks: [[Media:2012-forum-Brugger-lightningtalk.pdf | PV Disk I/O]] * [[Media:2012-forum-ovmf.pdf | OVMF]] * [[Media:2012-forum NetWare as KVM Guest.pdf | Netware as KVM Guest]] || Matthias Brugger, Laszlo Ersek, Bruce Rogers || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Friday, November 9th&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
! !! colspan=&amp;quot;2&amp;quot;|Track 1 !! colspan=&amp;quot;2&amp;quot;|Track 2&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Title !! Speaker !! Title !! Speaker&lt;br /&gt;
|-&lt;br /&gt;
|9:15am || [[Media:2012-forum-arm-christoffer-dall.pdf | ARM Virtualization for the Masses]] || Christoffer Dall, Virtual Open Systems || [[Media:2012-forum-Hecatonchire Benoit Hudzia.pdf | Memory Aggregation / Cloud with KVM]] || Benoit Hudzia, SAP&lt;br /&gt;
|-&lt;br /&gt;
|10:30am || [[Media:2012-forum-channel-io-kvm-forum.pdf | KVM on IBM System z: Channel I/O And How To Virtualize It]] || Cornelia Huck, IBM || [[Media:2012-forum-OpenStack-KVM-for-the-Masses.pdf | OpenStack: KVM for the Masses]] || Mark McLoughlin, Red Hat&lt;br /&gt;
|-&lt;br /&gt;
|11:15am || Boxes: A Box for Everyone! || Zeeshan Ali, Red Hat || [[Media:2012-forum-PowerKVM2012.pdf  | KVM on IBM POWER: Update &amp;amp; IO Architecture]] || Benjamin Herrenschmidt, IBM &amp;amp; Stuart Yoder, Freescale&lt;br /&gt;
|}&lt;br /&gt;
&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;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Some notes from the talks -- http://kashyapc.fedorapeople.org/virt/kvm-forum-2012-notes.txt&lt;/div&gt;</summary>
		<author><name>Kashyapc</name></author>
	</entry>
</feed>