1. 26 1月, 2008 5 次提交
    • M
      [S390] kernel: Shutdown Actions Interface · 99ca4e58
      Michael Holzheu 提交于
      In case of a kernel panic it is currently possible to specify that a dump
      should be created, the system should be rebooted or stopped. Virtual sysfs
      files under the directory /sys/firmware/ are used for that configuration.
      In addition to that, there are kernel parameters 'vmhalt', 'vmpoff'
      and 'vmpanic', which can be used to specify z/VM commands, which are
      automatically executed in case of halt, power off or a kernel panic.
      This patch combines both functionalities and allows to specify the z/VM CP
      commands also via sysfs attributes. In addition to that, it enhances the
      existing handling of shutdown triggers (e.g. halt or panic) and associated
      shutdown actions (e.g. dump or reipl) and makes it more flexible.
      Signed-off-by: NMichael Holzheu <holzheu@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      99ca4e58
    • H
      [S390] Get rid of additional_cpus kernel parameter. · 48483b32
      Heiko Carstens 提交于
      It caused only a lot of confusion. From now on cpu hotplug of up to
      NR_CPUS will work by default. If somebody wants to limit that then
      the possible_cpus parameter can be used.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      48483b32
    • H
      [S390] Get rid of HOLES_IN_ZONE requirement. · 9f4b0ba8
      Heiko Carstens 提交于
      Align everything to MAX_ORDER so we can get rid of the extra checks.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      9f4b0ba8
    • C
      [S390] Change vmalloc defintions · 5fd9c6e2
      Christian Borntraeger 提交于
      Currently the vmalloc area starts at a dynamic address depending on
      the memory size. There was also an 8MB security hole after the
      physical memory to catch out-of-bounds accesses.
      We can simplify the code by putting the vmalloc area explicitely at
      the top of the kernel mapping and setting the vmalloc size to a fixed
      value of 128MB/128GB for 31bit/64bit systems. Part of the vmalloc
      area will be used for the vmem_map. This leaves an area of 96MB/1GB
      for normal vmalloc allocations.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      5fd9c6e2
    • H
      [S390] Standby cpu activation/deactivation. · 08d07968
      Heiko Carstens 提交于
      Add a new interface so that cpus can be put into standby state and
      configured state.
      Only offline cpus can be put into standby state or configured state.
      For that the new percpu sysfs attribute "configure" must be used.
      To put a cpu in standby state a "0" must be written to the attribute.
      In order to switch it into configured state a "1" must be written to
      the attribute.
      Only cpus in configured state can be brought online.
      In addition this patch introduces a static mapping of physical to
      logical cpus. As a result only the sysfs directories of present cpus
      will be created. To scan for new cpus the new sysfs attribute "rescan"
      must be used.
      Writing to /sys/devices/system/cpu/rescan will trigger a rescan of
      cpus and will create directories for new cpus.
      
      On IPL only configured cpus will be used. And on reboot/shutdown all
      cpus will remain in their current state (configured/standby).
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      08d07968
  2. 04 12月, 2007 1 次提交
  3. 20 11月, 2007 2 次提交
    • H
      [S390] Fix irq tracing and lockdep_sys_exit calls. · 411788ea
      Heiko Carstens 提交于
      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: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      411788ea
    • C
      [S390] magic sysrq: check for in_atomic before doing an console_unblank · 7aa8dac7
      Christian Borntraeger 提交于
      When doing an magic sysrq reboot on s390 the following bug message
      appears:
      
      SysRq : Resetting
      BUG: sleeping function called from invalid context at include/asm/semaphore.h:61
      
      in_atomic():1, irqs_disabled():0
      07000000004002a8 000000000fe6bc48 0000000000000002 0000000000000000
             000000000fe6bce8 000000000fe6bc60 000000000fe6bc60 000000000012a79a
             0000000000000000 07000000004002a8 0000000000000006 0000000000000000
             0000000000000000 000000000fe6bc48 000000000000000d 000000000fe6bcb8
             00000000004000c8 0000000000103234 000000000fe6bc48 000000000fe6bc90
      Call Trace:
      (¬<00000000001031b2>| show_trace+0x12e/0x148)
       ¬<000000000011ffca>| __might_sleep+0x10a/0x118
       ¬<0000000000129fba>| acquire_console_sem+0x92/0xf4
       ¬<000000000012a2ca>| console_unblank+0xc2/0xc8
       ¬<0000000000107bb4>| machine_restart+0x54/0x6c
       ¬<000000000028e806>| sysrq_handle_reboot+0x26/0x30
       ¬<000000000028e52a>| __handle_sysrq+0xa6/0x180
       ¬<0000000000140134>| run_workqueue+0xcc/0x18c
       ¬<000000000014029a>| worker_thread+0xa6/0x108
       ¬<00000000001458e4>| kthread+0x64/0x9c
       ¬<0000000000106f0e>| kernel_thread_starter+0x6/0xc
       ¬<0000000000106f08>| kernel_thread_starter+0x0/0xc
      
      The only reason for doing a console_unblank on s390 is to flush the
      log buffer. We have to check for in_atomic before doing a
      console_unblank as the console is otherwise filled with an unrelated
      bug message.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      7aa8dac7
  4. 19 6月, 2007 1 次提交
  5. 31 5月, 2007 1 次提交
  6. 05 5月, 2007 2 次提交
  7. 27 4月, 2007 1 次提交
  8. 21 2月, 2007 3 次提交
  9. 13 2月, 2007 1 次提交
  10. 06 2月, 2007 7 次提交
  11. 09 1月, 2007 1 次提交
  12. 08 12月, 2006 2 次提交
    • H
      [S390] Use add_active_range() and free_area_init_nodes(). · 39b742f9
      Heiko Carstens 提交于
      Size zones and holes in an architecture independent manner for s390.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      39b742f9
    • H
      [S390] Virtual memmap for s390. · f4eb07c1
      Heiko Carstens 提交于
      Virtual memmap support for s390. Inspired by the ia64 implementation.
      
      Unlike ia64 we need a mechanism which allows us to dynamically attach
      shared memory regions.
      These memory regions are accessed via the dcss device driver. dcss
      implements the 'direct_access' operation, which requires struct pages
      for every single shared page.
      Therefore this implementation provides an interface to attach/detach
      shared memory:
      
      int add_shared_memory(unsigned long start, unsigned long size);
      int remove_shared_memory(unsigned long start, unsigned long size);
      
      The purpose of the add_shared_memory function is to add the given
      memory range to the 1:1 mapping and to make sure that the
      corresponding range in the vmemmap is backed with physical pages.
      It also initialises the new struct pages.
      
      remove_shared_memory in turn only invalidates the page table
      entries in the 1:1 mapping. The page tables and the memory used for
      struct pages in the vmemmap are currently not freed. They will be
      reused when the next segment will be attached.
      Given that the maximum size of a shared memory region is 2GB and
      in addition all regions must reside below 2GB this is not too much of
      a restriction, but there is room for improvement.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f4eb07c1
  13. 04 12月, 2006 3 次提交
  14. 06 11月, 2006 2 次提交
  15. 05 10月, 2006 1 次提交
  16. 28 9月, 2006 1 次提交
    • M
      [S390] Inline assembly cleanup. · 94c12cc7
      Martin Schwidefsky 提交于
      Major cleanup of all s390 inline assemblies. They now have a common
      coding style. Quite a few have been shortened, mainly by using register
      asm variables. Use of the EX_TABLE macro helps  as well. The atomic ops,
      bit ops and locking inlines new use the Q-constraint if a newer gcc
      is used.  That results in slightly better code.
      
      Thanks to Christian Borntraeger for proof reading the changes.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      94c12cc7
  17. 20 9月, 2006 4 次提交
  18. 18 7月, 2006 1 次提交
  19. 01 7月, 2006 1 次提交