1. 04 5月, 2010 1 次提交
    • A
      perf inject: Add missing bits · 11d232ec
      Arnaldo Carvalho de Melo 提交于
      New commands need to have Documentation and be added to command-list.txt
      so that they can appear when 'perf' is called withouth any subcommand:
      
      [root@doppio linux-2.6-tip]# perf
      
       usage: perf [--version] [--help] COMMAND [ARGS]
      
       The most commonly used perf commands are:
         annotate        Read perf.data (created by perf record) and display annotated code
         archive         Create archive with object files with build-ids found in perf.data file
         bench           General framework for benchmark suites
         buildid-cache   Manage build-id cache.
         buildid-list    List the buildids in a perf.data file
         diff            Read two perf.data files and display the differential profile
         inject          Filter to augment the events stream with additional information
         kmem            Tool to trace/measure kernel memory(slab) properties
         kvm             Tool to trace/measure kvm guest os
         list            List all symbolic event types
         lock            Analyze lock events
         probe           Define new dynamic tracepoints
         record          Run a command and record its profile into perf.data
         report          Read perf.data (created by perf record) and display the profile
         sched           Tool to trace/measure scheduler properties (latencies)
         stat            Run a command and gather performance counter statistics
         test            Runs sanity tests.
         timechart       Tool to visualize total system behavior during a workload
         top             System profiling tool.
         trace           Read perf.data (created by perf record) and display trace output
      
       See 'perf help COMMAND' for more information on a specific command.
      
      [root@doppio linux-2.6-tip]#
      
      The new 'perf inject' command hadn't so it wasn't appearing on that list.
      
      Also fix the long option, that should have no spaces in it, rename the faulty one
      to be '--build-ids', instead of '--inject build-ids'.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      11d232ec
  2. 03 5月, 2010 4 次提交
    • T
      perf: record TRACE_INFO only if using tracepoints and SAMPLE_RAW · 63e0c771
      Tom Zanussi 提交于
      The current perf code implicitly assumes SAMPLE_RAW means tracepoints
      are being used, but doesn't check for that.  It happily records the
      TRACE_INFO even if SAMPLE_RAW is used without tracepoints, but when the
      perf data is read it won't go any further when it finds TRACE_INFO but
      no tracepoints, and displays misleading errors.
      
      This adds a check for both in perf-record, and won't record TRACE_INFO
      unless both are true.  This at least allows perf report -D to dump raw
      events, and avoids triggering a misleading error condition in perf
      trace.  It doesn't actually enable the non-tracepoint raw events to be
      displayed in perf trace, since perf trace currently only deals with
      tracepoint events.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1272865861.7932.16.camel@tropicana>
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      63e0c771
    • A
      perf inject: Refactor read_buildid function · 090f7204
      Arnaldo Carvalho de Melo 提交于
      Into two functions, one that actually reads the build_id for the dso if
      it wasn't already read, and another taht will inject the event if the
      build_id is available.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      090f7204
    • A
      perf record: Don't exit in live mode when no tracepoints are enabled · 2c9faa06
      Arnaldo Carvalho de Melo 提交于
      With this I was able to actually test Tom Zanussi's two previous patches
      in my usual perf testing ways, i.e. without any tracepoints activated.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      2c9faa06
    • T
      perf: add perf-inject builtin · 454c407e
      Tom Zanussi 提交于
      Currently, perf 'live mode' writes build-ids at the end of the
      session, which isn't actually useful for processing live mode events.
      
      What would be better would be to have the build-ids sent before any of
      the samples that reference them, which can be done by processing the
      event stream and retrieving the build-ids on the first hit.  Doing
      that in perf-record itself, however, is off-limits.
      
      This patch introduces perf-inject, which does the same job while
      leaving perf-record untouched.  Normal mode perf still records the
      build-ids at the end of the session as it should, but for live mode,
      perf-inject can be injected in between the record and report steps
      e.g.:
      
      perf record -o - ./hackbench 10 | perf inject -v -b | perf report -v -i -
      
      perf-inject reads a perf-record event stream and repipes it to stdout.
      At any point the processing code can inject other events into the
      event stream - in this case build-ids (-b option) are read and
      injected as needed into the event stream.
      
      Build-ids are just the first user of perf-inject - potentially
      anything that needs userspace processing to augment the trace stream
      with additional information could make use of this facility.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1272696080-16435-3-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      454c407e
  3. 02 5月, 2010 2 次提交
  4. 30 4月, 2010 16 次提交
    • I
    • I
      Merge commit 'v2.6.34-rc6' into perf/core · 3ca50496
      Ingo Molnar 提交于
      Merge reason: update to the latest -rc.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3ca50496
    • L
      Linux 2.6.34-rc6 · 66f41d4c
      Linus Torvalds 提交于
      66f41d4c
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb · b18262ed
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
        kgdb: don't needlessly skip PAGE_USER test for Fsl booke
      b18262ed
    • L
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · e97e7120
      Linus Torvalds 提交于
      * 'for-linus' of git://oss.sgi.com/xfs/xfs:
        xfs: add a shrinker to background inode reclaim
      e97e7120
    • W
      kgdb: don't needlessly skip PAGE_USER test for Fsl booke · 56151e75
      Wufei 提交于
      The bypassing of this test is a leftover from 2.4 vintage
      kernels, and is no longer appropriate, or even used by KGDB.
      Currently KGDB uses probe_kernel_write() for all access to
      memory via the KGDB core, so it can simply be deleted.
      
      This fixes CVE-2010-1446.
      
      CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: Paul Mackerras <paulus@samba.org>
      CC: Kumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NWufei <fei.wu@windriver.com>
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      56151e75
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · fed0a9c6
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        exofs: Fix "add bdi backing to mount session" fall out
        fs: fs/super.c needs to include backing-dev.h for !CONFIG_BLOCK
      fed0a9c6
    • L
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 6bec1192
      Linus Torvalds 提交于
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: 6061/1: PL061 GPIO: Bug fix - setting gpio for HIGH_LEVEL interrupt is not working.
        ARM: 5957/1: ARM: RealView SD/MMC Card detection and write-protect using GPIOLIB
        ARM: 6030/1: KS8695: enable console
        ARM: 6060/1: PL061 GPIO: Setting gpio val after changing direction to OUT.
        ARM: 6059/1: PL061 GPIO: Changing *_irq_chip_data with *_irq_data for real irqs.
        ARM: 6023/1: update bcmring_defconfig to latest version and fix build error
        ARM: fix build error in arch/arm/kernel/process.c
      6bec1192
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 553cbf0a
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/ps3: Update ps3_defconfig
        powerpc/ps3: Update platform maintainer
        powerpc/pseries: Flush lazy kernel mappings after unplug operations
        powerpc/numa: Add form 1 NUMA affinity
        powerpc/fsl-booke: Fix CONFIG_RELOCATABLE support on FSL Book-E ppc32
        powerpc: 2.6.34 update of defconfigs for embedded 6xx/7xxx, 8xx, 8xxx
        powerpc/mpc8xxx defconfigs - turn off SYSFS_DEPRECATED
        powerpc/83xx: configure SIL SATA driver in 83xx-wide defconfig
        powerpc/83xx: enable EPOLL syscall in defconfig
        powerpc/83xx: add RTC drivers in 83xx defconfig
        powerpc/fsl-cpm: Configure clock correctly for SCC
        powerpc/fsl_booke: Correct test for MMU_FTR_BIG_PHYS
        powerpc/85xx/86xx: Fix build w/ CONFIG_PCI=n
      553cbf0a
    • V
      ARM: 6061/1: PL061 GPIO: Bug fix - setting gpio for HIGH_LEVEL interrupt is not working. · db7e1bc4
      viresh kumar 提交于
      In current implementation of PL061, setting type of irq to HIGH_LEVEL is not
      working. This patch fixes this bug.
      Signed-off-by: NViresh Kumar <viresh.kumar@st.com>
      Acked-by: NBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      db7e1bc4
    • A
      perf test: Initial regression testing command · 1c6a800c
      Arnaldo Carvalho de Melo 提交于
      First an example with the first internal test:
      
      [acme@doppio linux-2.6-tip]$ perf test
       1: vmlinux symtab matches kallsyms: Ok
      
      So it run just one test, that is "vmlinux symtab matches kallsyms", and it was
      successful.
      
      If we run it in verbose mode, we'll see details about errors and extra warnings
      for non-fatal problems:
      
      [acme@doppio linux-2.6-tip]$ perf test -v
       1: vmlinux symtab matches kallsyms:
      --- start ---
      Looking at the vmlinux_path (5 entries long)
      No build_id in vmlinux, ignoring it
      No build_id in /boot/vmlinux, ignoring it
      No build_id in /boot/vmlinux-2.6.34-rc4-tip+, ignoring it
      Using /lib/modules/2.6.34-rc4-tip+/build/vmlinux for symbols
      Maps only in vmlinux:
       ffffffff81cb81b1-ffffffff81e1149b 0 [kernel].init.text
       ffffffff81e1149c-ffffffff9fffffff 0 [kernel].exit.text
       ffffffffff600000-ffffffffff6000ff 0 [kernel].vsyscall_0
       ffffffffff600100-ffffffffff6003ff 0 [kernel].vsyscall_fn
       ffffffffff600400-ffffffffff6007ff 0 [kernel].vsyscall_1
       ffffffffff600800-ffffffffffffffff 0 [kernel].vsyscall_2
      Maps in vmlinux with a different name in kallsyms:
       ffffffffff600000-ffffffffff6000ff 0 [kernel].vsyscall_0 in kallsyms as [kernel].0
       ffffffffff600100-ffffffffff6003ff 0 [kernel].vsyscall_fn in kallsyms as:
      *ffffffffff600100-ffffffffff60012f 0 [kernel].2
       ffffffffff600400-ffffffffff6007ff 0 [kernel].vsyscall_1 in kallsyms as [kernel].6
       ffffffffff600800-ffffffffffffffff 0 [kernel].vsyscall_2 in kallsyms as [kernel].8
      Maps only in kallsyms:
       ffffffffff600130-ffffffffff6003ff 0 [kernel].4
      ---- end ----
      vmlinux symtab matches kallsyms: Ok
      [acme@doppio linux-2.6-tip]$
      
      In the above case we only know the name of the non contiguous kernel ranges in
      the address space when reading the symbol information from the ELF symtab in
      vmlinux.
      
      The /proc/kallsyms file lack this, we only notice they are separate because
      there are modules after the kernel and after that more kernel functions, so we
      need to have a module rbtree backed by the module .ko path to get symtabs in
      the vmlinux case.
      
      The tool uses it to match by address to emit appropriate warning, but don't
      considers this fatal.
      
      The .init.text and .exit.text ines, of course, aren't in kallsyms, so I left
      these cases just as extra info in verbose mode.
      
      The end of the sections also aren't in kallsyms, so we the symbols layer does
      another pass and sets the end addresses as the next map start minus one, which
      sometimes pads, causing harmless mismatches.
      
      But at least the symbols match, tested it by copying /proc/kallsyms to
      /tmp/kallsyms and doing changes to see if they were detected.
      
      This first test also should serve as a first stab at documenting the
      symbol library by providing a self contained example that exercises it
      together with comments about what is being done.
      
      More tests to check if actions done on a monitored app, like doing mmaps, etc,
      makes the kernel generate the expected events should be added next.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1c6a800c
    • D
      xfs: add a shrinker to background inode reclaim · 9bf729c0
      Dave Chinner 提交于
      On low memory boxes or those with highmem, kernel can OOM before the
      background reclaims inodes via xfssyncd. Add a shrinker to run inode
      reclaim so that it inode reclaim is expedited when memory is low.
      
      This is more complex than it needs to be because the VM folk don't
      want a context added to the shrinker infrastructure. Hence we need
      to add a global list of XFS mount structures so the shrinker can
      traverse them.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      9bf729c0
    • B
      exofs: Fix "add bdi backing to mount session" fall out · 3c2023dd
      Boaz Harrosh 提交于
      The patch: add bdi backing to mount session
      	(b3d0ab7e)
      
      Has a bug in the placement of the bdi member at
      struct exofs_sb_info. The layout member must be kept
      last.
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      3c2023dd
    • J
      fs: fs/super.c needs to include backing-dev.h for !CONFIG_BLOCK · 5477d0fa
      Jens Axboe 提交于
      When CONFIG_BLOCK is set, it ends up getting backing-dev.h included.
      But for !CONFIG_BLOCK, it isn't so lucky. The proper thing to do is
      include <linux/backing-dev.h> directly from the file it's used from,
      so do that.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      5477d0fa
    • A
      perf symbols: Add machine helper routines · 5c0541d5
      Arnaldo Carvalho de Melo 提交于
      Created when writing the first 'perf test' regression testing routine.
      
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      5c0541d5
    • L
      Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · 27fb8d7b
      Linus Torvalds 提交于
      * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
        nfs: fix memory leak in nfs_get_sb with CONFIG_NFS_V4
        nfs: fix some issues in nfs41_proc_reclaim_complete()
        NFS: Ensure that nfs_wb_page() waits for Pg_writeback to clear
        NFS: Fix an unstable write data integrity race
        nfs: testing for null instead of ERR_PTR()
        NFS: rsize and wsize settings ignored on v4 mounts
        NFSv4: Don't attempt an atomic open if the file is a mountpoint
        SUNRPC: Fix a bug in rpcauth_prune_expired
      27fb8d7b
  5. 29 4月, 2010 17 次提交