1. 14 4月, 2009 1 次提交
  2. 31 12月, 2008 2 次提交
  3. 25 12月, 2008 2 次提交
    • M
      [S390] Remove config options. · c185b783
      Martin Schwidefsky 提交于
      On s390 we always want to run with precise cputime accounting.
      Remove the config options VIRT_TIMER and VIRT_CPU_ACCOUNTING.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      c185b783
    • A
      [S390] audit: get s390 ret_from_fork in sync with other architectures · 8f2961c3
      Al Viro 提交于
      	On s390 we have ret_from_fork jump not to the "do all work we
      normally do on return from syscall" as on x86, ppc, etc., but to the
      "do all such work except audit".  Historical reasons - the codepath
      triggered when we have AUDIT process flag set is separated from the
      normall one and they converge at sysc_return, which is the common
      part of post-syscall work.  And does not include calling audit_syscall_exit() -
      that's done in the end of sysc_tracesys path, just before that path jumps
      to sysc_return.
      
      	IOW, the child returning from fork()/clone()/vfork() doesn't
      call audit_syscall_exit() at all, so no matter what we do with its
      audit context, we are not going to see the audit entry.
      
      	The fix is simple: have ret_from_fork go to the point just past
      the call of sys_.... in the 'we have AUDIT flag set' path.  There we
      have (64bit variant; for 31bit the situation is the same):
      sysc_tracenogo:
              tm      __TI_flags+7(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
              jz      sysc_return
              la      %r2,SP_PTREGS(%r15)     # load pt_regs
              larl    %r14,sysc_return        # return point is sysc_return
              jg      do_syscall_trace_exit
      which is precisely what we need - check the flag, bugger off to sysc_return
      if not set, otherwise call do_syscall_trace_exit() and bugger off to
      sysc_return.  r9 has just been properly set by ret_from_fork itself,
      so we are fine.
      
      	Tested on s390x, seems to work fine.  WARNING: it's been about
      16 years since my last contact with 3X0 assembler[1], so additional
      review would be very welcome.  I don't think I've managed to screw it
      up, but...
      
      [1] that *was* in another country and besides, the box is dead...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      8f2961c3
  4. 27 11月, 2008 1 次提交
    • M
      [S390] fix system call parameter functions. · 59da2139
      Martin Schwidefsky 提交于
      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->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->orig_gprs2 instead.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      59da2139
  5. 15 11月, 2008 1 次提交
  6. 11 10月, 2008 1 次提交
  7. 07 5月, 2008 2 次提交
    • C
      [S390] s390-kvm: leave sie context on work. Removes preemption requirement · 0eaeafa1
      Christian Borntraeger 提交于
      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: NCarsten Otte <cotte@de.ibm.com>
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      0eaeafa1
    • M
      [S390] s390: Optimize user and work TIF check · 2688905e
      Martin Schwidefsky 提交于
      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: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      2688905e
  8. 30 4月, 2008 1 次提交
  9. 17 4月, 2008 1 次提交
    • C
      [S390] kernel: show last breaking-event-address on oops · 9e74a6b8
      Christian Borntraeger 提交于
      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: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      9e74a6b8
  10. 05 2月, 2008 1 次提交
  11. 20 11月, 2007 2 次提交
  12. 12 10月, 2007 1 次提交
  13. 27 7月, 2007 1 次提交
    • H
      [S390] Fix IRQ tracing. · b771aeac
      Heiko Carstens 提交于
      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: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      b771aeac
  14. 10 7月, 2007 1 次提交
  15. 19 6月, 2007 1 次提交
  16. 27 4月, 2007 1 次提交
  17. 28 9月, 2006 1 次提交
  18. 20 9月, 2006 2 次提交
  19. 04 7月, 2006 1 次提交
  20. 02 7月, 2006 1 次提交
  21. 01 7月, 2006 1 次提交
  22. 29 6月, 2006 2 次提交
    • M
      [S390] remove export of sys_call_table · 8f27766a
      Martin Schwidefsky 提交于
      Remove export of the sys_call_table symbol to prevent the misuse of it.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      8f27766a
    • M
      [S390] virtual cpu accounting vs. machine checks. · 63b12246
      Martin Schwidefsky 提交于
      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: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      63b12246
  23. 02 2月, 2006 1 次提交
  24. 07 1月, 2006 1 次提交
  25. 07 11月, 2005 1 次提交
  26. 18 9月, 2005 1 次提交
  27. 10 9月, 2005 1 次提交
  28. 05 9月, 2005 2 次提交
  29. 28 7月, 2005 1 次提交
  30. 26 6月, 2005 1 次提交
  31. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      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