04 Mar, 2017

23 commits

  • The -a/--all-cpus and -C/--cpu option is for controlling tracing cpus.

    Signed-off-by: Namhyung Kim
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170224011251.14946-3-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • The cpu_map__snprint_mask() generates a string representation of a
    cpumask bitmap. For cpu 0 to 11, it'll return "fff".

    Committer notes:

    Fix compiler warning on some toolchains:

    19 fedora:24-x-ARC-uClibc: FAIL

    CC /tmp/build/perf/util/cpumap.o
    util/cpumap.c: In function 'hex_char':
    util/cpumap.c:679:2: error: comparison is always true due to limited range of data type [-Werror=type-limits]
    if (0
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170224011251.14946-2-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • The -p (--pid) option enables to trace existing process by its pid.

    Committer notes:

    Testing it:

    Using the function_graph tracer on a process that is just waiting for user
    input and thus will make 'perf ftrace' sit there waiting for that, then press
    any key on that mutt session and see what happens:

    # perf ftrace -t function_graph -p `pidof mutt` | head -40
    2) 1.038 us | switch_mm_irqs_off();
    ------------------------------------------
    2) -0 => mutt-3595
    ------------------------------------------

    2) | finish_task_switch() {
    2) | smp_irq_work_interrupt() {
    2) | irq_enter() {
    2) 0.180 us | rcu_irq_enter();
    2) 1.248 us | }
    2) | __wake_up() {
    2) 0.126 us | _raw_spin_lock_irqsave();
    2) | __wake_up_common() {
    2) | pollwake() {
    2) | default_wake_function() {
    2) | try_to_wake_up() {
    2) 0.662 us | _raw_spin_lock_irqsave();
    2) | select_task_rq_fair() {
    2) 1.719 us | effective_load.isra.41();
    2) 1.343 us | effective_load.isra.41();
    2) | select_idle_sibling() {
    2) 0.331 us | idle_cpu();
    2) 1.458 us | }
    2) 8.350 us | }
    2) 0.200 us | _raw_spin_lock();
    2) | ttwu_do_activate() {
    2) | activate_task() {
    2) 0.136 us | update_rq_clock.part.77();
    2) | enqueue_task_fair() {
    2) | enqueue_entity() {
    2) 0.146 us | update_curr();
    2) 0.330 us | account_entity_enqueue();
    2) 0.280 us | update_cfs_shares();
    2) 0.321 us | place_entity();
    2) 0.206 us | __enqueue_entity();
    2) 6.926 us | }
    2) | enqueue_entity() {
    2) 0.105 us | update_curr();
    2) 0.175 us | account_entity_enqueue();
    2) 0.531 us | update_cfs_shares();
    #

    Signed-off-by: Namhyung Kim
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170224011251.14946-1-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Add new sort key 'symbol_size' to allow user to sort by symbol size, or
    (more usefully) display the symbol size using --fields=...,symbol_size.

    Committer note:

    Testing it together with the recently added -q, to remove the headers,
    and using the '+' sign with -s, to add the symbol_size sort order to
    the default, which is '-s/--sort comm,dso,symbol':

    # perf report -q -s +symbol_size | head -10
    10.39% swapper [kernel.vmlinux] [k] intel_idle 270
    3.45% swapper [kernel.vmlinux] [k] update_blocked_averages 1546
    2.61% swapper [kernel.vmlinux] [k] update_load_avg 1292
    2.36% swapper [kernel.vmlinux] [k] update_cfs_shares 240
    1.83% swapper [kernel.vmlinux] [k] __hrtimer_run_queues 606
    1.74% swapper [kernel.vmlinux] [k] update_cfs_rq_load_avg. 1187
    1.66% swapper [kernel.vmlinux] [k] apic_timer_interrupt 152
    1.60% CPU 0/KVM [kvm] [k] kvm_set_msr_common 3046
    1.60% gnome-shell libglib-2.0.so.0 [.] g_slist_find 37
    1.46% gnome-termina libglib-2.0.so.0 [.] g_hash_table_lookup 370
    #

    Signed-off-by: Charles Baylis
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Maxim Kuvyrkov
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1487943176-13840-1-git-send-email-charles.baylis@linaro.org
    [ Use symbol__size(), remove needless %lld + (long long) casting ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Charles Baylis
     
  • This is an odd refcount use case, so add some more comments to help
    understand that when it hits zero it really means that the mmap()ed area
    (on a perf_event_open() returned fd) has been munmap()ed.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/20170223162344.GD3595@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The refcount_t type and corresponding API should be used instead of
    atomic_t when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-10-git-send-email-elena.reshetova@intel.com
    [ Did missing tests/thread-map.c conversion ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of atomic_t
    when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-9-git-send-email-elena.reshetova@intel.com
    [ Did missing conversion in __machine__remove_thread() ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of
    atomic_t when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-8-git-send-email-elena.reshetova@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of
    atomic_t when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-7-git-send-email-elena.reshetova@intel.com
    [ Did the missing conversion of tests/thread-mg-share.c too ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of
    atomic_t when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-6-git-send-email-elena.reshetova@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of atomic_t
    when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-5-git-send-email-elena.reshetova@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of
    atomic_t when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-4-git-send-email-elena.reshetova@intel.com
    [ Reinstated comm_str__get() function, needed when reusing entries in the rbtree ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of atomic_t
    when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Cc: alsa-devel@alsa-project.org
    Link: http://lkml.kernel.org/r/1487691303-31858-3-git-send-email-elena.reshetova@intel.com
    [ fixed mixed conversion to refcount in tests/cpumap.c ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • The refcount_t type and corresponding API should be used instead of
    atomic_t when the variable is used as a reference counter.

    This allows to avoid accidental refcounter overflows that might lead to
    use-after-free situations.

    Signed-off-by: Elena Reshetova
    Signed-off-by: David Windsor
    Signed-off-by: Hans Liljestrand
    Signed-off-by: Kees Kook
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Alexander Shishkin
    Cc: alsa-devel@alsa-project.org
    Cc: Andrew Morton
    Cc: David Windsor
    Cc: Greg Kroah-Hartman
    Cc: Hans Liljestrand
    Cc: Jiri Olsa
    Cc: Kees Kook
    Cc: Mark Rutland
    Cc: Matija Glavinic Pecotic
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1487691303-31858-2-git-send-email-elena.reshetova@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Elena Reshetova
     
  • To aid in catching bugs when using atomics as a reference count.

    This is a trimmed down version with just what is used by tools/ at
    this point.

    After this, the patches submitted by Elena for tools/ doing the
    conversion from atomic_ to recount_ methods can be applied and tested.

    To activate it, buint perf with:

    make DEBUG=1 -C tools/perf

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-dqtxsumns9ov0l9r5x398f19@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • The kernel has it and some files we got from there would require us
    including the userland header for that, so add it conditionally.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-gmwyal7c9vzzttlyk6u59rzn@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • We've been using an atomic_t implementation subset based on the gcc
    builtin functions for a while, now, with refcount.h we need cmpxchg(),
    use gcc's __sync_val_compare_and_swap() for that.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-b9zovyxgpa0c4vi3nm0kjo97@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Will be used by refcnt.h

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-jszriruqfqpez1bkivwfj6qb@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Will be used by atomic_cmpxchg_relaxed(), in turn used by refcount.h.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-kdmovd3l4gw5b1w31ypr6ddv@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Will be included from atomic.h and used in refcount.h

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-pzrydfee75mhq64kazxmf9it@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • From the kernel, get the gcc one and provide the fallback so that we can
    continue build with other compilers, such as with clang.

    Will be used by tools/arch/x86/include/asm/cmpxchg.h.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Elena Reshetova
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-pecgz6efai4a9euuk4rxuotr@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • When using perf stat on an AMD F15h system with the default hw events
    attributes, some of the events don't get counted:

    Performance counter stats for 'sleep 1':

    0.749208 task-clock (msec) # 0.001 CPUs utilized
    1 context-switches # 0.001 M/sec
    0 cpu-migrations # 0.000 K/sec
    54 page-faults # 0.072 M/sec
    1,122,815 cycles # 1.499 GHz
    286,740 stalled-cycles-frontend # 25.54% frontend cycles idle
    stalled-cycles-backend (0.00%)
    ^^^^^^^^^^^^
    instructions (0.00%)
    ^^^^^^^^^^^^
    branches (0.00%)
    branch-misses (0.00%)

    1.001550070 seconds time elapsed

    The reason is that we have the HW watchdog consuming one PMU counter and
    when perf tries to schedule 6 events on 6 counters and some of those
    counters are constrained to only a specific subset of PMCs by the
    hardware, the event scheduling fails.

    So issue a hint to disable the HW watchdog around a perf stat session.

    Committer note:

    Testing it...

    # perf stat -d usleep 1

    Performance counter stats for 'usleep 1':

    1.180203 task-clock (msec) # 0.490 CPUs utilized
    1 context-switches # 0.847 K/sec
    0 cpu-migrations # 0.000 K/sec
    54 page-faults # 0.046 M/sec
    184,754 cycles # 0.157 GHz
    714,553 instructions # 3.87 insn per cycle
    154,661 branches # 131.046 M/sec
    7,247 branch-misses # 4.69% of all branches
    219,984 L1-dcache-loads # 186.395 M/sec
    17,600 L1-dcache-load-misses # 8.00% of all L1-dcache hits (90.16%)
    LLC-loads (0.00%)
    LLC-load-misses (0.00%)

    0.002406823 seconds time elapsed

    Some events weren't counted. Try disabling the NMI watchdog:
    echo 0 > /proc/sys/kernel/nmi_watchdog
    perf stat ...
    echo 1 > /proc/sys/kernel/nmi_watchdog
    #

    Signed-off-by: Borislav Petkov
    Acked-by: Ingo Molnar
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Peter Zijlstra
    Cc: Robert Richter
    Cc: Vince Weaver
    Link: http://lkml.kernel.org/r/20170211183218.ijnvb5f7ciyuunx4@pd.tnic
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov
     
  • Reuse events from KnightsLanding for KnightsMill

    Signed-off-by: Karol Wachowski
    Cc: Alexander Shishkin
    Cc: Andi Kleen
    Cc: Dave Hansen
    Cc: Kan Liang
    Cc: Peter Zijlstra
    Cc: Piotr Luc
    Cc: Srinivas Pandruvada
    Link: http://lkml.kernel.org/r/1487591440-25172-1-git-send-email-karol.wachowski@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Karol Wachowski
     

02 Mar, 2017

13 commits

  • Conflicts:
    arch/powerpc/configs/85xx/kmp204x_defconfig

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull objtool relocation fixes from Ingo Molnar:
    "Two fixes related to the module loading regression introduced by the
    recent objtool changes"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    objtool, modules: Discard objtool annotation sections for modules
    objtool, compiler.h: Fix __unreachable section relocation size

    Linus Torvalds
     
  • Pull NFS client updates from Anna Schumaker:
    "Highlights include:

    Stable bugfixes:
    - NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
    - xprtrdma: Fix Read chunk padding
    - xprtrdma: Per-connection pad optimization
    - xprtrdma: Disable pad optimization by default
    - xprtrdma: Reduce required number of send SGEs
    - nlm: Ensure callback code also checks that the files match
    - pNFS/flexfiles: If the layout is invalid, it must be updated before
    retrying
    - NFSv4: Fix reboot recovery in copy offload
    - Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION
    replies to OP_SEQUENCE"
    - NFSv4: fix getacl head length estimation
    - NFSv4: fix getacl ERANGE for sum ACL buffer sizes

    Features:
    - Add and use dprintk_cont macros
    - Various cleanups to NFS v4.x to reduce code duplication and
    complexity
    - Remove unused cr_magic related code
    - Improvements to sunrpc "read from buffer" code
    - Clean up sunrpc timeout code and allow changing TCP timeout
    parameters
    - Remove duplicate mw_list management code in xprtrdma
    - Add generic functions for encoding and decoding xdr streams

    Bugfixes:
    - Clean up nfs_show_mountd_netid
    - Make layoutreturn_ops static and use NULL instead of 0 to fix
    sparse warnings
    - Properly handle -ERESTARTSYS in nfs_rename()
    - Check if register_shrinker() failed during rpcauth_init()
    - Properly clean up procfs/pipefs entries
    - Various NFS over RDMA related fixes
    - Silence unititialized variable warning in sunrpc"

    * tag 'nfs-for-4.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (64 commits)
    NFSv4: fix getacl ERANGE for some ACL buffer sizes
    NFSv4: fix getacl head length estimation
    Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE"
    NFSv4: Fix reboot recovery in copy offload
    pNFS/flexfiles: If the layout is invalid, it must be updated before retrying
    NFSv4: Clean up owner/group attribute decode
    SUNRPC: Add a helper function xdr_stream_decode_string_dup()
    NFSv4: Remove bogus "struct nfs_client" argument from decode_ace()
    NFSv4: Fix the underestimation of delegation XDR space reservation
    NFSv4: Replace callback string decode function with a generic
    NFSv4: Replace the open coded decode_opaque_inline() with the new generic
    NFSv4: Replace ad-hoc xdr encode/decode helpers with xdr_stream_* generics
    SUNRPC: Add generic helpers for xdr_stream encode/decode
    sunrpc: silence uninitialized variable warning
    nlm: Ensure callback code also checks that the files match
    sunrpc: Allow xprt->ops->timer method to sleep
    xprtrdma: Refactor management of mw_list field
    xprtrdma: Handle stale connection rejection
    xprtrdma: Properly recover FRWRs with in-flight FASTREG WRs
    xprtrdma: Shrink send SGEs array
    ...

    Linus Torvalds
     
  • Pull f2fs updates from Jaegeuk Kim:
    "This round introduces several interesting features such as on-disk NAT
    bitmaps, IO alignment, and a discard thread. And it includes a couple
    of major bug fixes as below.

    Enhancements:

    - introduce on-disk bitmaps to avoid scanning NAT blocks when getting
    free nids

    - support IO alignment to prepare open-channel SSD integration in
    future

    - introduce a discard thread to avoid long latency during checkpoint
    and fstrim

    - use SSR for warm node and enable inline_xattr by default

    - introduce in-memory bitmaps to check FS consistency for debugging

    - improve write_begin by avoiding needless read IO

    Bug fixes:

    - fix broken zone_reset behavior for SMR drive

    - fix wrong victim selection policy during GC

    - fix missing behavior when preparing discard commands

    - fix bugs in atomic write support and fiemap

    - workaround to handle multiple f2fs_add_link calls having same name

    ... and it includes a bunch of clean-up patches as well"

    * tag 'for-f2fs-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (97 commits)
    f2fs: avoid to flush nat journal entries
    f2fs: avoid to issue redundant discard commands
    f2fs: fix a plint compile warning
    f2fs: add f2fs_drop_inode tracepoint
    f2fs: Fix zoned block device support
    f2fs: remove redundant set_page_dirty()
    f2fs: fix to enlarge size of write_io_dummy mempool
    f2fs: fix memory leak of write_io_dummy mempool during umount
    f2fs: fix to update F2FS_{CP_}WB_DATA count correctly
    f2fs: use MAX_FREE_NIDS for the free nids target
    f2fs: introduce free nid bitmap
    f2fs: new helper cur_cp_crc() getting crc in f2fs_checkpoint
    f2fs: update the comment of default nr_pages to skipping
    f2fs: drop the duplicate pval in f2fs_getxattr
    f2fs: Don't update the xattr data that same as the exist
    f2fs: kill __is_extent_same
    f2fs: avoid bggc->fggc when enough free segments are avaliable after cp
    f2fs: select target segment with closer temperature in SSR mode
    f2fs: show simple call stack in fault injection message
    f2fs: no need lock_op in f2fs_write_inline_data
    ...

    Linus Torvalds
     
  • The '__unreachable' and '__func_stack_frame_non_standard' sections are
    only used at compile time. They're discarded for vmlinux but they
    should also be discarded for modules.

    Since this is a recurring pattern, prefix the section names with
    ".discard.". It's a nice convention and vmlinux.lds.h already discards
    such sections.

    Also remove the 'a' (allocatable) flag from the __unreachable section
    since it doesn't make sense for a discarded section.

    Suggested-by: Linus Torvalds
    Signed-off-by: Josh Poimboeuf
    Cc: Jessica Yu
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
    Link: http://lkml.kernel.org/r/20170301180444.lhd53c5tibc4ns77@treble
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     
  • Pull arm64 fixes from Will Deacon:
    "The main fix here addresses a kernel panic triggered on Qualcomm
    QDF2400 due to incorrect register usage in an erratum workaround
    introduced during the merge window.

    Summary:

    - Fix kernel panic on specific Qualcomm platform due to broken
    erratum workaround

    - Revert contiguous bit support due to TLB conflict aborts in
    simulation

    - Don't treat all CPU ID register fields as 4-bit quantities"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64/cpufeature: check correct field width when updating sys_val
    Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate"
    arm64: Avoid clobbering mm in erratum workaround on QDF2400

    Linus Torvalds
     
  • Pull more powerpc updates from Michael Ellerman:
    "Highlights include:

    - an update of the disassembly code used by xmon to the latest
    versions in binutils. We've received permission from all the
    authors of the relevant binutils changes to relicense their changes
    to the relevant files from GPLv3 to GPLv2, for inclusion in Linux.
    Thanks to Peter Bergner for doing the leg work to get permission
    from everyone.

    - addition of the "architected" Power9 CPU table entry, allowing us
    to boot in Power9 architected mode under a hypervisor.

    - updates to the Power9 PMU code.

    - implementation of clear_bit_unlock_is_negative_byte() to optimise
    unlock_page().

    - Freescale updates from Scott: "Highlights include 8xx breakpoints
    and perf, t1042rdb display support, and board updates."

    Thanks to:
    Al Viro, Andrew Donnellan, Aneesh Kumar K.V, Balbir Singh, Douglas
    Miller, Frédéric Weisbecker, Gavin Shan, Madhavan Srinivasan,
    Michael Roth, Nathan Fontenot, Naveen N. Rao, Nicholas Piggin, Peter
    Bergner, Paul E. McKenney, Rashmica Gupta, Russell Currey, Sahil
    Mehta, Stewart Smith"

    * tag 'powerpc-4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (48 commits)
    powerpc: Remove leftover cputime_to_nsecs call causing build error
    powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU
    powerpc/optprobes: Fix TOC handling in optprobes trampoline
    powerpc/pseries: Advertise Hot Plug Event support to firmware
    cxl: fix nested locking hang during EEH hotplug
    powerpc/xmon: Dump memory in CPU endian format
    powerpc/pseries: Revert 'Auto-online hotplugged memory'
    powerpc/powernv: Make PCI non-optional
    powerpc/64: Implement clear_bit_unlock_is_negative_byte()
    powerpc/powernv: Remove unused variable in pnv_pci_sriov_disable()
    powerpc/kernel: Remove error message in pcibios_setup_phb_resources()
    powerpc/mm: Fix typo in set_pte_at()
    pci/hotplug/pnv-php: Disable MSI and PCI device properly
    pci/hotplug/pnv-php: Disable surprise hotplug capability on conflicts
    pci/hotplug/pnv-php: Remove WARN_ON() in pnv_php_put_slot()
    powerpc: Add POWER9 architected mode to cputable
    powerpc/perf: use is_kernel_addr macro in perf_get_misc_flags()
    powerpc/perf: Avoid FAB_*_MATCH checks for power9
    powerpc/perf: Add restrictions to PMC5 in power9 DD1
    powerpc/perf: Use Instruction Counter value
    ...

    Linus Torvalds
     
  • INPUT_PROP_BUTTONPAD is currently only set through the platform data.
    The RMI4 header doc says that this property is there to force the
    buttonpad property, so we also need to detect it by looking at
    the exported buttons count.

    Signed-off-by: Benjamin Tissoires
    Reported-and-tested-by: Linus Torvalds
    Signed-off-by: Linus Torvalds

    Benjamin Tissoires
     
  • Pull sound fixes from Takashi Iwai:
    "A few last-minute fixes for rc1:

    - ALSA core timer and sequencer fixes for bugs spotted by syzkaller

    - a couple of trivial HD-audio fixups

    - additional PCI / codec IDs for Intel Geminilake

    - fixes for CT-XFi DMA mask bugs"

    * tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: seq: Fix link corruption by event error handling
    ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
    ALSA: ctxfi: Fallback DMA mask to 32bit
    ALSA: timer: Reject user params with too small ticks
    ALSA: hda: Add Geminilake HDMI codec ID
    ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
    ALSA: hda - Add Geminilake PCI ID

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:

    - add thermal driver for R-Car Gen3 thermal sensors.

    - add thermal driver for ZTE' zx2967 family thermal sensors.

    - convert thermal ID allocation from IDR to IDA.

    - fix a possible NULL dereference in imx thermal driver.

    - fix a ti-soc-thermal driver dependency issue so that critical thermal
    control is still available when CPU_THERMAL is not defined.

    - update binding information for QorIQ thermal driver.

    - a couple of cleanups in thermal core, intel_powerclamp, exynos,
    dra752-thermal, mtk-thermal driver.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    powerpc/mpc85xx: Update TMU device tree node for T1023/T1024
    powerpc/mpc85xx: Update TMU device tree node for T1040/T1042
    dt-bindings: Update QorIQ TMU thermal bindings
    thermal: mtk_thermal: Staticise a number of data variables
    thermal: arm: dra752: Remove all TSHUT related definitions
    thermal: arm: dra752: Remove TSHUT configuration
    thermal: ti-soc-thermal: Remove CPU_THERMAL Dependency from TI_THERMAL
    thermal: imx: Fix possible NULL dereference.
    thermal: exynos: Remove parsing unused samsung,tmu_cal_mode property
    thermal: zx2967: add thermal driver for ZTE's zx2967 family
    thermal: use cpumask_var_t for on-stack cpu masks
    dt: bindings: add documentation for zx2967 family thermal sensor
    thermal/intel_powerclamp: Remove set-but-not-used variables
    thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver
    thermal: rcar_gen3_thermal: Document the R-Car Gen3
    thermal: convert devfreq_cooling to use an IDA
    thermal: convert cpu_cooling to use an IDA
    thermal: convert clock cooling to use an IDA
    thermal core: convert ID allocation to IDA

    Linus Torvalds
     
  • …ierry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set contains mostly fixes to existing drivers as well as cleanup
    of code that's not been in active use for a while"

    * tag 'pwm/for-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (27 commits)
    acpi: lpss: call pwm_add_table() for BSW PWM device
    pwm: Try to load modules during pwm_get()
    pwm: Don't hold pwm_lookup_lock longer than necessary
    pwm: Make the PWM_POLARITY flag in DTB optional
    pwm: Print error messages with pr_err() instead of pr_debug()
    pwm: imx: Add polarity inversion support to i.MX's PWMv2
    pwm: imx: doc: Update imx-pwm.txt documentation entry
    pwm: imx: Remove redundant i.MX PWMv2 code
    pwm: imx: Provide atomic PWM support for i.MX PWMv2
    pwm: imx: Move PWMv2 wait for fifo slot code to a separate function
    pwm: imx: Move PWMv2 software reset code to a separate function
    pwm: imx: Rewrite v1 code to facilitate switch to atomic PWM
    pwm: imx: Add separate set of PWM ops for v1 and v2
    pwm: imx: Remove ipg clock and enable per clock when required
    pwm: lpss: Add Intel Gemini Lake PCI ID
    pwm: lpss: Do not export board infos for different PWM types
    pwm: lpss: Avoid reconfiguring while UPDATE bit is still enabled
    pwm: lpss: Switch to new atomic API
    pwm: lpss: Allow duty cycle to be 0
    pwm: lpss: Avoid potential overflow of base_unit
    ...

    Linus Torvalds
     
  • Pull drm AST2500 support from Dave Airlie:
    "This is a set of changes to enable the AST2500 BMC hardware, and also
    fix some bugs interacting with the older AST hardware.

    Some of the bug fixes are cc'ed to stable"

    * tag 'drm-ast-2500-for-v4.11' of git://people.freedesktop.org/~airlied/linux:
    drm/ast: Call open_key before enable_mmio in POST code
    drm/ast: Fix test for VGA enabled
    drm/ast: POST code for the new AST2500
    drm/ast: Rename ast_init_dram_2300 to ast_post_chip_2300
    drm/ast: Factor mmc_test code in POST code
    drm/ast: Fixed vram size incorrect issue on POWER
    drm/ast: Base support for AST2500
    drm/ast: Fix calculation of MCLK
    drm/ast: Remove spurious include
    drm/ast: const'ify mode setting tables
    drm/ast: Handle configuration without P2A bridge
    drm/ast: Fix AST2400 POST failure without BMC FW or VBIOS

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Misc fixes for v4.11-rc1.

    This is a selection of fixes for recent bugs, the vmwgfx one is
    important to avoid a regression, and compat ioctl one is pretty urgent
    for stable. Otherwise nothing too much.

    I've got a separate pull req for some AST hw IBM need to enable"

    * tag 'drm-fixes-for-v4.11-rc1' of git://people.freedesktop.org/~airlied/linux:
    dma-buf: add support for compat ioctl
    drm/vmwgfx: Work around drm removal of control nodes
    drm/rockchip: cdn-dp: Fix error handling
    drm/rockchip: add extcon dependency for DP
    drm: zte: fix static checker warning on variable 'fmt'

    Linus Torvalds
     

01 Mar, 2017

4 commits

  • Linus reported the following commit broke module loading on his laptop:

    d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")

    It showed errors like the following:

    module: overflow in relocation type 10 val ffffffffc02afc81
    module: 'nvme' likely not compiled with -mcmodel=kernel

    The problem is that the __unreachable section addresses are stored using
    the '.long' asm directive, which isn't big enough for .text section
    kernel addresses. Use relative addresses instead:

    ".long %c0b - .\t\n"

    Suggested-by: Linus Torvalds
    Reported-by: Linus Torvalds
    Signed-off-by: Josh Poimboeuf
    Cc: Peter Zijlstra
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
    Link: http://lkml.kernel.org/r/20170301060504.oltm3iws6fmubnom@treble
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     
  • We have uses of CONFIG_UPROBE_EVENT and CONFIG_KPROBE_EVENT as
    well as CONFIG_UPROBE_EVENTS and CONFIG_KPROBE_EVENTS.

    Consistently use the plurals.

    Signed-off-by: Anton Blanchard
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Josh Poimboeuf
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: acme@kernel.org
    Cc: alexander.shishkin@linux.intel.com
    Cc: davem@davemloft.net
    Cc: sparclinux@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170216060050.20866-1-anton@ozlabs.org
    Signed-off-by: Ingo Molnar

    Anton Blanchard
     
  • Fix to the exception table entry check by using probed address
    instead of the address of copied instruction.

    This bug may cause unexpected kernel panic if user probe an address
    where an exception can happen which should be fixup by __ex_table
    (e.g. copy_from_user.)

    Unless user puts a kprobe on such address, this doesn't
    cause any problem.

    This bug has been introduced years ago, by commit:

    464846888d9a ("x86/kprobes: Fix a bug which can modify kernel code permanently").

    Signed-off-by: Masami Hiramatsu
    Cc: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: 464846888d9a ("x86/kprobes: Fix a bug which can modify kernel code permanently")
    Link: http://lkml.kernel.org/r/148829899399.28855.12581062400757221722.stgit@devbox
    Signed-off-by: Ingo Molnar

    Masami Hiramatsu
     
  • Pull IPMI updates from Corey Minyard:
    "This is a few small fixes to the main IPMI driver, make some things
    const, fix typos, etc.

    The last patch came in about a week ago, but IMHO it's best to go in
    now. It is not for the main driver, it's for the bt-bmc driver, which
    runs on the managment controller side, not on the host side, so the
    scope is limited and the change is necessary"

    * tag 'for-linus-4.11' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: bt-bmc: Use a regmap for register access
    char: ipmi: constify ipmi_smi_handlers structures
    acpi:ipmi: Make IPMI user handler const
    ipmi: make ipmi_usr_hndl const
    Documentation: Fix a typo in IPMI.txt.

    Linus Torvalds