1. 14 10月, 2009 4 次提交
    • J
      tracing: Enable "__cold" functions · 4d828949
      Jiri Olsa 提交于
      Based on the commit:
      
        a586df06 "x86: Support __attribute__((__cold__)) in gcc 4.3"
      
      some of the functions goes to the ".text.unlikely" section.
      
      Looks like there's not many of them (I found printk, panic,
      __ssb_dma_not_implemented, fat_fs_error), but still worth to
      include I think.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <20091013203426.175845614@goodmis.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4d828949
    • J
      tracing: Enable records during the module load · 5cb084bb
      Jiri Olsa 提交于
      I was debuging some module using "function" and "function_graph"
      tracers and noticed, that if you load module after you enabled
      tracing, the module's hooks will convert only to NOP instructions.
      
      The attached patch enables modules' hooks if there's function trace
      allready on, thus allowing to trace module functions.
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <20091013203425.896285120@goodmis.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5cb084bb
    • J
      tracing: Support multiple pids in set_pid_ftrace file · 756d17ee
      jolsa@redhat.com 提交于
      Adding the possibility to set more than 1 pid in the set_pid_ftrace
      file, thus allowing to trace more than 1 independent processes.
      
      Usage:
      
       sh-4.0# echo 284 > ./set_ftrace_pid
       sh-4.0# cat ./set_ftrace_pid
       284
       sh-4.0# echo 1 >> ./set_ftrace_pid
       sh-4.0# echo 0 >> ./set_ftrace_pid
       sh-4.0# cat ./set_ftrace_pid
       swapper tasks
       1
       284
       sh-4.0# echo 4 > ./set_ftrace_pid
       sh-4.0# cat ./set_ftrace_pid
       4
       sh-4.0# echo > ./set_ftrace_pid
       sh-4.0# cat ./set_ftrace_pid
       no pid
       sh-4.0#
      Signed-off-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <20091013203425.565454612@goodmis.org>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      756d17ee
    • S
      function-graph/x86: Replace unbalanced ret with jmp · 194ec341
      Steven Rostedt 提交于
      The function graph tracer replaces the return address with a hook
      to trace the exit of the function call. This hook will finish by
      returning to the real location the function should return to.
      
      But the current implementation uses a ret to jump to the real
      return location. This causes a imbalance between calls and ret.
      That is the original function does a call, the ret goes to the
      handler and then the handler does a ret without a matching call.
      
      Although the function graph tracer itself still breaks the branch
      predictor by replacing the original ret, by using a second ret and
      causing an imbalance, it breaks the predictor even more.
      
      This patch replaces the ret with a jmp to keep the calls and ret
      balanced. I tested this on one box and it showed a 1.7% increase in
      performance. Another box only showed a small 0.3% increase. But no
      box that I tested this on showed a decrease in performance by
      making this change.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Acked-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <20091013203425.042034383@goodmis.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      194ec341
  2. 13 10月, 2009 6 次提交
  3. 12 10月, 2009 2 次提交
  4. 09 10月, 2009 1 次提交
  5. 08 10月, 2009 5 次提交
  6. 06 10月, 2009 1 次提交
  7. 05 10月, 2009 2 次提交
  8. 04 10月, 2009 12 次提交
  9. 03 10月, 2009 7 次提交
    • E
      [PATCH] ext4: retry failed direct IO allocations · fbbf6945
      Eric Sandeen 提交于
      On a 256M filesystem, doing this in a loop:
      
              xfs_io -F -f -d -c 'pwrite 0 64m' test
              rm -f test
      
      eventually leads to ENOSPC.  (the xfs_io command does a
      64m direct IO write to the file "test")
      
      As with other block allocation callers, it looks like we need to
      potentially retry the allocations on the initial ENOSPC.
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      fbbf6945
    • C
      ext4: Fix build warning in ext4_dirty_inode() · 74072d0a
      Curt Wohlgemuth 提交于
      This fixes the following warning:
      
      fs/ext4/inode.c: In function 'ext4_dirty_inode':
      fs/ext4/inode.c:5615: warning: unused variable 'current_handle'
      
      We remove the jbd_debug() statement which does use current_handle, as
      it's not terribly important in the grand scheme of things.
      
      Thanks to Stephen Rothwell for pointing this out.
      Signed-off-by: NCurt Wohlgemuth <curtw@google.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      74072d0a
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · a037a79d
      Linus Torvalds 提交于
      * master.kernel.org:/home/rmk/linux-2.6-arm: (25 commits)
        ARM: 5728/1: Proper prefetch abort handling on ARMv6 and ARMv7
        ARM: 5727/1: Pass IFSR register to do_PrefetchAbort()
        ARM: 5740/1: fix valid_phys_addr_range() range check
        ARM: 5739/1: ARM: allow empty ATAG_CORE
        ARM: 5735/1: sa1111: CodingStyle cleanups
        ARM: 5738/1: Correct TCM documentation
        ARM: 5734/1: arm: fix compilation of entry-common.S for older CPUs
        ARM: 5733/1: fix bcmring compile error
        ARM: 5732/1: remove redundant include file
        ARM: 5731/2: Fix U300 generic GPIO, remove ifdefs from MMCI v3
        ARM: Ensure do_cache_op takes mmap_sem
        ARM: Fix __cpuexit section mismatch warnings
        ARM: Don't allow highmem on SMP platforms without h/w TLB ops broadcast
        ARM: includecheck fix: mach-davinci, board-dm365-evm.c
        ARM: Remove unused CONFIG SA1100_H3XXX
        ARM: Fix warning: unused variable 'highmem'
        ARM: Fix warning: #warning syscall migrate_pages not implemented
        ARM: Fix SA11x0 clocksource warning
        ARM: Fix SA1100 Neponset serial section mismatch
        ARM: Fix SA1100 Assabet/Neponset PCMCIA section mismatch warnings
        ...
      a037a79d
    • K
      ARM: 5728/1: Proper prefetch abort handling on ARMv6 and ARMv7 · d25ef8b8
      Kirill A. Shutemov 提交于
      Currently, on ARMv6 and ARMv7, if an application tries to execute
      code (or garbage) on non-executable page it hangs. It caused by
      incorrect prefetch abort handling. Now every prefetch abort
      processes as a translation fault.
      
      To fix this we have to analyze instruction fault status register
      to figure out reason why we've got the abort and process it
      accordingly.
      
      To make IFSR different from DFSR we set bit 31 which is reserved in
      both IFSR and DFSR.
      
      This patch also tries to protect from future hangs on unexpected
      exceptions. An application will be killed if unexpected exception
      type was received.
      Signed-off-by: NKirill A. Shutemov <kirill@shutemov.name>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d25ef8b8
    • K
      ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() · 4fb28474
      Kirill A. Shutemov 提交于
      Instruction fault status register, IFSR, was introduced on ARMv6 to
      provide status information about the last insturction fault. It
      needed for proper prefetch abort handling.
      
      Now we have three prefetch abort model:
      
        * legacy - for CPUs before ARMv6. They doesn't provide neither
          IFSR nor IFAR. We simulate IFSR with section translation fault
          status for them to generalize code;
        * ARMv6 - provides IFSR, but not IFAR;
        * ARMv7 - provides both IFSR and IFAR.
      Signed-off-by: NKirill A. Shutemov <kirill@shutemov.name>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      4fb28474
    • G
      ARM: 5740/1: fix valid_phys_addr_range() range check · 6806bfe1
      Greg Ungerer 提交于
      Commit 1522ac3e
      ("Fix virtual to physical translation macro corner cases")
      breaks the end of memory check in valid_phys_addr_range().
      The modified expression results in the apparent /dev/mem size
      being 2 bytes smaller than what it actually is.
      
      This patch reworks the expression to correctly check the address,
      while maintaining use of a valid address to __pa().
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6806bfe1
    • D
      ARM: 5739/1: ARM: allow empty ATAG_CORE · 31abdb74
      David Brown 提交于
      From: David Brown <davidb@quicinc.com>
      
      The ATAG_CORE is allowed to be empty.  Although this is handled
      by parse_tag_core(), __vet_atags during startup rejects this tag
      unless it contains data.  Allow the initial tag to be either the
      full size, or empty.
      Signed-off-by: NDavid Brown <davidb@quicinc.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      31abdb74