1. 07 May, 2008 2 commits
    • Christian Borntraeger's avatar
      [S390] s390-kvm: leave sie context on work. Removes preemption requirement · 0eaeafa1
      Christian Borntraeger authored
      
      
      From: Martin Schwidefsky <schwidefsky@de.ibm.com>
      
      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: default avatarCarsten Otte <cotte@de.ibm.com>
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      0eaeafa1
    • Martin Schwidefsky's avatar
      [S390] s390: Optimize user and work TIF check · 2688905e
      Martin Schwidefsky authored
      
      
      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: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      2688905e
  2. 30 Apr, 2008 1 commit
  3. 17 Apr, 2008 1 commit
    • Christian Borntraeger's avatar
      [S390] kernel: show last breaking-event-address on oops · 9e74a6b8
      Christian Borntraeger authored
      
      
      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
                >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:
      ([<000000000014b300>] blocking_notifier_call_chain+0x2c/0x40)
       [<000000000015735c>] sys_init_module+0x19d8/0x1b08
       [<0000000000110afc>] sysc_noemu+0x10/0x16
       [<000002000011cda2>] 0x2000011cda2
      Last Breaking-Event-Address:
       [<000003e000020024>] vmcp_init+0x24/0xe4 [vmcp]
      [---------snip----------]
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      9e74a6b8
  4. 05 Feb, 2008 1 commit
  5. 20 Nov, 2007 2 commits
  6. 11 Oct, 2007 1 commit
  7. 27 Jul, 2007 1 commit
    • Heiko Carstens's avatar
      [S390] Fix IRQ tracing. · b771aeac
      Heiko Carstens authored
      
      
      If a machine check is pending and the external or I/O interrupt handler
      returns to userspace io_mcck_pending is going to call s390_handle_mcck.
      Before this happens a call to TRACE_IRQS_ON was already made since we
      know that we are going back to userspace and hence interrupts will be
      enabled. So there was an indication that interrupts are enabled while
      in reality they are still disabled.
      s390_handle_mcck will do a local_irq_save/restore pair and confuse
      lockdep which later complains about inconsistent irq tracing.
      To solve this just call trace_hardirqs_off before calling
      s390_handle_mcck and trace_hardirqs_on afterwards.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      b771aeac
  8. 10 Jul, 2007 1 commit
  9. 19 Jun, 2007 1 commit
  10. 27 Apr, 2007 1 commit
  11. 28 Sep, 2006 1 commit
  12. 20 Sep, 2006 2 commits
  13. 03 Jul, 2006 1 commit
  14. 01 Jul, 2006 1 commit
  15. 30 Jun, 2006 1 commit
  16. 29 Jun, 2006 2 commits
    • Martin Schwidefsky's avatar
      [S390] remove export of sys_call_table · 8f27766a
      Martin Schwidefsky authored
      
      
      Remove export of the sys_call_table symbol to prevent the misuse of it.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      8f27766a
    • Martin Schwidefsky's avatar
      [S390] virtual cpu accounting vs. machine checks. · 63b12246
      Martin Schwidefsky authored
      
      
      If a machine checks interrupts the external or the i/o interrupt
      handler before they have completed the cpu time calculations, the
      accounting goes wrong. After the cpu returned from the machine check
      handler to the interrupted interrupt handler, a negative cpu time delta
      can occur.  If the accumulated cpu time in lowcore is small enough
      this value can get negative as well. The next jiffy interrupt will pick
      up that negative value, shift it by 12 and add the now huge positive
      value to the cpu time of the process.
      To solve this the machine check handler is modified not to change any
      of the timestamps in the lowcore if the machine check interrupted kernel
      context.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      63b12246
  17. 01 Feb, 2006 1 commit
  18. 06 Jan, 2006 1 commit
  19. 07 Nov, 2005 1 commit
  20. 17 Sep, 2005 1 commit
  21. 09 Sep, 2005 1 commit
  22. 05 Sep, 2005 2 commits
  23. 27 Jul, 2005 1 commit
  24. 25 Jun, 2005 1 commit
  25. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4