1. 04 11月, 2013 9 次提交
  2. 03 11月, 2013 2 次提交
  3. 02 11月, 2013 20 次提交
  4. 01 11月, 2013 9 次提交
    • A
      perf test: Update command line callchain attribute tests · 46d525ea
      Arnaldo Carvalho de Melo 提交于
      The "struct perf_event_attr setup" entry in 'perf test' is in fact a
      series of tests that will exec the tools, passing different sets of
      command line arguments to then intercept the sys_perf_event_open
      syscall, in user space, to check that the perf_event_attr->sample_type
      and other feature request bits are setup as expected.
      
      We recently restored the callchain requesting command line argument, -g,
      to not require a parameter ("dwarf" or "fp"), instead using a default
      ("fp" for now) and making the long option variant, --call-chain, be the
      one to be used when a different callchain collection method is
      preferred.
      
      The "struct perf_event_attr setup" test failed because we forgot to
      update the tests involving callchains, not switching from, '-g dwarf' to
      '--call-chain dwarf', making 'perf test' detect it:
      
        [root@sandy ~]# perf test -v 13
        13: struct perf_event_attr setup                           :
        --- start ---
        running '/home/acme/libexec/perf-core/tests/attr/test-record-basic'
        running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-any'
        <SNIP>
        running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-default'
        running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-dwarf'
        expected sample_type=12583, got 295
        expected exclude_callchain_user=1, got 0
        expected sample_stack_user=8192, got 0
        FAILED '/home/acme/libexec/perf-core/tests/attr/test-record-graph-dwarf' - match failure
        ---- end ----
        struct perf_event_attr setup: FAILED!
        [root@sandy ~]#
      
      Fix all of them now to use --call-chain when explicitely specifying a
      method.
      
      There is still work to do, as '-g fp', for instance, passed without
      problems.
      
      In that case 'perf test' saw no problems as the intercepted syscall got
      the bits as expected, i.e. the default is 'fp', but the fact that 'fp'
      may be an existing program and the specified workload would then be
      passed as a parameter to it is an usability problem that needs fixing.
      
      Next merge window tho.
      Acked-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-jr3oq1k5iywnp7vvqlslzydm@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      46d525ea
    • W
      perf bench: Fix two warnings · 32bf5bd1
      Wei Yang 提交于
      There are two warnings in bench/numa, when building this on 32-bit
      machine.
      
      The warning output is attached:
      
      bench/numa.c:1113:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      bench/numa.c:1161:6: error: format ‘%lx’ expects argument of t'long unsigned int’, but argument 5 has type ‘u64’ [-Werror=format]
      
      This patch fixes these two warnings.
      Signed-off-by: NWei Yang <weiyang@linux.vnet.ibm.com>
      Acked-by: NIngo Molnar <mingo@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Link: http://lkml.kernel.org/r/1379839764-9245-1-git-send-email-weiyang@linux.vnet.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      32bf5bd1
    • M
      perf tools: Remove cast of non-variadic function to variadic · 53805eca
      Michael Hudson-Doyle 提交于
      The 4fb71074 (perf ui/hist: Consolidate hpp helpers) cset introduced
      a cast of percent_color_snprintf to a function pointer type with
      varargs.  Change percent_color_snprintf to be variadic and remove the
      cast.
      
      The symptom of this was all percentages being reported as 0.00% in perf
      report --stdio output on the armhf arch.
      Signed-off-by: NMichael Hudson-Doyle <michael.hudson@linaro.org>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/87zjppvw7y.fsf@canonical.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      53805eca
    • L
      Merge branch 'akpm' (fixes from Andrew Morton) · 4f794ee8
      Linus Torvalds 提交于
      Merge four more fixes from Andrew Morton.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        lib/scatterlist.c: don't flush_kernel_dcache_page on slab page
        mm: memcg: fix test for child groups
        mm: memcg: lockdep annotation for memcg OOM lock
        mm: memcg: use proper memcg in limit bypass
      4f794ee8
    • M
      lib/scatterlist.c: don't flush_kernel_dcache_page on slab page · 3d77b50c
      Ming Lei 提交于
      Commit b1adaf65 ("[SCSI] block: add sg buffer copy helper
      functions") introduces two sg buffer copy helpers, and calls
      flush_kernel_dcache_page() on pages in SG list after these pages are
      written to.
      
      Unfortunately, the commit may introduce a potential bug:
      
       - Before sending some SCSI commands, kmalloc() buffer may be passed to
         block layper, so flush_kernel_dcache_page() can see a slab page
         finally
      
       - According to cachetlb.txt, flush_kernel_dcache_page() is only called
         on "a user page", which surely can't be a slab page.
      
       - ARCH's implementation of flush_kernel_dcache_page() may use page
         mapping information to do optimization so page_mapping() will see the
         slab page, then VM_BUG_ON() is triggered.
      
      Aaro Koskinen reported the bug on ARM/kirkwood when DEBUG_VM is enabled,
      and this patch fixes the bug by adding test of '!PageSlab(miter->page)'
      before calling flush_kernel_dcache_page().
      Signed-off-by: NMing Lei <ming.lei@canonical.com>
      Reported-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Tested-by: NSimon Baatz <gmbnomis@gmail.com>
      Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: <stable@vger.kernel.org>	[3.2+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3d77b50c
    • J
      mm: memcg: fix test for child groups · 696ac172
      Johannes Weiner 提交于
      When memcg code needs to know whether any given memcg has children, it
      uses the cgroup child iteration primitives and returns true/false
      depending on whether the iteration loop is executed at least once or
      not.
      
      Because a cgroup's list of children is RCU protected, these primitives
      require the RCU read-lock to be held, which is not the case for all
      memcg callers.  This results in the following splat when e.g.  enabling
      hierarchy mode:
      
        WARNING: CPU: 3 PID: 1 at kernel/cgroup.c:3043 css_next_child+0xa3/0x160()
        CPU: 3 PID: 1 Comm: systemd Not tainted 3.12.0-rc5-00117-g83f11a9c-dirty #18
        Hardware name: LENOVO 3680B56/3680B56, BIOS 6QET69WW (1.39 ) 04/26/2012
        Call Trace:
          dump_stack+0x54/0x74
          warn_slowpath_common+0x78/0xa0
          warn_slowpath_null+0x1a/0x20
          css_next_child+0xa3/0x160
          mem_cgroup_hierarchy_write+0x5b/0xa0
          cgroup_file_write+0x108/0x2a0
          vfs_write+0xbd/0x1e0
          SyS_write+0x4c/0xa0
          system_call_fastpath+0x16/0x1b
      
      In the memcg case, we only care about children when we are attempting to
      modify inheritable attributes interactively.  Racing with deletion could
      mean a spurious -EBUSY, no problem.  Racing with addition is handled
      just fine as well through the memcg_create_mutex: if the child group is
      not on the list after the mutex is acquired, it won't be initialized
      from the parent's attributes until after the unlock.
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      696ac172
    • J
      mm: memcg: lockdep annotation for memcg OOM lock · 0056f4e6
      Johannes Weiner 提交于
      The memcg OOM lock is a mutex-type lock that is open-coded due to
      memcg's special needs.  Add annotations for lockdep coverage.
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0056f4e6
    • J
      mm: memcg: use proper memcg in limit bypass · 3168ecbe
      Johannes Weiner 提交于
      Commit 84235de3 ("fs: buffer: move allocation failure loop into the
      allocator") allowed __GFP_NOFAIL allocations to bypass the limit if they
      fail to reclaim enough memory for the charge.  But because the main test
      case was on a 3.2-based system, the patch missed the fact that on newer
      kernels the charge function needs to return root_mem_cgroup when
      bypassing the limit, and not NULL.  This will corrupt whatever memory is
      at NULL + percpu pointer offset.  Fix this quickly before problems are
      reported.
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3168ecbe
    • L
      vfs: decrapify dput(), fix cache behavior under normal load · 358eec18
      Linus Torvalds 提交于
      We do not want to dirty the dentry->d_flags cacheline in dput() just to
      set the DCACHE_REFERENCED flag when it is already set in the common case
      anyway.  This way the first cacheline of the dentry (which contains the
      RCU lookup information etc) can stay shared among multiple CPU's.
      
      This finishes off some of the details of all the scalability patches
      merged during the merge window.
      
      Also don't mark dentry_kill() for inlining, since it's the uncommon path
      and inlining it just makes the common path slower due to extra function
      entry/exit overhead.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      358eec18