<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/tools/testing/selftests/powerpc/tm/Makefile, branch linux-4.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-05-11T11:54:14Z</updated>
<entry>
<title>selftests/powerpc: Add test to check if TM SPRs are corrupted</title>
<updated>2016-05-11T11:54:14Z</updated>
<author>
<name>Rashmica Gupta</name>
</author>
<published>2015-12-23T05:49:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16aab321872400a4ce35b90ba40484fcb5d636ba'/>
<id>urn:sha1:16aab321872400a4ce35b90ba40484fcb5d636ba</id>
<content type='text'>
Testing that the TM SPRs are behaving the way they should. Uses more
threads than cpus to see if the following register values persist with
context switching:
- the FS (failure summary) flag in TEXASR
- TFIAR and TFHAR

Signed-off-by: Rashmica Gupta &lt;rashmicy@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Add TM test to check if TAR is corrupted</title>
<updated>2016-05-11T11:54:13Z</updated>
<author>
<name>Rashmica Gupta</name>
</author>
<published>2015-12-23T05:49:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbccb4940c9c9c8c93fcf733445e96dd2d6890d6'/>
<id>urn:sha1:dbccb4940c9c9c8c93fcf733445e96dd2d6890d6</id>
<content type='text'>
If the transaction is aborted, the TAR should be rolled back to the
checkpointed value before the transaction began. The value written to the
TAR when the transaction is suspended should only remain there if the
transaction completes successfully.

Signed-off-by: Rashmica Gupta &lt;rashmicy@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Add test for forking inside transaction</title>
<updated>2016-05-11T11:54:13Z</updated>
<author>
<name>Rashmica Gupta</name>
</author>
<published>2015-12-23T05:49:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d95be4ca3e457044be55c8b1c1b5ac64f17d8a92'/>
<id>urn:sha1:d95be4ca3e457044be55c8b1c1b5ac64f17d8a92</id>
<content type='text'>
This test does a fork syscall inside a transaction. Basic sniff test to see
if we can enter the kernel during a transaction.

Signed-off-by: Rashmica Gupta &lt;rashmicy@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Add test to check if VSRs are corrupted</title>
<updated>2015-12-14T09:41:50Z</updated>
<author>
<name>Rashmica Gupta</name>
</author>
<published>2015-12-10T09:49:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5f337e3e5b04b32793fd51adab438d46df99c933'/>
<id>urn:sha1:5f337e3e5b04b32793fd51adab438d46df99c933</id>
<content type='text'>
When a transaction is aborted, VSR values should rollback to the
checkpointed values before the transaction began. VSRs used elsewhere in
the kernel during a transaction, or while the transaction is suspended
should not affect the checkpointed values.

Prior to the bug fix in commit d31626f70b61 ("powerpc: Don't corrupt
transactional state when using FP/VMX in kernel") when VMX was requested
by the kernel the .vr_state (which held the checkpointed state of VSRs
before the transaction) was overwritten with the current state from
outside the transation. Thus if the transaction did not complete, the
VSR values would be "rolled back" to potentially incorrect values.

Signed-off-by: Rashmica Gupta &lt;rashmicy@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Add TM signal with invalid stack test</title>
<updated>2015-12-14T09:41:49Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2015-11-20T04:15:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a26f415bf71640f0141e5e946384444675206b6a'/>
<id>urn:sha1:a26f415bf71640f0141e5e946384444675206b6a</id>
<content type='text'>
Test the kernels signal generation code to ensure it can handle an
invalid stack pointer when transactional.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Tested-by: Anshuman Khandual &lt;khandual@linux.vnet.ibm.com&gt;
[mpe: Skip if we don't have TM]
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Add TM signal return test</title>
<updated>2015-12-14T09:41:48Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2015-11-20T04:15:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=25007a69e852389985ee98235e76d740d4821c6c'/>
<id>urn:sha1:25007a69e852389985ee98235e76d740d4821c6c</id>
<content type='text'>
Test the kernel's signal return code to ensure that it doesn't crash
when both the transactional and suspend MSR bits are set in the signal
context.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Tested-by: Anshuman Khandual &lt;khandual@linux.vnet.ibm.com&gt;
[mpe: Skip if we don't have TM]
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Skip tm-resched-dscr if we don't have TM</title>
<updated>2015-12-14T09:41:48Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2015-12-02T05:00:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b319ee8445961c5f7b2fd199c0ef99c418ee2d4a'/>
<id>urn:sha1:b319ee8445961c5f7b2fd199c0ef99c418ee2d4a</id>
<content type='text'>
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>selftests/powerpc: Move get_auxv_entry() into utils.c</title>
<updated>2015-12-14T09:41:47Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2015-11-24T02:05:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fcb45ec074725baeb3aaa1b1854b9f44c3eebacf'/>
<id>urn:sha1:fcb45ec074725baeb3aaa1b1854b9f44c3eebacf</id>
<content type='text'>
This doesn't really belong in harness.c, it's a helper function. So move
it into utils.c.

Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/tm: Abort syscalls in active transactions</title>
<updated>2015-06-19T07:10:28Z</updated>
<author>
<name>Sam bobroff</name>
</author>
<published>2015-06-12T01:06:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4b56f9ecab40f3b4ef53e130c9f6663be491894'/>
<id>urn:sha1:b4b56f9ecab40f3b4ef53e130c9f6663be491894</id>
<content type='text'>
This patch changes the syscall handler to doom (tabort) active
transactions when a syscall is made and return very early without
performing the syscall and keeping side effects to a minimum (no CPU
accounting or system call tracing is performed). Also included is a
new HWCAP2 bit, PPC_FEATURE2_HTM_NOSC, to indicate this
behaviour to userspace.

Currently, the system call instruction automatically suspends an
active transaction which causes side effects to persist when an active
transaction fails.

This does change the kernel's behaviour, but in a way that was
documented as unsupported.  It doesn't reduce functionality as
syscalls will still be performed after tsuspend; it just requires that
the transaction be explicitly suspended.  It also provides a
consistent interface and makes the behaviour of user code
substantially the same across powerpc and platforms that do not
support suspended transactions (e.g. x86 and s390).

Performance measurements using
http://ozlabs.org/~anton/junkcode/null_syscall.c indicate the cost of
a normal (non-aborted) system call increases by about 0.25%.

Signed-off-by: Sam Bobroff &lt;sam.bobroff@au1.ibm.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>Revert "powerpc/tm: Abort syscalls in active transactions"</title>
<updated>2015-04-30T05:24:58Z</updated>
<author>
<name>Michael Ellerman</name>
</author>
<published>2015-04-30T05:13:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68fc378ce332cc4efd7f314d3e6e15e83f53ebf2'/>
<id>urn:sha1:68fc378ce332cc4efd7f314d3e6e15e83f53ebf2</id>
<content type='text'>
This reverts commit feba40362b11341bee6d8ed58d54b896abbd9f84.

Although the principle of this change is good, the implementation has a
few issues.

Firstly we can sometimes fail to abort a syscall because r12 may have
been clobbered by C code if we went down the virtual CPU accounting
path, or if syscall tracing was enabled.

Secondly we have decided that it is safer to abort the syscall even
earlier in the syscall entry path, so that we avoid the syscall tracing
path when we are transactional.

So that we have time to thoroughly test those changes we have decided to
revert this for this merge window and will merge the fixed version in
the next window.

NB. Rather than reverting the selftest we just drop tm-syscall from
TEST_PROGS so that it's not run by default.

Fixes: feba40362b11 ("powerpc/tm: Abort syscalls in active transactions")
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
</feed>
