<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kvm/Makefile, branch linux-3.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-07-08T14:19:58Z</updated>
<entry>
<title>powerpc/kvm: Contiguous memory allocator based hash page table allocation</title>
<updated>2013-07-08T14:19:58Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2013-07-02T05:45:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fa61a4e376d2129690c82dfb05b31705a67d6e0b'/>
<id>urn:sha1:fa61a4e376d2129690c82dfb05b31705a67d6e0b</id>
<content type='text'>
Powerpc architecture uses a hash based page table mechanism for mapping virtual
addresses to physical address. The architecture require this hash page table to
be physically contiguous. With KVM on Powerpc currently we use early reservation
mechanism for allocating guest hash page table. This implies that we need to
reserve a big memory region to ensure we can create large number of guest
simultaneously with KVM on Power. Another disadvantage is that the reserved memory
is not available to rest of the subsystems and and that implies we limit the total
available memory in the host.

This patch series switch the guest hash page table allocation to use
contiguous memory allocator.

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Acked-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: get rid of $(addprefix ../../../virt/kvm/, ...) in Makefiles</title>
<updated>2013-05-19T12:14:00Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2013-05-14T13:31:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=535cf7b3b13c7faed3dfabafb6598417de1129ca'/>
<id>urn:sha1:535cf7b3b13c7faed3dfabafb6598417de1129ca</id>
<content type='text'>
As requested by the KVM maintainers, remove the addprefix used to
refer to the main KVM code from the arch code, and replace it with
a KVM variable that does the same thing.

Tested-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Cc: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Cc: Gleb Natapov &lt;gleb@redhat.com&gt;
Cc: Christoffer Dall &lt;cdall@cs.columbia.edu&gt;
Acked-by: Xiantao Zhang &lt;xiantao.zhang@intel.com&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: Fenghua Yu &lt;fenghua.yu@intel.com&gt;
Cc: Alexander Graf &lt;agraf@suse.de&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Cc: Cornelia Huck &lt;cornelia.huck@de.ibm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Add support for real mode ICP in XICS emulation</title>
<updated>2013-04-26T18:27:32Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2013-04-17T20:31:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7d26f285b4be9466c9e393139e1c9cffe4cedfc'/>
<id>urn:sha1:e7d26f285b4be9466c9e393139e1c9cffe4cedfc</id>
<content type='text'>
This adds an implementation of the XICS hypercalls in real mode for HV
KVM, which allows us to avoid exiting the guest MMU context on all
threads for a variety of operations such as fetching a pending
interrupt, EOI of messages, IPIs, etc.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S: Add kernel emulation for the XICS interrupt controller</title>
<updated>2013-04-26T18:27:30Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2013-04-17T20:30:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bc5ad3f3701116e7db57268e6f89010ec714697e'/>
<id>urn:sha1:bc5ad3f3701116e7db57268e6f89010ec714697e</id>
<content type='text'>
This adds in-kernel emulation of the XICS (eXternal Interrupt
Controller Specification) interrupt controller specified by PAPR, for
both HV and PR KVM guests.

The XICS emulation supports up to 1048560 interrupt sources.
Interrupt source numbers below 16 are reserved; 0 is used to mean no
interrupt and 2 is used for IPIs.  Internally these are represented in
blocks of 1024, called ICS (interrupt controller source) entities, but
that is not visible to userspace.

Each vcpu gets one ICP (interrupt controller presentation) entity,
used to store the per-vcpu state such as vcpu priority, pending
interrupt state, IPI request, etc.

This does not include any API or any way to connect vcpus to their
ICP state; that will be added in later patches.

This is based on an initial implementation by Michael Ellerman
&lt;michael@ellerman.id.au&gt; reworked by Benjamin Herrenschmidt and
Paul Mackerras.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
[agraf: fix typo, add dependency on !KVM_MPIC]
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S: Add infrastructure to implement kernel-side RTAS calls</title>
<updated>2013-04-26T18:27:29Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2013-04-17T20:30:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8e591cb7204739efa8e15967ea334eb367039dde'/>
<id>urn:sha1:8e591cb7204739efa8e15967ea334eb367039dde</id>
<content type='text'>
For pseries machine emulation, in order to move the interrupt
controller code to the kernel, we need to intercept some RTAS
calls in the kernel itself.  This adds an infrastructure to allow
in-kernel handlers to be registered for RTAS services by name.
A new ioctl, KVM_PPC_RTAS_DEFINE_TOKEN, then allows userspace to
associate token values with those service names.  Then, when the
guest requests an RTAS service with one of those token values, it
will be handled by the relevant in-kernel handler rather than being
passed up to userspace as at present.

Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
[agraf: fix warning]
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Support irq routing and irqfd for in-kernel MPIC</title>
<updated>2013-04-26T18:27:25Z</updated>
<author>
<name>Alexander Graf</name>
</author>
<published>2013-04-16T15:42:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de9ba2f36368d21314860ee24893a6ffef01e548'/>
<id>urn:sha1:de9ba2f36368d21314860ee24893a6ffef01e548</id>
<content type='text'>
Now that all the irq routing and irqfd pieces are generic, we can expose
real irqchip support to all of KVM's internal helpers.

