1. 07 11月, 2005 2 次提交
  2. 31 10月, 2005 1 次提交
  3. 30 10月, 2005 4 次提交
    • H
      [PATCH] mm: split page table lock · 4c21e2f2
      Hugh Dickins 提交于
      Christoph Lameter demonstrated very poor scalability on the SGI 512-way, with
      a many-threaded application which concurrently initializes different parts of
      a large anonymous area.
      
      This patch corrects that, by using a separate spinlock per page table page, to
      guard the page table entries in that page, instead of using the mm's single
      page_table_lock.  (But even then, page_table_lock is still used to guard page
      table allocation, and anon_vma allocation.)
      
      In this implementation, the spinlock is tucked inside the struct page of the
      page table page: with a BUILD_BUG_ON in case it overflows - which it would in
      the case of 32-bit PA-RISC with spinlock debugging enabled.
      
      Splitting the lock is not quite for free: another cacheline access.  Ideally,
      I suppose we would use split ptlock only for multi-threaded processes on
      multi-cpu machines; but deciding that dynamically would have its own costs.
      So for now enable it by config, at some number of cpus - since the Kconfig
      language doesn't support inequalities, let preprocessor compare that with
      NR_CPUS.  But I don't think it's worth being user-configurable: for good
      testing of both split and unsplit configs, split now at 4 cpus, and perhaps
      change that to 8 later.
      
      There is a benefit even for singly threaded processes: kswapd can be attacking
      one part of the mm while another part is busy faulting.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4c21e2f2
    • H
      [PATCH] mm: uml kill unused · b38c6845
      Hugh Dickins 提交于
      In worrying over the various pte operations in different architectures, I came
      across some unused functions in UML: remove mprotect_kernel_vm,
      protect_vm_page and addr_pte.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b38c6845
    • H
      [PATCH] mm: uml pte atomicity · 8f5cd76c
      Hugh Dickins 提交于
      There's usually a good reason when a pte is examined without the lock; but it
      makes me nervous when the pointer is dereferenced more than once.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8f5cd76c
    • H
      [PATCH] mm: arches skip ptlock · b462705a
      Hugh Dickins 提交于
      Convert those few architectures which are calling pud_alloc, pmd_alloc,
      pte_alloc_map on a user mm, not to take the page_table_lock first, nor drop it
      after.  Each of these can continue to use pte_alloc_map, no need to change
      over to pte_alloc_map_lock, they're neither racy nor swappable.
      
      In the sparc64 io_remap_pfn_range, flush_tlb_range then falls outside of the
      page_table_lock: that's okay, on sparc64 it's like flush_tlb_mm, and that has
      always been called from outside of page_table_lock in dup_mmap.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b462705a
  4. 28 10月, 2005 1 次提交
  5. 05 10月, 2005 1 次提交
  6. 01 10月, 2005 2 次提交
  7. 30 9月, 2005 1 次提交
  8. 29 9月, 2005 1 次提交
    • A
      [PATCH] uml makefiles sanitized · ecba97d4
      Al Viro 提交于
      UML makefiles sanitized:
       - number of generated headers reduced to 2 (from user-offsets.c and
         kernel-offsets.c resp.).  The rest is made constant and simply
         includes those two.
       - mk_... helpers are gone now that we don't need to generate these
         headers
       - arch/um/include2 removed since everything under arch/um/include/sysdep
         is constant now and symlink can point straight to source tree.
       - dependencies seriously simplified.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ecba97d4
  9. 23 9月, 2005 7 次提交
  10. 22 9月, 2005 3 次提交
  11. 18 9月, 2005 5 次提交
    • J
      [PATCH] uml: merge mem_user.c and mem.c · 114069f7
      Jeff Dike 提交于
      The serial UML OS-abstraction layer patch (um/kernel dir).
      
      This joins mem_user.c and mem.c files.
      Signed-off-by: NGennady Sharapov <Gennady.V.Sharapov@intel.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      114069f7
    • J
      [PATCH] uml: move libc code out of mem_user.c and tempfile.c · 0f80bc85
      Jeff Dike 提交于
      The serial UML OS-abstraction layer patch (um/kernel dir).
      
      This moves all system calls from mem_user.c and tempfile.c files under
      os-Linux dir.
      Signed-off-by: NGennady Sharapov <Gennady.V.Sharapov@intel.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0f80bc85
    • J
      [PATCH] uml: preserve errno in error paths · b4fd310e
      Jeff Dike 提交于
      The poster child for this patch is the third tuntap_user hunk.  When an ioctl
      fails, it properly closes the opened file descriptor and returns.  However,
      the close resets errno to 0, and the 'return errno' that follows returns 0
      rather than the value that ioctl set.  This caused the caller to believe that
      the device open succeeded and had opened file descriptor 0, which caused no
      end of interesting behavior.
      
      The rest of this patch is a pass through the UML sources looking for places
      where errno could be reset before being passed back out.  A common culprit is
      printk, which could call write, being called before errno is returned.
      
      In some cases, where the code ends up being much smaller, I just deleted the
      printk.
      
      There was another case where a caller of run_helper looked at errno after a
      failure, rather than the return value of run_helper, which was the errno value
      that it wanted.
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b4fd310e
    • J
      [PATCH] uml: breakpoint an arbitrary thread · 3eddddcf
      Jeff Dike 提交于
      This patch implements a stack trace for a thread, not unlike sysrq-t does.
      The advantage to this is that a break point can be placed on showreqs, so that
      upon showing the stack, you jump immediately into the debugger.  While sysrq-t
      does the same thing, sysrq-t shows *all* threads stacks.  It also doesn't work
      right now.  In the future, I thought it might be acceptable to make this show
      all pids stacks, but perhaps leaving well enough alone and just using sysrq-t
      would be okay.  For now, upon receiving the stack command, UML switches
      context to that thread, dumps its registers, and then switches context back to
      the original thread.  Since UML compacts all threads into one of 4 host
      threads, this sort of mechanism could be expanded in the future to include
      other debugging helpers that sysrq does not cover.
      
      Note by jdike - The main benefit to this is that it brings an arbitrary thread
      back into context, where it can be examined by gdb.  The fact that it dumps it
      stack is secondary.  This provides the capability to examine a sleeping
      thread, which has existed in tt mode, but not in skas mode until now.
      
      Also, the other threads, that sysrq doesn't cover, can be gdb-ed directly
      anyway.
      
      Signed-off-by: Allan Graves<allan.graves@gmail.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3eddddcf
    • J
      [PATCH] uml: _switch_to code consolidation · f6e34c6a
      Jeff Dike 提交于
      This patch moves code that is in both switch_to_tt and switch_to_skas to the
      top level _switch_to function, keeping us from duplicating code.  It is
      required for the stack trace patch to work properly.
      Signed-off-by: NAllan Graves <allan.graves@gmail.com>
      Signed-off-by: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f6e34c6a
  12. 11 9月, 2005 4 次提交
  13. 10 9月, 2005 2 次提交
  14. 08 9月, 2005 1 次提交
  15. 05 9月, 2005 5 次提交