<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/s390/kernel/entry64.S, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-11-27T10:06:56Z</updated>
<entry>
<title>[S390] fix system call parameter functions.</title>
<updated>2008-11-27T10:06:56Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2008-11-27T10:05:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=59da21398e680e8100625d689c8bebee6a139e93'/>
<id>urn:sha1:59da21398e680e8100625d689c8bebee6a139e93</id>
<content type='text'>
syscall_get_nr() currently returns a valid result only if the call
chain of the traced process includes do_syscall_trace_enter(). But
collect_syscall() can be called for any sleeping task, the result of
syscall_get_nr() in general is completely bogus.

To make syscall_get_nr() work for any sleeping task the traps field
in pt_regs is replace with svcnr - the system call number the process
is executing. If svcnr == 0 the process is not on a system call path.

The syscall_get_arguments and syscall_set_arguments use regs-&gt;gprs[2]
for the first system call parameter. This is incorrect since gprs[2]
may have been overwritten with the system call number if the call
chain includes do_syscall_trace_enter. Use regs-&gt;orig_gprs2 instead.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] ftrace: fix kernel stack backchain walking</title>
<updated>2008-11-14T17:18:53Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-11-14T17:18:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=50bec4ce5d36ebf96189dcc54e20c7fce4bf61bf'/>
<id>urn:sha1:50bec4ce5d36ebf96189dcc54e20c7fce4bf61bf</id>
<content type='text'>
With CONFIG_IRQSOFF_TRACER the trace_hardirqs_off() function includes
a call to __builtin_return_address(1). But we calltrace_hardirqs_off()
from early entry code. There we have just a single stack frame.
So this results in a kernel stack backchain walk that would walk beyond
the kernel stack. Following the NULL terminated backchain this results
in a lowcore read access.

To fix this we simply call trace_hardirqs_off_caller() and pass the
current instruction pointer.

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] ptrace changes</title>
<updated>2008-10-10T19:33:57Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2008-10-10T19:33:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=753c4dd6a2fa2af81f5d809d610d29f2d9dd9bc1'/>
<id>urn:sha1:753c4dd6a2fa2af81f5d809d610d29f2d9dd9bc1</id>
<content type='text'>
* System call parameter and result access functions
* Add tracehook calls
* Split syscall_trace into two functions do_syscall_trace_enter and
  do_syscall_trace_exit

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] s390-kvm: leave sie context on work. Removes preemption requirement</title>
<updated>2008-05-07T07:23:01Z</updated>
<author>
<name>Christian Borntraeger</name>
</author>
<published>2008-05-07T07:22:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0eaeafa10f3b2bd027e95859a6785d4c7fcc174c'/>
<id>urn:sha1:0eaeafa10f3b2bd027e95859a6785d4c7fcc174c</id>
<content type='text'>
From: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;

This patch fixes a bug with cpu bound guest on kvm-s390. Sometimes it
was impossible to deliver a signal to a spinning guest. We used
preemption as a circumvention. The preemption notifiers called
vcpu_load, which checked for pending signals and triggered a host
intercept. But even with preemption, a sigkill was not delivered
immediately.

This patch changes the low level host interrupt handler to check for the
SIE  instruction, if TIF_WORK is set. In that case we change the
instruction pointer of the return PSW to rerun the vcpu_run loop. The kvm
code sees an intercept reason 0 if that happens. This patch adds accounting
for these types of intercept as well.

The advantages:
- works with and without preemption
- signals are delivered immediately
- much better host latencies without preemption

Acked-by: Carsten Otte &lt;cotte@de.ibm.com&gt;
Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] s390: Optimize user and work TIF check</title>
<updated>2008-05-07T07:23:00Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2008-05-07T07:22:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2688905e6a9b3647bf7b452cb0ff2bdb166bd8fe'/>
<id>urn:sha1:2688905e6a9b3647bf7b452cb0ff2bdb166bd8fe</id>
<content type='text'>
On return from syscall or interrupt, we have to check if we return to
userspace (likely) and if there is work todo (less likely) to decide
if we handle the work. We can optimize this check: we first check for
the less likely work case and then check for userspace.

This patch is also a preparation for an additional patch, that fixes a bug
in KVM dealing with cpu bound guests.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>signals: s390: renumber TIF_RESTORE_SIGMASK</title>
<updated>2008-04-30T15:29:37Z</updated>
<author>
<name>Roland McGrath</name>
</author>
<published>2008-04-30T07:53:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02a029b325854a98e76f0a79ab38bec13e66bd38'/>
<id>urn:sha1:02a029b325854a98e76f0a79ab38bec13e66bd38</id>
<content type='text'>
TIF_RESTORE_SIGMASK no longer needs to be in the _TIF_WORK_* masks.  Those low
bits are scarce, and are all used up now.  Renumber TIF_RESTORE_SIGMASK to
free one up.

