<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/include/uapi/asm/kvm.h, branch linux-4.11.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.11.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.11.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-01-31T08:21:26Z</updated>
<entry>
<title>Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next</title>
<updated>2017-01-31T08:21:26Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2017-01-31T08:21:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=167c76e05591c2b656c0f329282f453dd46f4ea5'/>
<id>urn:sha1:167c76e05591c2b656c0f329282f453dd46f4ea5</id>
<content type='text'>
This merges in the POWER9 radix MMU host and guest support, which
was put into a topic branch because it touches both powerpc and
KVM code.

Signed-off-by: Paul Mackerras &lt;paulus@ozlabs.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Add userspace interfaces for POWER9 MMU</title>
<updated>2017-01-31T08:11:47Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2017-01-30T10:21:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c92701322711682de89b2bd0f32affad040b6e86'/>
<id>urn:sha1:c92701322711682de89b2bd0f32affad040b6e86</id>
<content type='text'>
This adds two capabilities and two ioctls to allow userspace to
find out about and configure the POWER9 MMU in a guest.  The two
capabilities tell userspace whether KVM can support a guest using
the radix MMU, or using the hashed page table (HPT) MMU with a
process table and segment tables.  (Note that the MMUs in the
POWER9 processor cores do not use the process and segment tables
when in HPT mode, but the nest MMU does).

The KVM_PPC_CONFIGURE_V3_MMU ioctl allows userspace to specify
whether a guest will use the radix MMU or the HPT MMU, and to
specify the size and location (in guest space) of the process
table.

The KVM_PPC_GET_RMMU_INFO ioctl gives userspace information about
the radix MMU.  It returns a list of supported radix tree geometries
(base page size and number of bits indexed at each level of the
radix tree) and the encoding used to specify the various page
sizes for the TLB invalidate entry instruction.

Initially, both capabilities return 0 and the ioctls return -EINVAL,
until the necessary infrastructure for them to operate correctly
is added.

Signed-off-by: Paul Mackerras &lt;paulus@ozlabs.org&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book 3S: XICS: Implement ICS P/Q states</title>
<updated>2017-01-26T23:27:02Z</updated>
<author>
<name>Li Zhong</name>
</author>
<published>2016-11-11T04:57:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17d48610ae0fa218aa386b16a538c792991a3652'/>
<id>urn:sha1:17d48610ae0fa218aa386b16a538c792991a3652</id>
<content type='text'>
This patch implements P(Presented)/Q(Queued) states for ICS irqs.

When the interrupt is presented, set P. Present if P was not set.
If P is already set, don't present again, set Q.
When the interrupt is EOI'ed, move Q into P (and clear Q). If it is
set, re-present.

The asserted flag used by LSI is also incorporated into the P bit.

When the irq state is saved, P/Q bits are also saved, they need some
qemu modifications to be recognized and passed around to be restored.
KVM_XICS_PENDING bit set and saved should also indicate
KVM_XICS_PRESENTED bit set and saved. But it is possible some old
code doesn't have/recognize the P bit, so when we restore, we set P
for PENDING bit, too.

The idea and much of the code come from Ben.

Signed-off-by: Li Zhong &lt;zhong@linux.vnet.ibm.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@ozlabs.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Add new POWER9 guest-accessible SPRs</title>
<updated>2016-11-23T22:24:23Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2016-11-18T02:11:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e9cf1e085647b433ccd98582681b17121ecfdc21'/>
<id>urn:sha1:e9cf1e085647b433ccd98582681b17121ecfdc21</id>
<content type='text'>
This adds code to handle two new guest-accessible special-purpose
registers on POWER9: TIDR (thread ID register) and PSSCR (processor
stop status and control register).  They are context-switched
between host and guest, and the guest values can be read and set
via the one_reg interface.

The PSSCR contains some fields which are guest-accessible and some
which are only accessible in hypervisor mode.  We only allow the
guest-accessible fields to be read or set by userspace.

Signed-off-by: Paul Mackerras &lt;paulus@ozlabs.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state</title>
<updated>2016-11-21T04:17:55Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2016-11-07T04:09:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d808df06a44200f52262b6eb72bcb6042f5a7c5'/>
<id>urn:sha1:0d808df06a44200f52262b6eb72bcb6042f5a7c5</id>
<content type='text'>
When switching from/to a guest that has a transaction in progress,
we need to save/restore the checkpointed register state.  Although
XER is part of the CPU state that gets checkpointed, the code that
does this saving and restoring doesn't save/restore XER.

