1. 14 4月, 2006 5 次提交
    • E
      [PATCH] de_thread: Don't change our parents and ptrace flags. · c06511d1
      Eric W. Biederman 提交于
      This is two distinct changes.
       - Not changing our real parents.
       - Not changing our ptrace parents.
      
      Not changing our real parents is trivially correct because both tasks
      have the same real parents as they are part of a thread group.  Now that
      we demote the leader to a thread there is no longer any reason to change
      it's parentage.
      
      Not changing our ptrace parents is a user visible change if someone
      looks hard enough.  I don't think user space applications will care or
      even notice.
      
      In the practical and I think common case a debugger will have attached
      to all of the threads using the same ptrace flags.  From my quick skim
      of strace and gdb that appears to be the case.  Which if true means
      debuggers will not notice a change.
      
      Before this point we have already generated a ptrace event in do_exit
      that reports the leaders pid has died so de_thread is visible to a
      debugger.  Which means attempting to hide this case by copying flags
      around appears excessive.
      
      By not doing anything it avoids all of the weird locking issues between
      de_thread and ptrace attach, and removes one case from consideration for
      fixing the ptrace locking.
      
      This only addresses Oleg's first concern with ptrace_attach, that of the
      problems caused by reparenting.  Oleg's second concern is essentially a
      race between ptrace_attach and release_task that causes an oops when we
      get to force_sig_specific.  There is nothing special about de_thread
      with respect to that race.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c06511d1
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 · 0e5e24bf
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
        [IA64] Make show_mem() skip holes in a pgdat
        [IA64] ia64_wait_for_slaves() incorrectly reports MCA
      0e5e24bf
    • R
      [IA64] Make show_mem() skip holes in a pgdat · ace1d816
      Robin Holt 提交于
      This patch modifies ia64's show_mem() to walk the vmem_map page tables and
      rapidly skip forward across regions where the page tables are missing.
      This prevents the pfn_valid() check from causing numerous unnecessary
      page faults.
      
      Without this patch on a 512 node 512 cpu system where every node has four
      memory holes, the show_mem() call takes 1 hour 18 minutes.  With this
      patch, it takes less than 3 seconds.
      Signed-off-by: NRobin Holt <holt@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      ace1d816
    • K
      [IA64] ia64_wait_for_slaves() incorrectly reports MCA · 356a5c1c
      Keith Owens 提交于
      ia64_wait_for_slaves() was changed in 2.6.17-rc1 to report the slave
      state.  It incorrectly assumes that all slaves are for MCA, but
      ia64_wait_for_slaves() is also called from the INIT monarch handler.
      The existing message is very misleading, so correct it.
      Signed-off-by: NKeith Owens <kaos@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      356a5c1c
    • E
      [PATCH] do_SAK: Don't recursively take the tasklist_lock · 20ac9437
      Eric W. Biederman 提交于
      By calling send_sig do_SAK is recursively taking the
      tasklist_lock, which is silly.
      
      In addition I just audited the kernel and this was the only
      place where tasklist_lock is taken inside of task_lock.
      
      So this one line change is a general worthwhile cleanup and
      it increases our options on how to fix the ptrace_attach races.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      20ac9437
  2. 13 4月, 2006 19 次提交
  3. 12 4月, 2006 16 次提交