Signed-off-by: Roland McGrath &lt;roland@redhat.com&gt;
Cc: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: "Luck, Tony" &lt;tony.luck@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[S390] kernel: show last breaking-event-address on oops</title>
<updated>2008-04-17T05:47:07Z</updated>
<author>
<name>Christian Borntraeger</name>
</author>
<published>2008-04-17T05:46:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e74a6b8983c2653dd2a6f51e634efa281e95d59'/>
<id>urn:sha1:9e74a6b8983c2653dd2a6f51e634efa281e95d59</id>
<content type='text'>
Newer s390 models have a breaking-event-address-recording register.
Each time an instruction causes a break in the sequential instruction
execution, the address is saved in that hardware register. On a program
interrupt the address is copied to the lowcore address 272-279, which
makes it software accessible.

This patch changes the program check handler and the stack overflow
checker to copy the value into the pt_regs argument.
The oops output is enhanced to show the last known breaking address.
It might give additional information if the stack trace is corrupted.

The feature is only available on 64 bit.

The new oops output looks like:

[---------snip----------]
Modules linked in: vmcp sunrpc qeth_l2 dm_mod qeth ccwgroup
CPU: 2 Not tainted 2.6.24zlive-host #8
Process modprobe (pid: 4788, task: 00000000bf3d8718, ksp: 00000000b2b0b8e0)
Krnl PSW : 0704200180000000 000003e000020028 (vmcp_init+0x28/0xe4 [vmcp])
           R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
Krnl GPRS: 0000000004000002 000003e000020000 0000000000000000 0000000000000001
           000000000015734c ffffffffffffffff 000003e0000b3b00 0000000000000000
           000003e00007ca30 00000000b5bb5d40 00000000b5bb5800 000003e0000b3b00
           000003e0000a2000 00000000003ecf50 00000000b2b0bd50 00000000b2b0bcb0
Krnl Code: 000003e000020018: c0c000040ff4       larl    %r12,3e0000a2000
           000003e00002001e: e3e0f0000024       stg     %r14,0(%r15)
           000003e000020024: a7f40001           brc     15,3e000020026
          &gt;000003e000020028: e310c0100004       lg      %r1,16(%r12)
           000003e00002002e: c020000413dc       larl    %r2,3e0000a27e6
           000003e000020034: c0a00004aee6       larl    %r10,3e0000b5e00
           000003e00002003a: a7490001           lghi    %r4,1
           000003e00002003e: a75900f0           lghi    %r5,240
Call Trace:
([&lt;000000000014b300&gt;] blocking_notifier_call_chain+0x2c/0x40)
 [&lt;000000000015735c&gt;] sys_init_module+0x19d8/0x1b08
 [&lt;0000000000110afc&gt;] sysc_noemu+0x10/0x16
 [&lt;000002000011cda2&gt;] 0x2000011cda2
Last Breaking-Event-Address:
 [&lt;000003e000020024&gt;] vmcp_init+0x24/0xe4 [vmcp]
[---------snip----------]

Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] Fix couple of section mismatches.</title>
<updated>2008-02-05T15:50:56Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-02-05T15:50:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2bc89b5ece48dc888734e8760ba5ad8566431912'/>
<id>urn:sha1:2bc89b5ece48dc888734e8760ba5ad8566431912</id>
<content type='text'>
Fix couple of section mismatches. And since we touch the code
anyway change the IPL code to use C99 initializers.

Cc: Michael Holzheu &lt;holzheu@de.ibm.com&gt;
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] Fix kernel preemption.</title>
<updated>2007-11-20T10:13:46Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2007-11-20T10:13:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8e7a54cd06b0b0174029ef3a7f5a1415a2c28f2'/>
<id>urn:sha1:b8e7a54cd06b0b0174029ef3a7f5a1415a2c28f2</id>
<content type='text'>
When returning from IRQ handling and TIF_NEED_RESCHED is set we must
call preempt_schedule_irq() instead of schedule().
Otherwise the BKL might be unlocked in schedule() and therfore
everything that relies on the BKL is broken.

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] Fix irq tracing and lockdep_sys_exit calls.</title>
<updated>2007-11-20T10:13:45Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2007-11-20T10:13:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=411788ea7fca01ee803af8225ac35807b4d02050'/>
<id>urn:sha1:411788ea7fca01ee803af8225ac35807b4d02050</id>
<content type='text'>
Current support for TRACE_IRQFLAGS and lockdep_sys_exit is broken.
IRQ flag tracing is broken for program checks. Even worse is that
the newly introduced calls to lockdep_sys_exit are in the critical
section code which is not supposed to call any C functions. In
addition the checks if locks are still held are also done when
returning to kernel code which is broken as well.
Fix all this by disabling interrupts and machine checks at the
exit paths and then do the appropriate checks and calls.

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>
</feed>
