<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/include/asm/reg.h, branch linux-3.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-09-27T02:51:05Z</updated>
<entry>
<title>powerpc/perf: Sample only if SIAR-Valid bit is set in P7+</title>
<updated>2012-09-27T02:51:05Z</updated>
<author>
<name>sukadev@linux.vnet.ibm.com</name>
</author>
<published>2012-09-18T20:56:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e6878835ac4794f25385522d29c634b7bbb7cca9'/>
<id>urn:sha1:e6878835ac4794f25385522d29c634b7bbb7cca9</id>
<content type='text'>
powerpc/perf: Sample only if SIAR-Valid bit is set in P7+

On POWER7+ two new bits (mmcra[35] and mmcra[36]) indicate whether the
contents of SIAR and SDAR are valid.

For marked instructions on P7+, we must save the contents of SIAR and
SDAR registers only if these new bits are set.

This code/check for the SIAR-Valid bit is specific to P7+, so rather than
waste a CPU-feature bit use the PVR flag.

Note that Carl Love proposed a similar change for oprofile:

        https://lkml.org/lkml/2012/6/22/309

Signed-off-by: Sukadev Bhattiprolu &lt;sukadev@linux.vnet.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Add denormalisation exception handling for POWER6/7</title>
<updated>2012-09-17T06:31:47Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-09-10T00:35:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b92a66a65cb4480774066d9a3080c77eb34b7232'/>
<id>urn:sha1:b92a66a65cb4480774066d9a3080c77eb34b7232</id>
<content type='text'>
On POWER6 and POWER7 if the input operand to an instruction is a
denormalised single precision binary floating point value we can take
a denormalisation exception where it's expected that the hypervisor
(HV=1) will fix up the inputs before the instruction is run.

This adds code to handle this denormalisation exception for POWER6 and
POWER7.

It also add a CONFIG_PPC_DENORMALISATION option and sets it in
pseries/ppc64_defconfig.

This is useful on bare metal systems only.  Based on patch from Milton
Miller.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Rework set_dabr so it can take a DABRX value as well</title>
<updated>2012-09-09T23:59:10Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-09-06T21:24:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4474ef055c5d8cb8eaf002d69e49af71e3aa3a88'/>
<id>urn:sha1:4474ef055c5d8cb8eaf002d69e49af71e3aa3a88</id>
<content type='text'>
Rework set_dabr to take a DABRX value as well.

Both the pseries and PS3 hypervisors do some checks on the DABRX
values that are passed in the hcall.  This patch stops bogus values
from being passed to hypervisor.  Also, in the case where we are
clearing the breakpoint, where DABR and DABRX are zero, we modify the
DABRX value to make it valid so that the hcall won't fail.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Define Power7+ PV constant PV_POWER7p</title>
<updated>2012-09-07T00:47:17Z</updated>
<author>
<name>sukadev@linux.vnet.ibm.com</name>
</author>
<published>2012-07-16T11:22:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=22d8ce887991f8f70a68fb68972f187ec79d44b7'/>
<id>urn:sha1:22d8ce887991f8f70a68fb68972f187ec79d44b7</id>
<content type='text'>
This definition will be used by subsequent perf and oprofile patches

Signed-off-by: Sukadev Bhattiprolu &lt;sukadev@linux.vnet.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/booke64: Use SPRG0/3 scratch for bolted TLB miss &amp; crit int</title>
<updated>2012-09-05T05:35:52Z</updated>
<author>
<name>Mihai Caraman</name>
</author>
<published>2012-08-06T03:27:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b64a9dfb091f1eca8b7e58da82f1e7d1d5fe0ad'/>
<id>urn:sha1:8b64a9dfb091f1eca8b7e58da82f1e7d1d5fe0ad</id>
<content type='text'>
Embedded.Hypervisor category defines GSPRG0..3 physical registers for guests.
Avoid SPRG4-7 usage as scratch in host exception handlers, otherwise guest
SPRG4-7 registers will be clobbered.
For bolted TLB miss exception handlers, which is the version currently
supported by KVM, use SPRN_SPRG_GEN_SCRATCH aka SPRG0 instead of
SPRN_SPRG_TLB_SCRATCH aka SPRG6. Keep using TLB PACA slots to fit in one
64-byte cache line.
For critical exception handlers use SPRG3 instead of SPRG7. Provide a routine
to store and restore user-visible SPRGs. This will be subsequently used
to restore VDSO information in SPRG3. Add EX_R13 to paca slots to free up
SPRG3 and change the critical exception epilog to use it.

