<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/tools/testing/selftests/powerpc, branch v4.6.4</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.6.4</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.6.4'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-03-02T12:34:47+00:00</updated>
<entry>
<title>selftests/powerpc: Test FPU and VMX regs in signal ucontext</title>
<updated>2016-03-02T12:34:47+00:00</updated>
<author>
<name>Cyril Bur</name>
<email>cyrilbur@gmail.com</email>
</author>
<published>2016-02-29T06:53:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=48e8c571a4f86978c72c2aa799dc7436d1c38c77'/>
<id>urn:sha1:48e8c571a4f86978c72c2aa799dc7436d1c38c77</id>
<content type='text'>
Load up the non volatile FPU and VMX regs and ensure that they are the
expected value in a signal handler

Signed-off-by: Cyril Bur &lt;cyrilbur@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Test preservation of FPU and VMX regs across preemption</title>
<updated>2016-03-02T12:34:47+00:00</updated>
<author>
<name>Cyril Bur</name>
<email>cyrilbur@gmail.com</email>
</author>
<published>2016-02-29T06:53:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e5ab8be68e4421d7f8d4e69e2a8ddb3d69508d2a'/>
<id>urn:sha1:e5ab8be68e4421d7f8d4e69e2a8ddb3d69508d2a</id>
<content type='text'>
Loop in assembly checking the registers with many threads.

Signed-off-by: Cyril Bur &lt;cyrilbur@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Test the preservation of FPU and VMX regs across syscall</title>
<updated>2016-03-02T12:34:46+00:00</updated>
<author>
<name>Cyril Bur</name>
<email>cyrilbur@gmail.com</email>
</author>
<published>2016-02-29T06:53:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=01127f1ead4cef75e2b9b309e0ea95418ccd53bd'/>
<id>urn:sha1:01127f1ead4cef75e2b9b309e0ea95418ccd53bd</id>
<content type='text'>
Test that the non volatile floating point and Altivec registers get
correctly preserved across the fork() syscall.

fork() works nicely for this purpose, the registers should be the same for
both parent and child

Signed-off-by: Cyril Bur &lt;cyrilbur@gmail.com&gt;
[mpe: Add include guards to basic_asm.h, minor formatting]
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Remove -flto from common CFLAGS</title>
<updated>2016-03-02T12:34:46+00:00</updated>
<author>
<name>Suraj Jitindar Singh</name>
<email>sjitindarsingh@gmail.com</email>
</author>
<published>2016-02-29T06:29:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a4cf0a2e1d3b98cac5fd5ba92803722255374e9e'/>
<id>urn:sha1:a4cf0a2e1d3b98cac5fd5ba92803722255374e9e</id>
<content type='text'>
LTO can cause GCC to inline some functions which have attributes set.
The act of inlining the functions can lead to GCC forgetting about the
attributes which leads to incorrect tests.

Notable example being: __attribute__((__target__("no-vsx")))

LTO can also interact strangely with custom assembly functions and cause
tests to intermittently fail.

Both these cases are hard to detect and require manual inspection of
binaries which is unlikely to happen for all tests. Furthermore, LTO
optimisations are not necessary for selftests and correctness is
paramount and as such it is best to disable LTO.

LTO can be enabled on a per test basis.

A pseries_le_defconfig kernel on a POWER8 was used to determine that the
same subset of selftests pass and fail with and without -flto in the
common Makefile.

Signed-off-by: Suraj Jitindar Singh &lt;sjitindarsingh@gmail.com&gt;
Reviewed-by: Cyril Bur &lt;cyrilbur@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Fix out of bounds access in TM signal test</title>
<updated>2016-03-02T12:34:45+00:00</updated>
<author>
<name>Michael Ellerman</name>
<email>mpe@ellerman.id.au</email>
</author>
<published>2016-03-02T12:28:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=501e279c231bd8d5eed4ecea5a18dcd79d51b026'/>
<id>urn:sha1:501e279c231bd8d5eed4ecea5a18dcd79d51b026</id>
<content type='text'>
Gcc helpfully points out that we're accessing past the end of the gprs
array:

  tm-signal-msr-resv.c: In function 'signal_usr1':
  tm-signal-msr-resv.c:43:37: error: array subscript is above array bounds [-Werror=array-bounds]
    ucp-&gt;uc_mcontext.regs-&gt;gpr[PT_MSR] |= (7ULL);

