1. 27 4月, 2008 1 次提交
    • C
      s390: KVM preparation: provide hook to enable pgstes in user pagetable · 402b0862
      Carsten Otte 提交于
      The SIE instruction on s390 uses the 2nd half of the page table page to
      virtualize the storage keys of a guest. This patch offers the s390_enable_sie
      function, which reorganizes the page tables of a single-threaded process to
      reserve space in the page table:
      s390_enable_sie makes sure that the process is single threaded and then uses
      dup_mm to create a new mm with reorganized page tables. The old mm is freed
      and the process has now a page status extended field after every page table.
      
      Code that wants to exploit pgstes should SELECT CONFIG_PGSTE.
      
      This patch has a small common code hit, namely making dup_mm non-static.
      
      Edit (Carsten): I've modified Martin's patch, following Jeremy Fitzhardinge's
      review feedback. Now we do have the prototype for dup_mm in
      include/linux/sched.h. Following Martin's suggestion, s390_enable_sie() does now
      call task_lock() to prevent race against ptrace modification of mm_users.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NCarsten Otte <cotte@de.ibm.com>
      Acked-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      402b0862
  2. 17 4月, 2008 3 次提交
  3. 10 2月, 2008 1 次提交
  4. 08 2月, 2008 1 次提交
    • B
      Introduce flags for reserve_bootmem() · 72a7fe39
      Bernhard Walle 提交于
      This patchset adds a flags variable to reserve_bootmem() and uses the
      BOOTMEM_EXCLUSIVE flag in crashkernel reservation code to detect collisions
      between crashkernel area and already used memory.
      
      This patch:
      
      Change the reserve_bootmem() function to accept a new flag BOOTMEM_EXCLUSIVE.
      If that flag is set, the function returns with -EBUSY if the memory already
      has been reserved in the past.  This is to avoid conflicts.
      
      Because that code runs before SMP initialisation, there's no race condition
      inside reserve_bootmem_core().
      
      [akpm@linux-foundation.org: coding-style fixes]
      [akpm@linux-foundation.org: fix powerpc build]
      Signed-off-by: NBernhard Walle <bwalle@suse.de>
      Cc: <linux-arch@vger.kernel.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      72a7fe39
  5. 05 2月, 2008 3 次提交
  6. 26 1月, 2008 6 次提交
  7. 04 12月, 2007 1 次提交
  8. 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
  9. 19 6月, 2007 1 次提交
  10. 31 5月, 2007 1 次提交
  11. 05 5月, 2007 2 次提交
  12. 27 4月, 2007 1 次提交
  13. 21 2月, 2007 3 次提交
  14. 13 2月, 2007 1 次提交
  15. 06 2月, 2007 7 次提交
  16. 09 1月, 2007 1 次提交
  17. 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
  18. 04 12月, 2006 3 次提交