This fixes it by saving and restoring the XER.  To allow userspace
to read/write the checkpointed XER value, we also add a new ONE_REG
specifier.

The visible effect of this bug is that the guest may see its XER
value being corrupted when it uses transactions.

Fixes: e4e38121507a ("KVM: PPC: Book3S HV: Add transactional memory support")
Fixes: 0a8eccefcb34 ("KVM: PPC: Book3S HV: Add missing code for transaction reclaim on guest exit")
Cc: stable@vger.kernel.org # v3.15+
Signed-off-by: Paul Mackerras &lt;paulus@ozlabs.org&gt;
Reviewed-by: Thomas Huth &lt;thuth@redhat.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@ozlabs.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Add support for 64bit TCE windows</title>
<updated>2016-03-01T22:56:50Z</updated>
<author>
<name>Alexey Kardashevskiy</name>
</author>
<published>2016-03-01T06:54:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=58ded4201ff028b15f6b317228faa5f154a0663f'/>
<id>urn:sha1:58ded4201ff028b15f6b317228faa5f154a0663f</id>
<content type='text'>
The existing KVM_CREATE_SPAPR_TCE only supports 32bit windows which is not
enough for directly mapped windows as the guest can get more than 4GB.

This adds KVM_CREATE_SPAPR_TCE_64 ioctl and advertises it
via KVM_CAP_SPAPR_TCE_64 capability. The table size is checked against
the locked memory limit.

Since 64bit windows are to support Dynamic DMA windows (DDW), let's add
@bus_offset and @page_shift which are also required by DDW.

Signed-off-by: Alexey Kardashevskiy &lt;aik@ozlabs.ru&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Move ONE_REG AltiVec support to powerpc</title>
<updated>2014-09-22T08:11:33Z</updated>
<author>
<name>Mihai Caraman</name>
</author>
<published>2014-08-20T13:36:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3840edc8033ad5b86deee309c1c321ca54257452'/>
<id>urn:sha1:3840edc8033ad5b86deee309c1c321ca54257452</id>
<content type='text'>
Move ONE_REG AltiVec support to powerpc generic layer.

Signed-off-by: Mihai Caraman &lt;mihai.caraman@freescale.com&gt;
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: BOOKE: Add one reg interface for DBSR</title>
<updated>2014-09-22T08:11:30Z</updated>
<author>
<name>Bharat Bhushan</name>
</author>
<published>2014-08-06T06:38:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c5096720f3e325df697881cc2a5b3d810b57109'/>
<id>urn:sha1:2c5096720f3e325df697881cc2a5b3d810b57109</id>
<content type='text'>
Signed-off-by: Bharat Bhushan &lt;Bharat.Bhushan@freescale.com&gt;
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Book3S: Fix LPCR one_reg interface</title>
<updated>2014-07-28T13:23:16Z</updated>
<author>
<name>Alexey Kardashevskiy</name>
</author>
<published>2014-07-19T07:59:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0840240c0c6bcbac8f0f5db11f95c19aaf9b52f'/>
<id>urn:sha1:a0840240c0c6bcbac8f0f5db11f95c19aaf9b52f</id>
<content type='text'>
Unfortunately, the LPCR got defined as a 32-bit register in the
one_reg interface.  This is unfortunate because KVM allows userspace
to control the DPFD (default prefetch depth) field, which is in the
upper 32 bits.  The result is that DPFD always get set to 0, which
reduces performance in the guest.

We can't just change KVM_REG_PPC_LPCR to be a 64-bit register ID,
since that would break existing userspace binaries.  Instead we define
a new KVM_REG_PPC_LPCR_64 id which is 64-bit.  Userspace can still use
the old KVM_REG_PPC_LPCR id, but it now only modifies those fields in
the bottom 32 bits that userspace can modify (ILE, TC and AIL).
If userspace uses the new KVM_REG_PPC_LPCR_64 id, it can modify DPFD
as well.

Signed-off-by: Alexey Kardashevskiy &lt;aik@ozlabs.ru&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: Booke-hv: Add one reg interface for SPRG9</title>
<updated>2014-07-28T13:23:15Z</updated>
<author>
<name>Bharat Bhushan</name>
</author>
<published>2014-07-25T05:51:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=28d2f421bcff6781b80decac59da414f86f35c2a'/>
<id>urn:sha1:28d2f421bcff6781b80decac59da414f86f35c2a</id>
<content type='text'>
We now support SPRG9 for guest, so also add a one reg interface for same
Note: Changes are in bookehv code only as we do not have SPRG9 on booke-pr.

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