We haven't noticed previously because -flto was hiding it somehow.

The code is confused, PT_MSR isn't a gpr, instead it's in
uc_regs-&gt;gregs, so fix it.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Add script to test HMI functionality</title>
<updated>2015-12-16T23:46:43+00:00</updated>
<author>
<name>Daniel Axtens</name>
<email>dja@axtens.net</email>
</author>
<published>2015-12-06T23:50:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a8da474ec18f4c4c39f83202d64d73a23b755c1d'/>
<id>urn:sha1:a8da474ec18f4c4c39f83202d64d73a23b755c1d</id>
<content type='text'>
HMIs (Hypervisor Management|Maintenance Interrupts) are a class of interrupt
on POWER systems.

HMI support has traditionally been exceptionally difficult to test, however
Skiboot ships a tool that, with the correct magic numbers, will inject them.

This, therefore, is a first pass at a script to inject HMIs and monitor
Linux's response. It injects an HMI on each core on every chip in turn
It then watches dmesg to see if it's acknowledged by Linux.

On a Tuletta, I observed that we see 8 (or sometimes 9 or more) events per
injection, regardless of SMT setting, so we wait for 8 before progressing.

It sits in a new scripts/ directory in selftests/powerpc, because it's not
designed to be run as part of the regular make selftests process. In
particular, it is quite possibly going to end up garding lots of your CPUs,
so it should only be run if you know how to undo that.

CC: Mahesh J Salgaonkar &lt;mahesh.salgaonkar@in.ibm.com&gt;
Signed-off-by: Daniel Axtens &lt;dja@axtens.net&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Make context_switch touch FP/altivec/vector by default</title>
<updated>2015-12-16T23:46:43+00:00</updated>
<author>
<name>Michael Ellerman</name>
<email>mpe@ellerman.id.au</email>
</author>
<published>2015-12-02T09:44:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=51c21e72eb99d1136614135d633baae269893778'/>
<id>urn:sha1:51c21e72eb99d1136614135d633baae269893778</id>
<content type='text'>
Simply because it touches more code paths that way, and therefore tests
more things.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Acked-by: Anton Blanchard &lt;anton@samba.org&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Make context_switch do something with no args</title>
<updated>2015-12-16T23:46:42+00:00</updated>
<author>
<name>Michael Ellerman</name>
<email>mpe@ellerman.id.au</email>
</author>
<published>2015-12-02T09:44:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ea0c321784565c681507e02acf900deaa1e9e952'/>
<id>urn:sha1:ea0c321784565c681507e02acf900deaa1e9e952</id>
<content type='text'>
For ease of use make the context_switch test do something useful when
called with no arguments.

Default to a 30 second run, using threads, doing yield, and use any
online cpu. Make it print out what it's doing to avoid confusion.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Acked-by: Anton Blanchard &lt;anton@samba.org&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Import Anton's context_switch2 benchmark</title>
<updated>2015-12-16T23:46:42+00:00</updated>
<author>
<name>Michael Ellerman</name>
<email>mpe@ellerman.id.au</email>
</author>
<published>2015-12-02T09:44:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=00b7ec5c9cf338902faea2e40801573a384e45be'/>
<id>urn:sha1:00b7ec5c9cf338902faea2e40801573a384e45be</id>
<content type='text'>
This gets referred to a lot in commit messages, so let's pull it into
the selftests.

Almost vanilla from: http://ozlabs.org/~anton/junkcode/context_switch2.c

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Acked-by: Anton Blanchard &lt;anton@samba.org&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Move pick_online_cpu() up into utils.c</title>
<updated>2015-12-16T23:46:41+00:00</updated>
<author>
<name>Michael Ellerman</name>
<email>mpe@ellerman.id.au</email>
</author>
<published>2015-12-16T07:59:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d1301afd71bd38b1610b391e50debf766faa84be'/>
<id>urn:sha1:d1301afd71bd38b1610b391e50debf766faa84be</id>
<content type='text'>
We want to use this in another test, so make it available at the top of
the powerpc selftests tree.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
</feed>