This allows us to use irqfd with the in-kernel MPIC.

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>kvm/ppc/mpic: in-kernel MPIC emulation</title>
<updated>2013-04-26T18:27:23Z</updated>
<author>
<name>Scott Wood</name>
</author>
<published>2013-04-12T14:08:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5df554ad5b7522ea62b0ff9d5be35183494efc21'/>
<id>urn:sha1:5df554ad5b7522ea62b0ff9d5be35183494efc21</id>
<content type='text'>
Hook the MPIC code up to the KVM interfaces, add locking, etc.

Signed-off-by: Scott Wood &lt;scottwood@freescale.com&gt;
[agraf: add stub function for kvmppc_mpic_set_epr, non-booke, 64bit]
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: E500: Split host and guest MMU parts</title>
<updated>2013-01-24T18:23:31Z</updated>
<author>
<name>Alexander Graf</name>
</author>
<published>2013-01-11T14:22:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b71c9e2fb72cf538aadbc59ea719639a1e2191fa'/>
<id>urn:sha1:b71c9e2fb72cf538aadbc59ea719639a1e2191fa</id>
<content type='text'>
This patch splits the file e500_tlb.c into e500_mmu.c (guest TLB handling)
and e500_mmu_host.c (host TLB handling).

The main benefit of this split is readability and maintainability. It's
just a lot harder to write dirty code :).

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Handle guest-caused machine checks on POWER7 without panicking</title>
<updated>2012-12-06T00:34:07Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2012-11-23T22:37:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4072df4076c4f33ac9f518052c318c979bca533'/>
<id>urn:sha1:b4072df4076c4f33ac9f518052c318c979bca533</id>
<content type='text'>
Currently, if a machine check interrupt happens while we are in the
guest, we exit the guest and call the host's machine check handler,
which tends to cause the host to panic.  Some machine checks can be
triggered by the guest; for example, if the guest creates two entries
in the SLB that map the same effective address, and then accesses that
effective address, the CPU will take a machine check interrupt.

To handle this better, when a machine check happens inside the guest,
we call a new function, kvmppc_realmode_machine_check(), while still in
real mode before exiting the guest.  On POWER7, it handles the cases
that the guest can trigger, either by flushing and reloading the SLB,
or by flushing the TLB, and then it delivers the machine check interrupt
directly to the guest without going back to the host.  On POWER7, the
OPAL firmware patches the machine check interrupt vector so that it
gets control first, and it leaves behind its analysis of the situation
in a structure pointed to by the opal_mc_evt field of the paca.  The
kvmppc_realmode_machine_check() function looks at this, and if OPAL
reports that there was no error, or that it has handled the error, we
also go straight back to the guest with a machine check.  We have to
deliver a machine check to the guest since the machine check interrupt
might have trashed valid values in SRR0/1.

If the machine check is one we can't handle in real mode, and one that
OPAL hasn't already handled, or on PPC970, we exit the guest and call
the host's machine check handler.  We do this by jumping to the
machine_check_fwnmi label, rather than absolute address 0x200, because
we don't want to re-execute OPAL's handler on POWER7.  On PPC970, the
two are equivalent because address 0x200 just contains a branch.

Then, if the host machine check handler decides that the system can
continue executing, kvmppc_handle_exit() delivers a machine check
interrupt to the guest -- once again to let the guest know that SRR0/1
have been modified.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
[agraf: fix checkpatch warnings]
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Support eventfd</title>
<updated>2012-12-06T00:33:50Z</updated>
<author>
<name>Alexander Graf</name>
</author>
<published>2012-10-08T22:06:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e673fb679027600cad45bd61a4cc9ebd2ed2bb1'/>
<id>urn:sha1:0e673fb679027600cad45bd61a4cc9ebd2ed2bb1</id>
<content type='text'>
In order to support the generic eventfd infrastructure on PPC, we need
to call into the generic KVM in-kernel device mmio code.

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
</feed>
