1. 29 3月, 2012 1 次提交
  2. 13 1月, 2012 1 次提交
  3. 27 12月, 2011 1 次提交
    • M
      [S390] cleanup trap handling · aa33c8cb
      Martin Schwidefsky 提交于
      Move the program interruption code and the translation exception identifier
      to the pt_regs structure as 'int_code' and 'int_parm_long' and make the
      first level interrupt handler in entry[64].S store the two values. That
      makes it possible to drop 'prot_addr' and 'trap_no' from the thread_struct
      and to reduce the number of arguments to a lot of functions. Finally
      un-inline do_trap. Overall this saves 5812 bytes in the .text section of
      the 64 bit kernel.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      aa33c8cb
  4. 30 10月, 2011 3 次提交
  5. 03 8月, 2011 1 次提交
  6. 24 7月, 2011 1 次提交
    • M
      [S390] kvm guest address space mapping · e5992f2e
      Martin Schwidefsky 提交于
      Add code that allows KVM to control the virtual memory layout that
      is seen by a guest. The guest address space uses a second page table
      that shares the last level pte-tables with the process page table.
      If a page is unmapped from the process page table it is automatically
      unmapped from the guest page table as well.
      
      The guest address space mapping starts out empty, KVM can map any
      individual 1MB segments from the process virtual memory to any 1MB
      aligned location in the guest virtual memory. If a target segment in
      the process virtual memory does not exist or is unmapped while a
      guest mapping exists the desired target address is stored as an
      invalid segment table entry in the guest page table.
      The population of the guest page table is fault driven.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      e5992f2e
  7. 23 5月, 2011 1 次提交
    • H
      [S390] pfault: cpu hotplug vs missing completion interrupts · f2db2e6c
      Heiko Carstens 提交于
      On cpu hot remove a PFAULT CANCEL command is sent to the hypervisor
      which in turn will cancel all outstanding pfault requests that have
      been issued on that cpu (the same happens with a SIGP cpu reset).
      
      The result is that we end up with uninterruptible processes where
      the interrupt that would wake up these processes never arrives.
      
      In order to solve this all processes which wait for a pfault
      completion interrupt get woken up after a cpu hot remove. The worst
      case that could happen is that they fault again and in turn need to
      wait again.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f2db2e6c
  8. 15 2月, 2011 1 次提交
  9. 05 1月, 2011 2 次提交
  10. 25 10月, 2010 1 次提交
  11. 27 2月, 2010 1 次提交
  12. 23 9月, 2009 1 次提交
  13. 11 9月, 2009 1 次提交
  14. 14 4月, 2009 1 次提交
  15. 26 3月, 2009 1 次提交
  16. 18 3月, 2009 1 次提交
    • M
      [S390] make page table walking more robust · f481bfaf
      Martin Schwidefsky 提交于
      Make page table walking on s390 more robust. The current code requires
      that the pgd/pud/pmd/pte loop is only done for address ranges that are
      below the end address of the last vma of the address space. But this
      is not always true, e.g. the generic page table walker does not guarantee
      this. Change TASK_SIZE/TASK_SIZE_OF to reflect the current size of the
      address space. This makes the generic page table walker happy but it
      breaks the upgrade of a 3 level page table to a 4 level page table.
      To make the upgrade work again another fix is required.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f481bfaf
  17. 25 12月, 2008 1 次提交
  18. 02 8月, 2008 1 次提交
  19. 14 7月, 2008 2 次提交
  20. 30 4月, 2008 1 次提交
  21. 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
  22. 10 2月, 2008 2 次提交
  23. 09 2月, 2008 2 次提交
  24. 06 2月, 2008 1 次提交
  25. 26 1月, 2008 1 次提交
  26. 22 10月, 2007 2 次提交
  27. 10 7月, 2007 1 次提交
  28. 19 6月, 2007 1 次提交
  29. 27 4月, 2007 2 次提交
    • H
      [S390] Processor degradation notification. · 2fc2d1e9
      Heiko Carstens 提交于
      Generate uevents for all cpus if cpu capability changes. This can
      happen e.g. because the cpus are overheating. The cpu capability can
      be read via /sys/devices/system/cpu/cpuN/capability.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      2fc2d1e9
    • M
      [S390] Improved oops output. · bb11e3bd
      Martin Schwidefsky 提交于
      This patch adds two improvements to the oops output. First it adds an
      additional line after the PSW which decodes the different fields of it.
      Second a disassembler is added that decodes the instructions surrounding
      the faulting PSW. The output of a test oops now looks like this:
      
      kernel BUG at init/main.c:419
      illegal operation: 0001 [#1]
      CPU:    0    Not tainted
      Process swapper (pid: 0, task: 0000000000464968, ksp: 00000000004be000)
      Krnl PSW : 0700000180000000 00000000000120b6 (rest_init+0x36/0x38)
                 R:0 T:1 IO:1 EX:1 Key:0 M:0 W:0 P:0 AS:0 CC:0 PM:0 EA:3
      Krnl GPRS: 0000000000000003 00000000004ba017 0000000000000022 0000000000000001
                 000000000003a5f6 0000000000000000 00000000004be6a8 0000000000000000
                 0000000000000000 00000000004b8200 0000000000003a50 0000000000008000
                 0000000000516368 000000000033d008 00000000000120b2 00000000004bdee0
      Krnl Code: 00000000000120a6: e3e0f0980024       stg     %r14,152(%r15)
                 00000000000120ac: c0e500014296       brasl   %r14,3a5d8
                 00000000000120b2: a7f40001           brc     15,120b4
                >00000000000120b6: 0707               bcr     0,%r7
                 00000000000120b8: eb7ff0500024       stmg    %r7,%r15,80(%r15)
                 00000000000120be: c0d000195825       larl    %r13,33d108
                 00000000000120c4: a7f13f00           tmll    %r15,16128
                 00000000000120c8: a7840001           brc     8,120ca
      Call Trace:
      ([<00000000000120b2>] rest_init+0x32/0x38)
       [<00000000004be614>] start_kernel+0x37c/0x410
       [<0000000000012020>] _ehead+0x20/0x80
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      bb11e3bd
  30. 21 2月, 2007 1 次提交
  31. 06 2月, 2007 2 次提交