1. 26 9月, 2012 3 次提交
    • J
      s390: add support for runtime instrumentation · e4b8b3f3
      Jan Glauber 提交于
      Allow user-space threads to use runtime instrumentation (RI). To enable RI
      for a thread there is a new s390 specific system call, sys_s390_runtime_instr,
      that takes as parameter a realtime signal number. If the RI facility is
      available the system call sets up a control block for the calling thread with
      the appropriate permissions for the thread to modify the control block.
      
      The user-space thread can then use the store and modify RI instructions to
      alter the control block and start/stop the instrumentation via RION/RIOFF.
      
      If the user specified program buffer runs full RI triggers an external
      interrupt. The external interrupt is translated to a real-time signal that
      is delivered to the thread that enabled RI on that CPU. The number of
      the real-time signal is the number specified in the RI system call. So,
      user-space can select any available real-time signal number in case the
      application itself uses real-time signals for other purposes.
      
      The kernel saves the RI control blocks on task switch only if the running
      thread was enabled for RI. Therefore, the performance impact on task switch
      should be negligible if RI is not used.
      
      RI is only enabled for user-space mode and is disabled for the supervisor
      state.
      Reviewed-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      e4b8b3f3
    • H
      s390/kexec: move machine_crash_shutdown() to machine_kexec.c · 48a8ca03
      Heiko Carstens 提交于
      machine_crash_shutdown() was the only function in crash.c.
      So move the function and delete one file.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      48a8ca03
    • H
      s390/cache: expose cpu cache topology via sysfs · 881730ad
      Heiko Carstens 提交于
      Expose cpu cache topology via sysfs.
      The created sysfs directory structure is compatible to what x86, ia64
      and powerpc have.
      On s390 we expose only information about cpu caches which are private
      to a cpu via sysfs . Caches which are shared between cpus do not have
      a sysfs representation.
      The reason for that is that the file "shared_cpu_map" is mandatory
      and only if running under LPAR it is possible to tell which cpus
      share which cache. Second level hypervisors however do not and cannot
      expose that information to guests.
      In order to have a consistent view we made the choice to always only
      expose information about private cpu caches via sysfs.
      
      Example for a z196 cpu (cpu1 in /sys/devices/cpu):
      
      cpu1/cache/index0/size -- 64K
      cpu1/cache/index0/type -- Data
      cpu1/cache/index0/level -- 1
      cpu1/cache/index0/number_of_sets -- 64
      cpu1/cache/index0/shared_cpu_map -- 00000000,00000002
      cpu1/cache/index0/shared_cpu_list -- 1
      cpu1/cache/index0/coherency_line_size -- 256
      cpu1/cache/index0/ways_of_associativity -- 4
      cpu1/cache/index1/size -- 128K
      cpu1/cache/index1/type -- Instruction
      cpu1/cache/index1/level -- 1
      cpu1/cache/index1/number_of_sets -- 64
      cpu1/cache/index1/shared_cpu_map -- 00000000,00000002
      cpu1/cache/index1/shared_cpu_list -- 1
      cpu1/cache/index1/coherency_line_size -- 256
      cpu1/cache/index1/ways_of_associativity -- 8
      cpu1/cache/index2/size -- 1536K
      cpu1/cache/index2/type -- Unified
      cpu1/cache/index2/level -- 2
      cpu1/cache/index2/number_of_sets -- 512
      cpu1/cache/index2/shared_cpu_map -- 00000000,00000002
      cpu1/cache/index2/shared_cpu_list -- 1
      cpu1/cache/index2/coherency_line_size -- 256
      cpu1/cache/index2/ways_of_associativity -- 12
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      881730ad
  2. 05 5月, 2012 1 次提交
  3. 23 3月, 2012 1 次提交
  4. 11 3月, 2012 3 次提交
    • M
      [S390] kernel: Add OS info memory interface · 4857d4bb
      Michael Holzheu 提交于
      In order to allow kdump based stand-alone dump, some information
      has to be passed from the old kernel to the new dump kernel. This
      is done via a the struct "os_info" that contains the following fields:
       * crashkernel base and size
       * reipl block
       * vmcoreinfo
       * init function
      A pointer to os_info is stored at a well known storage location
      and the whole structure as well as all fields are secured with
      checksums.
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      4857d4bb
    • M
      [S390] kernel: Add z/VM LGR detection · 3ab121ab
      Michael Holzheu 提交于
      Currently the following mechanisms are available to move active
      Linux on System z instances between machines:
      * z/VM 6.2 SSI (Single System Image)
      * Suspend/resume
      For moving Linux instances in this patch the term LGR (Linux Guest
      Relocation) is used. Because such an operation is critical, it
      should be detectable from Linux. With this patch for both, a live
      system and a kernel dump, the information about LGRs is accessible.
      To identify a guest, stsi and stfle data is used. A new function
      lgr_info_log() compares the current data (lgr_info_cur) with the
      last recorded one (lgr_info_last). In case the two data sets differ,
      lgr_info_cur is logged to the "lgr" s390dbf.
      
      The following trigger points call lgr_info_log():
      * panic
      * die
      * kdump
      * LGR timer
      * PSW restart
      * QDIO recovery
      * resume
      
      This patch also changes the s390dbf hex_ascii view. Now only printable ASCII
      characters are shown.
      Reviewed-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      3ab121ab
    • M
      [S390] rework smp code · 8b646bd7
      Martin Schwidefsky 提交于
      Define struct pcpu and merge some of the NR_CPUS arrays into it, including
      __cpu_logical_map, current_set and smp_cpu_state. Split smp related
      functions to those operating on physical cpus and the functions operating
      on a logical cpu number. Make the functions for physical cpus use a
      pointer to a struct pcpu. This hides the knowledge about cpu addresses in
      smp.c, entry[64].S and swsusp_asm64.S, thus remove the sigp.h header.
      
      The PSW restart mechanism is used to start secondary cpus, calling a
      function on an online cpu, calling a function on the ipl cpu, and for
      the nmi signal. Replace the different assembler functions with a
      single function restart_int_handler. The new entry point calls a function
      whose pointer is stored in the lowcore of the target cpu and it can wait
      for the source cpu to stop. This covers all existing use cases.
      
      Overall the code is now simpler and there are ~380 lines less code.
      Reviewed-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      8b646bd7
  5. 27 12月, 2011 1 次提交
    • H
      [S390] topology: get rid of ifdefs · 83a24e32
      Heiko Carstens 提交于
      Remove all ifdefs from topology code and also only compile it for the
      CONFIG_SCHED_BOOK case. The new code selects SCHED_MC if SCHED_BOOK is
      selected. SCHED_MC without SCHED_BOOK is not possible anymore.
      Furthermore various sysfs attributes are not available anymore for the
      !SCHED_BOOK case. In particular all attributes that correspond to
      CPU polarization.
      But since all real world kernels have SCHED_BOOK selected anyway this
      doesn't matter too much.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      83a24e32
  6. 30 10月, 2011 1 次提交
  7. 26 5月, 2011 1 次提交
  8. 05 4月, 2011 1 次提交
  9. 27 2月, 2010 2 次提交
  10. 07 12月, 2009 1 次提交
  11. 11 9月, 2009 2 次提交
  12. 12 6月, 2009 3 次提交
  13. 26 3月, 2009 2 次提交
  14. 25 12月, 2008 4 次提交
  15. 14 7月, 2008 2 次提交
  16. 30 4月, 2008 1 次提交
  17. 17 4月, 2008 2 次提交
  18. 05 3月, 2008 1 次提交
  19. 26 1月, 2008 1 次提交
  20. 22 8月, 2007 1 次提交
  21. 27 4月, 2007 1 次提交
    • 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
  22. 06 2月, 2007 2 次提交
  23. 04 12月, 2006 1 次提交
    • H
      [S390] Reset infrastructure for re-IPL. · 15e9b586
      Heiko Carstens 提交于
      In case of re-IPL and diag308 doesn't work we have to reset all devices
      manually and wait synchronously that each reset finished.
      This patch adds the necessary infrastucture and the first exploiter of it.
      
      Subsystems that need to add a function that needs to be called at re-IPL
      may register/unregister this function via
      
      struct reset_call {
      	struct reset_call *next;
      	void (*fn)(void);
      };
      
      void register_reset_call(struct reset_call *reset);
      void unregister_reset_call(struct reset_call *reset);
      
      When the registered function get called the context is:
      
      - all cpus beside the current one are stopped
      - all machine checks and interrupts are disabled
      - prefixing is disabled
      - a default machine check handler is available for use
      
      The registered functions may not take any locks are sleep.
      
      For the common I/O layer part of this patch:
      
      Introduce a reset_call css_reset that does the following:
      - clear all subchannels
      - perform a rchp on all channel paths and wait for the resulting
        machine checks
      This replaces the calls to clear_all_subchannels() and
      cio_reset_channel_paths() for kexec and ccw reipl. reipl_ccw_dev() now
      uses reipl_find_schid() to determine the subchannel id for a given
      device id.
      Also remove cio_reset_channel_paths() and friends since they are not
      needed anymore.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      15e9b586
  24. 20 9月, 2006 2 次提交