1. 04 Jun, 2009 1 commit
  2. 28 Oct, 2009 7 commits
  3. 30 Oct, 2009 2 commits
    • Andrew Morton's avatar
      Cc: Jeff Moyer <jmoyer@redhat.com> · 33b60a5f
      Andrew Morton authored
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      33b60a5f
    • Jeff Moyer's avatar
      Intel reported a performance regression caused by the following commit: · 621687ce
      Jeff Moyer authored
      commit 848c4dd5
      Author: Zach Brown <zach.brown@oracle.com>
      Date:   Mon Aug 20 17:12:01 2007 -0700
      
          dio: zero struct dio with kzalloc instead of manually
      
          This patch uses kzalloc to zero all of struct dio rather than
          manually trying to track which fields we rely on being zero.  It
          passed aio+dio stress testing and some bug regression testing on
          ext3.
      
          This patch was introduced by Linus in the conversation that lead up
          to Badari's minimal fix to manually zero .map_bh.b_state in commit:
      
            6a648fa7
      
          It makes the code a bit smaller.  Maybe a couple fewer cachelines to
          load, if we're lucky:
      
             text    data     bss     dec     hex filename
          3285925  568506 1304616 5159047  4eb887 vmlinux
          3285797  568506 1304616 5158919  4eb807 vmlinux.patched
      
          I was unable to measure a stable difference in the number of cpu
          cycles spent in blockdev_direct_IO() when pushing aio+dio 256K reads
          at ~340MB/s.
      
          So the resulting intent of the patch isn't a performance gain but to
          avoid exposing ourselves to the risk of finding another field like
          .map_bh.b_state where we rely on zeroing but don't enforce it in the
          code.
      
      Zach surmised that zeroing out the page array was what caused most of
      the problem, and suggested the approach taken in the attached patch for
      resolving the issue.  Intel re-tested with this patch and saw a 0.6%
      performance gain (the original regression was 0.5%).
      Signed-off-by: default avatarJeff Moyer <jmoyer@redhat.com>
      Acked-by: default avatarZach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      621687ce
  4. 14 Oct, 2009 1 commit
  5. 16 Oct, 2009 1 commit
  6. 30 Sep, 2009 3 commits
  7. 16 Oct, 2009 1 commit
  8. 09 Oct, 2009 1 commit
  9. 30 Sep, 2009 1 commit
  10. 24 Aug, 2009 1 commit
  11. 15 Oct, 2009 1 commit
  12. 29 Sep, 2009 1 commit
  13. 06 Oct, 2009 7 commits
  14. 13 Oct, 2009 1 commit
  15. 24 Sep, 2009 1 commit
    • Oleg Nesterov's avatar
      Thanks to Roland who pointed out de_thread() issues. · 7b9f1838
      Oleg Nesterov authored
      Currently we add sub-threads to ->real_parent->children list.  This buys
      nothing but slows down do_wait().
      
      With this patch ->children contains only main threads (group leaders). 
      The only complication is that forget_original_parent() should iterate over
      sub-threads by hand, and de_thread() needs another list_replace() when it
      changes ->group_leader.
      
      Henceforth do_wait_thread() can never see task_detached() && !EXIT_DEAD
      tasks, we can remove this check (and we can unify do_wait_thread() and
      ptrace_do_wait()).
      
      This change can confuse the optimistic search in mm_update_next_owner(),
      but this is fixable and minor.
      
      Perhaps badness() and oom_kill_process() should be updated, but they
      should be fixed in any case.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Ratan Nalumasu <rnalumasu@gmail.com>
      Cc: Vitaly Mayatskikh <vmayatsk@redhat.com>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      7b9f1838
  16. 25 Sep, 2009 1 commit
    • Roland McGrath's avatar
      This adds the utrace facility, a new modular interface in the kernel for · 582156fe
      Roland McGrath authored
      implementing user thread tracing and debugging.  This fits on top of the
      tracehook_* layer, so the new code is well-isolated.
      
      The new interface is in <linux/utrace.h> and the DocBook utrace book
      describes it.  It allows for multiple separate tracing engines to work in
      parallel without interfering with each other.  Higher-level tracing
      facilities can be implemented as loadable kernel modules using this layer.
      
      The new facility is made optional under CONFIG_UTRACE.  When this is not
      enabled, no new code is added.  It can only be enabled on machines that
      have all the prerequisites and select CONFIG_HAVE_ARCH_TRACEHOOK.
      
      In this initial version, utrace and ptrace do not play together at all. 
      If ptrace is attached to a thread, the attach calls in the utrace kernel
      API return -EBUSY.  If utrace is attached to a thread, the PTRACE_ATTACH
      or PTRACE_TRACEME request will return EBUSY to userland.  The old ptrace
      code is otherwise unchanged and nothing using ptrace should be affected by
      this patch as long as utrace is not used at the same time.  In the future
      we can clean up the ptrace implementation and rework it to use the utrace
      API.
      
      [oleg@redhat.com: kill exclude_xtrace logic]
      Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      582156fe
  17. 30 Oct, 2009 1 commit
  18. 16 Oct, 2009 4 commits
  19. 30 Oct, 2009 1 commit
  20. 28 Oct, 2009 1 commit
  21. 16 Oct, 2009 1 commit
  22. 10 Oct, 2009 1 commit