Signed-off-by: Mihai Caraman &lt;mihai.caraman@freescale.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/booke64: Use GSRR registers in Guest Doorbell interrupts</title>
<updated>2012-09-05T05:35:43Z</updated>
<author>
<name>Mihai Caraman</name>
</author>
<published>2012-08-06T03:27:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5473eb1c07009956be5f4df65d51f8e24d8eb1de'/>
<id>urn:sha1:5473eb1c07009956be5f4df65d51f8e24d8eb1de</id>
<content type='text'>
Guest Doorbell interrupts use guest save and restore registers. Add a new
Guest Doorbell exception type to accommodate GSRR0/1 SPRs usage in exception
prolog and fix the exception handler.

Signed-off-by: Mihai Caraman &lt;mihai.caraman@freescale.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Rename 64-bit PVR constants to PVR_foo</title>
<updated>2012-09-05T05:19:35Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2012-08-19T21:44:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3dbeef657fdc9e870e0b01f811bbb906af052f8'/>
<id>urn:sha1:d3dbeef657fdc9e870e0b01f811bbb906af052f8</id>
<content type='text'>
We have an old FIXME in reg.h which points out that we should standardise
on PVR_foo for our PVR #defines. Currently we use PVR_ on 32-bit and PV_
on 64-bit.

So do that rename and remove the FIXME.

Seeing as we're touching all but one usage of __is_processor(), rename it
to something less ugly and more indicative of what it does, which is
simply to check the PVR version.

Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Add "memory" attribute for mfmsr()</title>
<updated>2012-07-11T05:25:45Z</updated>
<author>
<name>Tiejun Chen</name>
</author>
<published>2012-07-11T04:22:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b416c9a10baae6a177b4f9ee858b8d309542fbef'/>
<id>urn:sha1:b416c9a10baae6a177b4f9ee858b8d309542fbef</id>
<content type='text'>
Add "memory" attribute in inline assembly language as a compiler
barrier to make sure 4.6.x GCC don't reorder mfmsr().

Signed-off-by: Tiejun Chen &lt;tiejun.chen@windriver.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
CC: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>powerpc: Add VDSO version of getcpu</title>
<updated>2012-07-11T04:18:40Z</updated>
<author>
<name>Anton Blanchard</name>
</author>
<published>2012-07-04T20:37:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18ad51dd342a7eb09dbcd059d0b451b616d4dafc'/>
<id>urn:sha1:18ad51dd342a7eb09dbcd059d0b451b616d4dafc</id>
<content type='text'>
We have a request for a fast method of getting CPU and NUMA node IDs
from userspace. This patch implements a getcpu VDSO function,
similar to x86.

Ben suggested we use SPRG3 which is userspace readable. SPRG3 can be
modified by a KVM guest, so we save the SPRG3 value in the paca and
restore it when transitioning from the guest to the host.

I have a glibc patch that implements sched_getcpu on top of this.
Testing on a POWER7:

baseline: 538 cycles
vdso:      30 cycles

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>KVM: PPC: booke: category E.HV (GS-mode) support</title>
<updated>2012-04-08T09:51:19Z</updated>
<author>
<name>Scott Wood</name>
</author>
<published>2011-12-20T15:34:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d30f6e480055e5be12e7a03fd11ea912a451daa5'/>
<id>urn:sha1:d30f6e480055e5be12e7a03fd11ea912a451daa5</id>
<content type='text'>
Chips such as e500mc that implement category E.HV in Power ISA 2.06
provide hardware virtualization features, including a new MSR mode for
guest state.  The guest OS can perform many operations without trapping
into the hypervisor, including transitions to and from guest userspace.

Since we can use SRR1[GS] to reliably tell whether an exception came from
guest state, instead of messing around with IVPR, we use DO_KVM similarly
to book3s.

Current issues include:
 - Machine checks from guest state are not routed to the host handler.
 - The guest can cause a host oops by executing an emulated instruction
   in a page that lacks read permission.  Existing e500/4xx support has
   the same problem.

Includes work by Ashish Kalra &lt;Ashish.Kalra@freescale.com&gt;,
Varun Sethi &lt;Varun.Sethi@freescale.com&gt;, and
Liu Yu &lt;yu.liu@freescale.com&gt;.

Signed-off-by: Scott Wood &lt;scottwood@freescale.com&gt;
[agraf: remove pt_regs usage]
Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
Signed-off-by: Avi Kivity &lt;avi@redhat.com&gt;

</content>
</entry>
</feed>
