<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/s390/kernel/entry.S, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-10-29T14:50:50Z</updated>
<entry>
<title>[S390] fix kprobes single stepping</title>
<updated>2010-10-29T14:50:50Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-10-29T14:50:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ec2708053b647969bee862902872d44a5f9b439'/>
<id>urn:sha1:9ec2708053b647969bee862902872d44a5f9b439</id>
<content type='text'>
Fix kprobes after git commit 1e54622e0403891b10f2105663e0f9dd595a1f17
broke it. The kprobe_handler is now called with interrupts in the state
at the time of the breakpoint. The single step of the replaced instruction
is done with interrupts off which makes it necessary to enable and disable
the interupts in the kprobes code.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] cleanup system call parameter setup</title>
<updated>2010-10-25T14:10:19Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-10-25T14:10:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=baa071588c3ffcc1a8721faf9337140e85d34bf6'/>
<id>urn:sha1:baa071588c3ffcc1a8721faf9337140e85d34bf6</id>
<content type='text'>
Do the setup of the stack overflow argument for the sixth system
call parameter right before the branch to the system call function.
That simplifies the system call parameter access code.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] cleanup lowcore access from external interrupts</title>
<updated>2010-10-25T14:10:19Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-10-25T14:10:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f6649a7e5a9ee99e9623878f4a5579cc2f6cdd51'/>
<id>urn:sha1:f6649a7e5a9ee99e9623878f4a5579cc2f6cdd51</id>
<content type='text'>
Read external interrupts parameters from the lowcore in the first
level interrupt handler in entry[64].S.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] cleanup lowcore access from program checks</title>
<updated>2010-10-25T14:10:19Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-10-25T14:10:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1e54622e0403891b10f2105663e0f9dd595a1f17'/>
<id>urn:sha1:1e54622e0403891b10f2105663e0f9dd595a1f17</id>
<content type='text'>
Read all required fields for program checks from the lowcore in the
first level interrupt handler in entry[64].S. If the context that
caused the fault was enabled for interrupts we can now re-enable the
irqs in entry[64].S.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] Fix IRQ tracing in case of PER</title>
<updated>2010-07-27T17:29:42Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2010-07-27T17:29:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f5cdac274c62ab61874374abb60f2310ab979295'/>
<id>urn:sha1:f5cdac274c62ab61874374abb60f2310ab979295</id>
<content type='text'>
In case user space is single stepped (PER) the program check handler
claims too early that IRQs are enabled on the return path.
Subsequent checks will notice that the IRQ mask in the PSW and
what lockdep thinks the IRQ mask should be do not correlate and
therefore will print a warning to the console and disable lockdep.

Fix this by doing all the work within the correct context.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] add breaking event address for user space</title>
<updated>2010-05-17T08:00:15Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-05-17T08:00:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86f2552bbd0e17b19bb5e9881042533eaea553c7'/>
<id>urn:sha1:86f2552bbd0e17b19bb5e9881042533eaea553c7</id>
<content type='text'>
Copy the last breaking event address from the lowcore to a new
field in the thread_struct on each system entry. Add a new
ptrace request PTRACE_GET_LAST_BREAK and a new utrace regset
REGSET_LAST_BREAK to query the last breaking event.

This is useful for debugging wild branches in user space code.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] idle time accounting vs. machine checks</title>
<updated>2010-05-17T08:00:15Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-05-17T08:00:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6377981faf1a4425b0531e577736ef03df97c8f6'/>
<id>urn:sha1:6377981faf1a4425b0531e577736ef03df97c8f6</id>
<content type='text'>
A machine check can interrupt the i/o and external interrupt handler
anytime. If the machine check occurs while the interrupt handler is
waking up from idle vtime_start_cpu can get executed a second time
and the int_clock / async_enter_timer values in the lowcore get
clobbered. This can confuse the cpu time accounting.
To fix this problem two changes are needed. First the machine check
handler has to use its own copies of int_clock and async_enter_timer,
named mcck_clock and mcck_enter_timer. Second the nested execution
of vtime_start_cpu has to be prevented. This is done in s390_idle_check
by checking the wait bit in the program status word.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] improve irq tracing code in entry[64].S</title>
<updated>2010-05-17T08:00:15Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-05-17T08:00:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6a2df3a87276cdc08fd87070d09ea18d1fb9d622'/>
<id>urn:sha1:6a2df3a87276cdc08fd87070d09ea18d1fb9d622</id>
<content type='text'>
The system call path in entry[64].S is run with interrupts enabled.
Remove the irq tracing check from the system call exit code. If a
program check interrupted a context enabled for interrupts do a
call to trace_irq_off_caller in the program check handler before
branching to the system call exit code.
Restructure the system call and io interrupt return code to avoid
avoid the lpsw[e] to disable machine checks.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] cleanup sysc_work and io_work code</title>
<updated>2010-05-17T08:00:15Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-05-17T08:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=43d399d2ab7e96cb8d952d0ba4e9131587b7c8b9'/>
<id>urn:sha1:43d399d2ab7e96cb8d952d0ba4e9131587b7c8b9</id>
<content type='text'>
Cleanup the #ifdef mess at io_work in entry[64].S and streamline the
TIF work code of the system call and io exit path.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] fix io_return critical section cleanup</title>
<updated>2010-04-09T11:43:02Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2010-04-09T11:43:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=176b1803ce4690d0dd94e16f118dbd14af045034'/>
<id>urn:sha1:176b1803ce4690d0dd94e16f118dbd14af045034</id>
<content type='text'>
If a machine check interrupts the io interrupt handler on one of the
instructions between io_return and io_leave the critical section
cleanup code will move the return psw to io_work_loop. By doing that
the switch from the asynchronous interrupt stack to the process stack
is skipped. If e.g. TIF_NEED_RESCHED is set things break because
the scheduler is called with the asynchronous interrupts stack.
Moving the psw back to io_return instead fixes the problem.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
