1. 10 Mar, 2011 1 commit
    • Jiri Olsa's avatar
      perf top: Fix events overflow in top command · b9a46bba
      Jiri Olsa authored
      The snprintf function returns number of printed characters even if it
      cross the size parameter. So passing enough events via '-e' parameter
      will cause segmentation fault.
      
      It's reproduced by following command:
      
      perf top -e `perf list | grep Tracepoint | awk -F'[' '\
      {gsub(/[[:space:]]+/,"",$1);array[FNR]=$1}END{outputs=array[1];\
      for (i=2;i<=FNR;i++){ outputs=outputs "," array[i];};print outputs}'`
      
      Attached patch is adding SNPRINTF macro that provides the overflow check
      and returns actuall number of printed characters.
      Reported-by: default avatarHan Pingtian <phan@redhat.com>
      Cc: Han Pingtian <phan@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1299528821-17521-2-git-send-email-jolsa@redhat.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b9a46bba
  2. 08 Mar, 2011 8 commits
    • Jiri Olsa's avatar
      kprobes: Disabling optimized kprobes for entry text section · 2a8247a2
      Jiri Olsa authored
      You can crash the kernel (with root/admin privileges) using kprobe tracer by running:
      
       echo "p system_call_after_swapgs" > ./kprobe_events
       echo 1 > ./events/kprobes/enable
      
      The reason is that at the system_call_after_swapgs label, the
      kernel stack is not set up. If optimized kprobes are enabled,
      the user space stack is being used in this case (see optimized
      kprobe template) and this might result in a crash.
      
      There are several places like this over the entry code
      (entry_$BIT). As it seems there's no any reasonable/maintainable
      way to disable only those places where the stack is not ready, I
      switched off the whole entry code from kprobe optimizing.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Acked-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: acme@redhat.com
      Cc: fweisbec@gmail.com
      Cc: ananth@in.ibm.com
      Cc: davem@davemloft.net
      Cc: a.p.zijlstra@chello.nl
      Cc: eric.dumazet@gmail.com
      Cc: 2nddept-manager@sdl.hitachi.co.jp
      LKML-Reference: <1298298313-5980-3-git-send-email-jolsa@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2a8247a2
    • Jiri Olsa's avatar
      x86: Separate out entry text section · ea714547
      Jiri Olsa authored
      Put x86 entry code into a separate link section: .entry.text.
      
      Separating the entry text section seems to have performance
      benefits - caused by more efficient instruction cache usage.
      
      Running hackbench with perf stat --repeat showed that the change
      compresses the icache footprint. The icache load miss rate went
      down by about 15%:
      
       before patch:
               19417627  L1-icache-load-misses      ( +-   0.147% )
      
       after patch:
               16490788  L1-icache-load-misses      ( +-   0.180% )
      
      The motivation of the patch was to fix a particular kprobes
      bug that relates to the entry text section, the performance
      advantage was discovered accidentally.
      
      Whole perf output follows:
      
       - results for current tip tree:
      
        Performance counter stats for './hackbench/hackbench 10' (500 runs):
      
               19417627  L1-icache-load-misses      ( +-   0.147% )
             2676914223  instructions             #      0.497 IPC     ( +- 0.079% )
             5389516026  cycles                     ( +-   0.144% )
      
            0.206267711  seconds time elapsed   ( +-   0.138% )
      
       - results for current tip tree with the patch applied:
      
        Performance counter stats for './hackbench/hackbench 10' (500 runs):
      
               16490788  L1-icache-load-misses      ( +-   0.180% )
             2717734941  instructions             #      0.502 IPC     ( +- 0.079% )
             5414756975  cycles                     ( +-   0.148% )
      
            0.206747566  seconds time elapsed   ( +-   0.137% )
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Nick Piggin <npiggin@kernel.dk>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: masami.hiramatsu.pt@hitachi.com
      Cc: ananth@in.ibm.com
      Cc: davem@davemloft.net
      Cc: 2nddept-manager@sdl.hitachi.co.jp
      LKML-Reference: <20110307181039.GB15197@jolsa.redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ea714547
    • Ingo Molnar's avatar
      Merge commit 'v2.6.38-rc8' into perf/core · 86cb2ec7
      Ingo Molnar authored
      Merge reason: Merge latest fixes.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      86cb2ec7
    • Linus Torvalds's avatar
      Linux 2.6.38-rc8 · a5abba98
      Linus Torvalds authored
      a5abba98
    • Linus Torvalds's avatar
      Merge branch 's5p-fixes-for-linus' of... · 715695ca
      Linus Torvalds authored
      Merge branch 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung
      
      * 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        ARM: S3C64XX: Update regulator names for debugfs compatiblity on SMDK6410
        ARM: S3C64XX: Fix build with WM1190 disabled and WM1192 enabled on SMDK6410
        ARM: S3C64XX: Reduce output of s3c64xx_dma_init1()
        ARM: S3C64XX: Tone down SDHCI debugging
        ARM: S3C64XX: Add clock for i2c1
        ARM: S3C64XX: Staticise non-exported GPIO to interrupt functions
        ARM: SAMSUNG: Include devs.h in dev-uart.c to prototype devices
        ARM: S3C64XX: Fix keypad setup to configure correct number of rows
        ARM: S3C2440: Fix usage gpio bank j pin definitions on GTA02
        ARM: S5P64X0: Fix number of GPIO lines in Bank F
        ARM: S3C2440: Select missing S3C_DEV_USB_HOST on GTA02
      715695ca
    • Linus Torvalds's avatar
      Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm · 34d4ade7
      Linus Torvalds authored
      * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
        davinci: cpufreq: fix section mismatch warning
        DaVinci: fix compilation warnings in <mach/clkdev.h>
        davinci: tnetv107x: fix register indexing for GPIOs numbers > 31
        davinci: da8xx/omap-l1x: add platform device for davinci-pcm-audio
        ARM: pxa/tosa: register wm9712 codec device
        ARM: pxa: enable pxa-pcm-audio on pxa210/pxa25x platform
        ARM: pxa/colibri: don't register pxa2xx-pcmcia nodes on non-colibri platforms
        ARM: pxa/tosa: drop setting LED trigger name, as it's unsupported now
        ARM: 6762/1: Update number of VIC for S5P6442 and S5PC100
        ARM: 6761/1: Update number of VIC for S5PV210
        ARM: 6768/1: hw_breakpoint: ensure debug logic is powered up on v7 cores
        ARM: 6767/1: ptrace: fix register indexing in GETHBPREGS request
        ARM: 6765/1: remove obsolete comment from asm/mach/arch.h
        ARM: 6757/1: fix tlb.h induced linux/swap.h build failure
      34d4ade7
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 1a345303
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
        mmc: sdio: Allow sdio operations in other threads during sdio_add_func()
      1a345303
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · b44a53d1
      Linus Torvalds authored
      * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
        drm: index i shadowed in 2nd loop
        drm/nv50-nvc0: prevent multiple vm/bar flushes occuring simultanenously
        drm/nouveau: fix regression causing ttm to not be able to evict vram
        drm/i915: Rebind the buffer if its alignment constraints changes with tiling
        drm/i915: Disable GPU semaphores by default
        drm/i915: Do not overflow the MMADDR write FIFO
        Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing"
      b44a53d1
  3. 07 Mar, 2011 9 commits
  4. 06 Mar, 2011 11 commits
  5. 05 Mar, 2011 11 commits