1. 28 Oct, 2005 21 commits
  2. 27 Oct, 2005 4 commits
    • Cliff Wickman's avatar
      [IA64] ptrace - find memory sharers on children list · 4ac0068f
      Cliff Wickman authored
      In arch/ia64/kernel/ptrace.c there is a test for a peek or poke of a
      register image (in register backing storage).
      The test can be unnecessarily long (and occurs while holding the tasklist_lock).
      Especially long on a large system with thousands of active tasks.
      
      The ptrace caller (presumably a debugger) specifies the pid of
      its target and an address to peek or poke.  But the debugger could be
      attached to several tasks.
      The idea of find_thread_for_addr() is to find whether the target address
      is in the RBS for any of those tasks.
      
      Currently it searches the thread-list of the target pid.  If that search
      does not find a match, and the shared mm-struct's user count indicates
      that there are other tasks sharing this address space (a rare occurrence),
      a search is made of all the tasks in the system.
      
      Another approach can drastically shorten this procedure.
      It depends upon the fact that in order to peek or poke from/to any task,
      the debugger must first attach to that task.  And when it does, the
      attached task is made a child of the debugger (is chained to its children list).
      
      Therefore we can search just the debugger's children list.
      Signed-off-by: default avatarCliff Wickman <cpw@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      4ac0068f
    • Dean Roe's avatar
      [IA64] - Avoid slow TLB purges on SGI Altix systems · c1902aae
      Dean Roe authored
      flush_tlb_all() can be a scaling issue on large SGI Altix systems
      since it uses the global call_lock and always executes on all cpus.
      When a process enters flush_tlb_range() to purge TLBs for another
      process, it is possible to avoid flush_tlb_all() and instead allow
      sn2_global_tlb_purge() to purge TLBs only where necessary.
      
      This patch modifies flush_tlb_range() so that this case can be handled
      by platform TLB purge functions and updates ia64_global_tlb_purge()
      accordingly.  sn2_global_tlb_purge() now calculates the region register
      value from the mm argument introduced with this patch.
      Signed-off-by: default avatarDean Roe <roe@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      c1902aae
    • Roland McGrath's avatar
      [PATCH] Yet more posix-cpu-timer fixes · 72ab373a
      Roland McGrath authored
      This just makes sure that a thread's expiry times can't get reset after
      it clears them in do_exit.
      
      This is what allowed us to re-introduce the stricter BUG_ON() check in
      a362f463.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      72ab373a
    • Linus Torvalds's avatar
      Revert "remove false BUG_ON() from run_posix_cpu_timers()" · a362f463
      Linus Torvalds authored
      This reverts commit 3de463c7.
      
      Roland has another patch that allows us to leave the BUG_ON() in place
      by just making sure that the condition it tests for really is always
      true.
      
      That goes in next.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a362f463
  3. 26 Oct, 2005 14 commits
  4. 25 Oct, 2005 1 commit