1. 26 4月, 2018 5 次提交
    • J
      perf check-headers.sh: Simplify arguments passing · 15019e98
      Jiri Olsa 提交于
      Passing whole string instead of parsing them after.  It simplifies
      things for the next patches, that adds another function call, which
      makes it hard to pass arguments in the correct shape.
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180423090823.32309-2-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      15019e98
    • R
      perf buildid-cache: Support --purge-all option · 9a73c308
      Ravi Bangoria 提交于
      User can remove files from cache using --remove/--purge options but both
      needs list of files as an argument. It's not convenient when you want to
      flush out entire cache. Add an option to purge all files from cache.
      
      Ex,
        # perf buildid-cache -l
          8a86ef73e44067bca52cc3f6cd3e5446c783391c /tmp/a.out
          ebe71fdcf4b366518cc154d570a33cd461a51c36 /tmp/a.out.1
        # perf buildid-cache -P -v
          Removing /tmp/a.out (8a86ef73e44067bca52cc3f6cd3e5446c783391c): Ok
          Removing /tmp/a.out.1 (ebe71fdcf4b366518cc154d570a33cd461a51c36): Ok
          Purged all: Ok
      Signed-off-by: NRavi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Cc: Krister Johansen <kjlx@templeofstupid.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Philippe Ombredanne <pombredanne@nexb.com>
      Cc: Sihyeon Jang <uneedsihyeon@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/20180417041346.5617-4-ravi.bangoria@linux.vnet.ibm.com
      [ Initialize 'err' in build_id_cache__purge_all(), to fix build on debian:7, as it can be used uninitialized ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9a73c308
    • R
      perf buildid-cache: Support --list option · 8e1e0d74
      Ravi Bangoria 提交于
      'perf buildid-cache' allows to add/remove files into cache but there is
      no option to list all cached files. Add --list option to list all
      _valid_ cached files.
      
      Ex,
        # perf buildid-cache --add /tmp/a.out
        # perf buildid-cache -l
          8a86ef73e44067bca52cc3f6cd3e5446c783391c /tmp/a.out
      Signed-off-by: NRavi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Cc: Krister Johansen <kjlx@templeofstupid.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Philippe Ombredanne <pombredanne@nexb.com>
      Cc: Sihyeon Jang <uneedsihyeon@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/20180417041346.5617-3-ravi.bangoria@linux.vnet.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      8e1e0d74
    • I
      Merge tag 'perf-urgent-for-mingo-4.17-20180425' of... · d4652f61
      Ingo Molnar 提交于
      Merge tag 'perf-urgent-for-mingo-4.17-20180425' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
      perf stat:
      
       - Keep the '/' event modifier separator in fallback, for example when
         fallbacking from 'cpu/cpu-cycles/' to user level only, where it should
         become 'cpu/cpu-cycles/u' and not 'cpu/cpu-cycles/:u' (Jiri Olsa)
      
       - Fix PMU events parsing rule, improving error reporting for
         invalid events (Jiri Olsa)
      
       - Disable write_backward and other event attributes for !group
         events in a group, fixing, for instance this group: '{cycles,msr/aperf/}:S'
         that has leader sampling (:S) and where just the 'cycles',
         the leader event, should have the write_backward attribute
         set, in this case it all fails because the PMU where 'msr/aperf/'
         lives doesn't accepts write_backward style sampling (Jiri Olsa)
      
       - Only fall back group read for leader (Kan Liang)
      
       - Fix core PMU alias list for x86 platform (Kan Liang)
      
       - Print out hint for mixed PMU group error (Kan Liang)
      
       - Fix duplicate PMU name for interval print (Kan Liang)
      
      Core:
      
       - Set main kernel end address properly when reading kernel and
         module maps (Namhyung Kim)
      
      perf mem:
      
       - Fix incorrect entries and add missing man options (Sangwon Hong)
      
      s/390:
      
       - Remove s390 specific strcmp_cpuid_cmp function (Thomas Richter)
      
       - Adapt 'perf test' case record+probe_libc_inet_pton.sh for s390
      
       - Fix s390 undefined record__auxtrace_init() return value in
         'perf record' (Thomas Richter)
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      d4652f61
    • K
      perf/x86/intel: Don't enable freeze-on-smi for PerfMon V1 · 4e949e9b
      Kan Liang 提交于
      The SMM freeze feature was introduced since PerfMon V2. But the current
      code unconditionally enables the feature for all platforms. It can
      generate #GP exception, if the related FREEZE_WHILE_SMM bit is set for
      the machine with PerfMon V1.
      
      To disable the feature for PerfMon V1, perf needs to
      - Remove the freeze_on_smi sysfs entry by moving intel_pmu_attrs to
        intel_pmu, which is only applied to PerfMon V2 and later.
      - Check the PerfMon version before flipping the SMM bit when starting CPU
      
      Fixes: 6089327f ("perf/x86: Add sysfs entry to freeze counters on SMI")
      Signed-off-by: NKan Liang <kan.liang@linux.intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: ak@linux.intel.com
      Cc: eranian@google.com
      Cc: acme@redhat.com
      Link: https://lkml.kernel.org/r/1524682637-63219-1-git-send-email-kan.liang@linux.intel.com
      4e949e9b
  2. 25 4月, 2018 4 次提交
    • K
      perf stat: Fix duplicate PMU name for interval print · 80ee8c58
      Kan Liang 提交于
      PMU name is printed repeatedly for interval print, for example:
      
        perf stat --no-merge -e 'unc_m_clockticks' -a -I 1000
        #           time             counts unit events
           1.001053069        243,702,144      unc_m_clockticks [uncore_imc_4]
           1.001053069        244,268,304      unc_m_clockticks [uncore_imc_2]
           1.001053069        244,427,386      unc_m_clockticks [uncore_imc_0]
           1.001053069        244,583,760      unc_m_clockticks [uncore_imc_5]
           1.001053069        244,738,971      unc_m_clockticks [uncore_imc_3]
           1.001053069        244,880,309      unc_m_clockticks [uncore_imc_1]
           2.002024821        240,818,200      unc_m_clockticks [uncore_imc_4] [uncore_imc_4]
           2.002024821        240,767,812      unc_m_clockticks [uncore_imc_2] [uncore_imc_2]
           2.002024821        240,764,215      unc_m_clockticks [uncore_imc_0] [uncore_imc_0]
           2.002024821        240,759,504      unc_m_clockticks [uncore_imc_5] [uncore_imc_5]
           2.002024821        240,755,992      unc_m_clockticks [uncore_imc_3] [uncore_imc_3]
           2.002024821        240,750,403      unc_m_clockticks [uncore_imc_1] [uncore_imc_1]
      
      For each print, the PMU name is unconditionally appended to the
      counter->name.
      
      Need to check the counter->name first. If the PMU name is already
      appended, do nothing.
      
      Committer notes:
      
      Add and use perf_evsel->uniquified_name bool instead of doing the more
      expensive strstr(event->name, pmu->name).
      Signed-off-by: NKan Liang <kan.liang@linux.intel.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Agustin Vega-Frias <agustinv@codeaurora.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Fixes: 8c5421c0 ("perf pmu: Display pmu name when printing unmerged events in stat")
      Link: http://lkml.kernel.org/r/1524594014-79243-5-git-send-email-kan.liang@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      80ee8c58
    • K
      perf evsel: Only fall back group read for leader · 121f325f
      Kan Liang 提交于
      Perf doesn't support mixed events from different PMUs (except software
      event) in a group. The perf stat should output <not counted>/<not
      supported> for all events, but it doesn't. For example,
      
        perf stat -e '{cycles,uncore_imc_5/umask=0xF,event=0x4/,instructions}'
             <not counted>      cycles
             <not supported>    uncore_imc_5/umask=0xF,event=0x4/
                 1,024,300      instructions
      
      If perf fails to open an event, it doesn't error out directly. It will
      disable some features and retry, until the event is opened or all
      features are disabled. The disabled features will not be re-enabled. The
      group read is one of these features.
      
      For the example as above, the IMC event and the leader event "cycles"
      are from different PMUs. Opening the IMC event must fail. The group read
      feature must be disabled for IMC event and the followed event
      "instructions". The "instructions" event has the same PMU as the leader
      "cycles". It can be opened successfully. Since the group read feature
      has been disabled, the "instructions" event will be read as a single
      event, which definitely has a value.
      
      The group read fallback is still useful for the case which kernel
      doesn't support group read. It is good enough to be handled only by the
      leader.
      
      For the fallback request from members, it must be caused by an error.
      The fallback only breaks the semantics of group.  Limit the group read
      fallback only for the leader.
      
      Committer testing:
      
      On a broadwell t450s notebook:
      
      Before:
      
        # perf stat -e '{cycles,unc_cbo_cache_lookup.read_i,instructions}' sleep 1
      
        Performance counter stats for 'sleep 1':
      
           <not counted>      cycles
         <not supported>      unc_cbo_cache_lookup.read_i
                 818,206      instructions
      
             1.003170887 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
      
      After:
      
        # perf stat -e '{cycles,unc_cbo_cache_lookup.read_i,instructions}' sleep 1
      
        Performance counter stats for 'sleep 1':
      
           <not counted>      cycles
         <not supported>      unc_cbo_cache_lookup.read_i
           <not counted>      instructions
      
             1.001380511 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
        #
      Reported-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NKan Liang <kan.liang@linux.intel.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Agustin Vega-Frias <agustinv@codeaurora.org>
      Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Fixes:  82bf311e ("perf stat: Use group read for event groups")
      Link: http://lkml.kernel.org/r/1524594014-79243-3-git-send-email-kan.liang@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      121f325f
    • K
      perf stat: Print out hint for mixed PMU group error · 30060eae
      Kan Liang 提交于
      Perf doesn't support mixed events from different PMUs (except software
      event) in a group. For this case, only "<not counted>" or "<not
      supported>" are printed out. There is no hint which guides users to fix
      the issue.
      
      Checking the PMU type of events to determine if they are from the same
      PMU. There may be false alarm for the checking. E.g. the core PMU has
      different PMU type. But it should not happen often.
      
      The false alarm can also be tolerated, because:
      
      - It only happens on error path.
      - It just provides a possible solution for the issue.
      Signed-off-by: NKan Liang <kan.liang@linux.intel.com>
      Cc: Agustin Vega-Frias <agustinv@codeaurora.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Link: http://lkml.kernel.org/r/1524594014-79243-2-git-send-email-kan.liang@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      30060eae
    • K
      perf pmu: Fix core PMU alias list for X86 platform · 292c34c1
      Kan Liang 提交于
      When counting uncore event with alias, core event is mistakenly
      involved, for example:
      
        perf stat --no-merge -e "unc_m_cas_count.all" -C0  sleep 1
      
        Performance counter stats for 'CPU(s) 0':
      
                       0      unc_m_cas_count.all [uncore_imc_4]
                       0      unc_m_cas_count.all [uncore_imc_2]
                       0      unc_m_cas_count.all [uncore_imc_0]
                 153,640      unc_m_cas_count.all [cpu]
                       0      unc_m_cas_count.all [uncore_imc_5]
                  25,026      unc_m_cas_count.all [uncore_imc_3]
                       0      unc_m_cas_count.all [uncore_imc_1]
      
             1.001447890 seconds time elapsed
      
      The reason is that current implementation doesn't check PMU name of a
      event when adding its alias into the alias list for core PMU. The
      uncore event aliases are mistakenly added.
      
      This bug was introduced in:
        commit 14b22ae0 ("perf pmu: Add helper function is_pmu_core to
        detect PMU CORE devices")
      
      Checking the PMU name for all PMUs on X86 and other architectures except
      ARM.
      There is no behavior change for ARM.
      Signed-off-by: NKan Liang <kan.liang@linux.intel.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Agustin Vega-Frias <agustinv@codeaurora.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Fixes: 14b22ae0 ("perf pmu: Add helper function is_pmu_core to detect PMU CORE devices")
      Link: http://lkml.kernel.org/r/1524594014-79243-1-git-send-email-kan.liang@linux.intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      292c34c1
  3. 23 4月, 2018 20 次提交
    • T
      perf record: Fix s390 undefined record__auxtrace_init() return value · 5d9946c3
      Thomas Richter 提交于
      Command 'perf record' calls:
      
        cmd_report()
          record__auxtrace_init()
             auxtrace_record__init()
      
      On s390 function auxtrace_record__init() returns random return value due
      to missing initialization.
      
      This sometime causes 'perf record' to exit immediately without error
      message and creating a perf.data file.
      
      Fix this by setting error the return code to zero before returning from
      platform specific functions which may not set the error code in call
      cases.
      Signed-off-by: NThomas Richter <tmricht@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Link: http://lkml.kernel.org/r/20180423142940.21143-1-tmricht@linux.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      5d9946c3
    • S
      perf mem: Document incorrect and missing options · 3138a2ef
      Sangwon Hong 提交于
      Several options were incorrectly described, some lacked describing
      required arguments while others were simply not documented, fix it.
      Signed-off-by: NSangwon Hong <qpakzk@gmail.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Taeung Song <treeze.taeung@gmail.com>
      Link: http://lkml.kernel.org/r/1524382146-19609-1-git-send-email-qpakzk@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3138a2ef
    • J
      perf evsel: Disable write_backward for leader sampling group events · e9add8ba
      Jiri Olsa 提交于
      .. and other related fields that do not need to be enabled
      for events that have sampling leader.
      
      It fixes the perf top usage Ingo reported broken:
      
        # perf top -e '{cycles,msr/aperf/}:S'
      
      The 'msr/aperf/' event is configured for write_back sampling, which is
      not allowed by the MSR PMU, so it fails to create the event.
      
      Adjusting related attr test.
      Reported-by: NIngo Molnar <mingo@kernel.org>
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180423090823.32309-6-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      e9add8ba
    • J
      perf pmu: Fix pmu events parsing rule · 9a4a931c
      Jiri Olsa 提交于
      Currently all the event parsing fails end up in the event_pmu rule, and
      display misleading help like:
      
        $ perf stat -e inst kill
        event syntax error: 'inst'
                             \___ Cannot find PMU `inst'. Missing kernel support?
        ...
      
      The reason is that the event_pmu is too strong and match also single
      string. Changing it to force the '/' separators to be part of the rule,
      and getting the proper error now:
      
        $ perf stat -e inst kill
        event syntax error: 'inst'
                             \___ parser error
        Run 'perf list' for a list of valid events
        ...
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Reported-by: NIngo Molnar <mingo@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180423090823.32309-5-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9a4a931c
    • J
      perf stat: Keep the / modifier separator in fallback · 129193bb
      Jiri Olsa 提交于
      The 'perf stat' fallback for EACCES error sets the exclude_kernel
      perf_event_attr and tries perf_event_open() again with it. In addition,
      it also changes the name of the event to reflect that change by adding
      the 'u' modifier.
      
      But it does not take into account the '/' separator, so the event name
      can end up mangled, like: (note the '/:' characters)
      
        $ perf stat -e cpu/cpu-cycles/ kill
        ...
                   386,832      cpu/cpu-cycles/:u
      
      Adding the code to check on the '/' separator and set the following
      correct event name:
      
        $ perf stat -e cpu/cpu-cycles/ kill
        ...
                   388,548      cpu/cpu-cycles/u
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20180423090823.32309-4-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      129193bb
    • T
      perf test: Adapt test case record+probe_libc_inet_pton.sh for s390 · b31a8cc1
      Thomas Richter 提交于
      perf test case 58 (record+probe_libc_inet_pton.sh) executed on s390x
      using kernel 4.16.0rc3 displays this result:
      
       # perf trace --no-syscalls -e probe_libc:inet_pton/call-graph=dwarf/ ping -6 -c 1 ::1
           probe_libc:inet_pton: (3ffa0240448)
      	      __GI___inet_pton (/usr/lib64/libc-2.26.so)
      	      gaih_inet (inlined)
      	      __GI_getaddrinfo (inlined)
      	      main (/usr/bin/ping)
      	      __libc_start_main (/usr/lib64/libc-2.26.so)
      	     _start (/usr/bin/ping)
      
      After I installed kernel 4.16.0 the same tests uses commands:
      
       # perf record -e probe_libc:inet_pton/call-graph=dwarf/
            -o /tmp/perf.data.abc ping -6 -c 1 ::1
       # perf script -i /tmp/perf.data.abc
      
      and displays:
      
       ping 39048 [006] 84230.381198: probe_libc:inet_pton: (3ffa0240448)
      	       140448 __GI___inet_pton (/usr/lib64/libc-2.26.so)
      	       fbde1 gaih_inet (inlined)
      	       fe2b9 __GI_getaddrinfo (inlined)
      	        398d main (/usr/bin/ping)
      
      Nothing else changed including glibc elfutils and other libraries picked
      up by the build.
      
      The entries for __libc_start_main and _start are missing.
      
      I bisected missing __libc_start_main and _start to commit
      
      Fixes: 3d20c624 ("perf unwind: Unwind with libdw doesn't take symfs into account")
      
      When I undo this commit I get this call stack on s390:
       [root@s35lp76 perf]# ./perf script  -i /tmp/perf.data.abc
       ping 39048 [006] 84230.381198: probe_libc:inet_pton: (3ffa0240448)
      	140448 __GI___inet_pton (/usr/lib64/libc-2.26.so)
      	 fbde1 gaih_inet (inlined)
      	 fe2b9 __GI_getaddrinfo (inlined)
      	  398d main (/usr/bin/ping)
      	 22fbd __libc_start_main (/usr/lib64/libc-2.26.so)
      	  457b _start (/usr/bin/ping)
      
      Looks like dwarf functions dwfl_xxx create different call back stack
      trace when using file /usr/lib/debug/usr/bin/ping-20161105-7.fc27.s390x.debug
      instead of file /usr/bin/ping.
      
      Fix this test case on s390 and do not expect any call back stack entry
      after the main() function. Also be more robust and accept a leading
      __GI_ prefix in front of getaddrinfo.
      
      On x86 this test case shows the same call stack using both kernel
      versions 4.16.0rc3 and 4.16.0 and also stops at main:
      
        [root@f27 perf]# ./perf script -i /tmp/perf.data.tmr
        ping  4446 [000]   172.027088: probe_libc:inet_pton: (7fdfa08c93c0)
      	             1393c0 __GI___inet_pton (/usr/lib64/libc-2.26.so)
      	              fe60d getaddrinfo (/usr/lib64/libc-2.26.so)
      	               2f40 main (/usr/bin/ping)
        [root@f27 perf]#
      Signed-off-by: NThomas Richter <tmricht@linux.ibm.com>
      Reviewed-by: NHendrik Brueckner <brueckner@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Martin Vuille <jpmv27@aim.com>
      Link: http://lkml.kernel.org/r/20180423082428.7930-1-tmricht@linux.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b31a8cc1
    • T
      perf list: Remove s390 specific strcmp_cpuid_cmp function · ce04abfb
      Thomas Richter 提交于
      Make the type field in pmu-events/arch/s390/mapfile.cvs more generic to
      match the created cpuid string for s390.
      
      The pattern also checks for the counter first version number and counter
      second version number ([13]\.[1-5]) and the authorization field which
      follows.
      
      These numbers do not exist in the cpuid identification string when perf
      commands are executed on a z/VM environment (which does not support CPU
      counter measurement facility).
      
      CPUID string for LPAR:
         cpuid : IBM,3906,704,M03,3.5,002f
      CPUID string for z/VM:
         cpuid : IBM,2964,702,N96
      
      This allows the removal of s390 specific cpuid compare code and uses the
      common compare function with its regular expression matching algorithm.
      Signed-off-by: NThomas Richter <tmricht@linux.ibm.com>
      Reviewed-by: NHendrik Brueckner <brueckner@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Link: http://lkml.kernel.org/r/20180423081745.3672-1-tmricht@linux.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ce04abfb
    • N
      perf machine: Set main kernel end address properly · ee05d217
      Namhyung Kim 提交于
      map_groups__fixup_end() was called to set the end addresses of kernel
      and module maps.  But now since machine__create_modules() sets the end
      address of modules properly, the only remaining piece is the kernel map.
      
      We can set it with adjacent module's address directly instead of calling
      map_groups__fixup_end().  If there's no module after the kernel map, the
      end address will be ~0ULL.
      
      Since it also changes the start address of the kernel map, it needs to
      re-insert the map to the kmaps in order to keep a correct ordering.  Kim
      reported that it caused problems on ARM64.
      Reported-by: NKim Phillips <kim.phillips@arm.com>
      Tested-by: NKim Phillips <kim.phillips@arm.com>
      Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: kernel-team@lge.com
      Link: http://lkml.kernel.org/r/20180419235915.GA19067@sejongSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ee05d217
    • L
      Linux 4.17-rc2 · 6d08b06e
      Linus Torvalds 提交于
      6d08b06e
    • L
      Merge tag 'drm-fixes-for-v4.17-rc2' of git://people.freedesktop.org/~airlied/linux · 867ab4b2
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Exynos, i915, vc4, amdgpu fixes.
      
        i915:
         - an oops fix
         - two race fixes
         - some gvt fixes
      
        amdgpu:
         - dark screen fix
         - clk/voltage fix
         - vega12 smu fix
      
        vc4:
         - memory leak fix
      
        exynos just drops some code"
      
      * tag 'drm-fixes-for-v4.17-rc2' of git://people.freedesktop.org/~airlied/linux: (23 commits)
        drm/amd/powerplay: header file interface to SMU update
        drm/amd/pp: Fix bug voltage can't be OD separately on VI
        drm/amd/display: Don't program bypass on linear regamma LUT
        drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state
        drm/i915/audio: Fix audio detection issue on GLK
        drm/i915: Call i915_perf_fini() on init_hw error unwind
        drm/i915/bios: filter out invalid DDC pins from VBT child devices
        drm/i915/pmu: Inspect runtime PM state more carefully while estimating RC6
        drm/i915: Do no use kfree() to free a kmem_cache_alloc() return value
        drm/exynos: exynos_drm_fb -> drm_framebuffer
        drm/exynos: Move dma_addr out of exynos_drm_fb
        drm/exynos: Move GEM BOs to drm_framebuffer
        drm: Fix HDCP downstream dev count read
        drm/vc4: Fix memory leak during BO teardown
        drm/i915/execlists: Clear user-active flag on preemption completion
        drm/i915/gvt: Add drm_format_mod update
        drm/i915/gvt: Disable primary/sprite/cursor plane at virtual display initialization
        drm/i915/gvt: Delete redundant error message in fb_decode.c
        drm/i915/gvt: Cancel dma map when resetting ggtt entries
        drm/i915/gvt: Missed to cancel dma map for ggtt entries
        ...
      867ab4b2
    • D
      Merge branch 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux into drm-next · 221bda4b
      Dave Airlie 提交于
      - Fix a dark screen issue in DC
      - Fix clk/voltage dependency tracking for wattman
      - Update SMU interface for vega12
      
      * 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux:
        drm/amd/powerplay: header file interface to SMU update
        drm/amd/pp: Fix bug voltage can't be OD separately on VI
        drm/amd/display: Don't program bypass on linear regamma LUT
      221bda4b
    • D
      Merge tag 'exynos-drm-fixes-for-v4.17-rc2' of... · 2e1d6eab
      Dave Airlie 提交于
      Merge tag 'exynos-drm-fixes-for-v4.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
      
      Remove Exynos specific framebuffer structure and
      relevant functions.
      - it removes exynos_drm_fb structure which is a wrapper of
        drm_framebuffer and unnecessary two exynos specific callback
        functions, exynos_drm_destory() and exynos_drm_fb_create_handle()
        because we can reuse existing drm common callback ones instead.
      
      * tag 'exynos-drm-fixes-for-v4.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
        drm/exynos: exynos_drm_fb -> drm_framebuffer
        drm/exynos: Move dma_addr out of exynos_drm_fb
        drm/exynos: Move GEM BOs to drm_framebuffer
        drm/amdkfd: Deallocate SDMA queues correctly
        drm/amdkfd: Fix scratch memory with HWS enabled
      2e1d6eab
    • D
      Merge tag 'drm-intel-next-fixes-2018-04-19' of... · bc9ebca2
      Dave Airlie 提交于
      Merge tag 'drm-intel-next-fixes-2018-04-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
      
      - Fix for FDO #105549: Avoid OOPS on bad VBT (Jani)
      - Fix rare pre-emption race (Chris)
      - Fix RC6 race against PM transitions (Tvrtko)
      
      * tag 'drm-intel-next-fixes-2018-04-19' of git://anongit.freedesktop.org/drm/drm-intel:
        drm/i915/audio: Fix audio detection issue on GLK
        drm/i915: Call i915_perf_fini() on init_hw error unwind
        drm/i915/bios: filter out invalid DDC pins from VBT child devices
        drm/i915/pmu: Inspect runtime PM state more carefully while estimating RC6
        drm/i915: Do no use kfree() to free a kmem_cache_alloc() return value
        drm/i915/execlists: Clear user-active flag on preemption completion
        drm/i915/gvt: Add drm_format_mod update
        drm/i915/gvt: Disable primary/sprite/cursor plane at virtual display initialization
        drm/i915/gvt: Delete redundant error message in fb_decode.c
        drm/i915/gvt: Cancel dma map when resetting ggtt entries
        drm/i915/gvt: Missed to cancel dma map for ggtt entries
        drm/i915/gvt: Make MI_USER_INTERRUPT nop in cmd parser
        drm/i915/gvt: Mark expected switch fall-through in handle_g2v_notification
        drm/i915/gvt: throw error on unhandled vfio ioctls
      bc9ebca2
    • D
      Merge tag 'drm-misc-fixes-2018-04-18-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · e1898f99
      Dave Airlie 提交于
      drm-misc-fixes:
      
      stable: vc4: Fix memory leak during BO teardown (Daniel)
      dp: Add i2c retry for LSPCON adapters (Imre)
      hdcp: Fix device count mask (Ramalingam)
      
      Cc: Daniel J Blueman <daniel@quora.org
      Cc: Imre Deak <imre.deak@intel.com>
      Cc: Ramalingam C <ramalingam.c@intel.com>
      
      * tag 'drm-misc-fixes-2018-04-18-1' of git://anongit.freedesktop.org/drm/drm-misc:
        drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state
        drm: Fix HDCP downstream dev count read
        drm/vc4: Fix memory leak during BO teardown
      e1898f99
    • L
      Merge tag '4.17-rc1-SMB3-CIFS' of git://git.samba.org/sfrench/cifs-2.6 · 5ec83b22
      Linus Torvalds 提交于
      Pull cifs fixes from Steve French:
       "Various SMB3/CIFS fixes.
      
        There are three more security related fixes in progress that are not
        included in this set but they are still being tested and reviewed, so
        sending this unrelated set of smaller fixes now"
      
      * tag '4.17-rc1-SMB3-CIFS' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: fix typo in cifs_dbg
        cifs: do not allow creating sockets except with SMB1 posix exensions
        cifs: smbd: Dump SMB packet when configured
        cifs: smbd: Check for iov length on sending the last iov
        fs: cifs: Adding new return type vm_fault_t
        cifs: smb2ops: Fix NULL check in smb2_query_symlink
      5ec83b22
    • L
      Merge tag 'for-4.17-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · d54b5c13
      Linus Torvalds 提交于
      Pull btrfs fixes from David Sterba:
       "This contains a few fixups to the qgroup patches that were merged this
        dev cycle, unaligned access fix, blockgroup removal corner case fix
        and a small debugging output tweak"
      
      * tag 'for-4.17-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: print-tree: debugging output enhancement
        btrfs: Fix race condition between delayed refs and blockgroup removal
        btrfs: fix unaligned access in readdir
        btrfs: Fix wrong btrfs_delalloc_release_extents parameter
        btrfs: delayed-inode: Remove wrong qgroup meta reservation calls
        btrfs: qgroup: Use independent and accurate per inode qgroup rsv
        btrfs: qgroup: Commit transaction in advance to reduce early EDQUOT
      d54b5c13
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 37a535ed
      Linus Torvalds 提交于
      Pull x86 fixes from Thomas Gleixner:
       "A small set of fixes for x86:
      
         - Prevent X2APIC ID 0xFFFFFFFF from being treated as valid, which
           causes the possible CPU count to be wrong.
      
         - Prevent 32bit truncation in calc_hpet_ref() which causes the TSC
           calibration to fail
      
         - Fix the page table setup for temporary text mappings in the resume
           code which causes resume failures
      
         - Make the page table dump code handle HIGHPTE correctly instead of
           oopsing
      
         - Support for topologies where NUMA nodes share an LLC to prevent a
           invalid topology warning and further malfunction on such systems.
      
         - Remove the now unused pci-nommu code
      
         - Remove stale function declarations"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/power/64: Fix page-table setup for temporary text mapping
        x86/mm: Prevent kernel Oops in PTDUMP code with HIGHPTE=y
        x86,sched: Allow topologies where NUMA nodes share an LLC
        x86/processor: Remove two unused function declarations
        x86/acpi: Prevent X2APIC id 0xffffffff from being accounted
        x86/tsc: Prevent 32bit truncation in calc_hpet_ref()
        x86: Remove pci-nommu.c
      37a535ed
    • L
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c1e9dae0
      Linus Torvalds 提交于
      Pull timer fixes from Thomas Gleixner:
       "A small set of timer fixes:
      
         - Evaluate the -ETIME condition correctly in the imx tpm driver
      
         - Fix the evaluation order of a condition in posix cpu timers
      
         - Use pr_cont() in the clockevents code to prevent ugly message
           splitting
      
         - Remove __current_kernel_time() which is now unused to prevent that
           new users show up.
      
         - Remove a stale forward declaration"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/imx-tpm: Correct -ETIME return condition check
        posix-cpu-timers: Ensure set_process_cpu_timer is always evaluated
        timekeeping: Remove __current_kernel_time()
        timers: Remove stale struct tvec_base forward declaration
        clockevents: Fix kernel messages split across multiple lines
      c1e9dae0
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 38f0b33e
      Linus Torvalds 提交于
      Pull perf fixes from Thomas Gleixner:
       "A larger set of updates for perf.
      
        Kernel:
      
         - Handle the SBOX uncore monitoring correctly on Broadwell CPUs which
           do not have SBOX.
      
         - Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE]. The
           percentage of preempting and non-preempting context switches help
           understanding the nature of workloads (CPU or IO bound) that are
           running on a machine. This adds the kernel facility and userspace
           changes needed to show this information in 'perf script' and 'perf
           report -D' (Alexey Budankov)
      
         - Remove a WARN_ON() in the trace/kprobes code which is pointless
           because the return error code is already telling the caller what's
           wrong.
      
         - Revert a fugly workaround for clang BPF targets.
      
         - Fix sample_max_stack maximum check and do not proceed when an error
           has been detect, return them to avoid misidentifying errors (Jiri
           Olsa)
      
         - Add SPDX idenitifiers and get rid of GPL boilderplate.
      
        Tools:
      
         - Synchronize kernel ABI headers, v4.17-rc1 (Ingo Molnar)
      
         - Support MAP_FIXED_NOREPLACE, noticed when updating the
           tools/include/ copies (Arnaldo Carvalho de Melo)
      
         - Add '\n' at the end of parse-options error messages (Ravi Bangoria)
      
         - Add s390 support for detailed/verbose PMU event description (Thomas
           Richter)
      
         - perf annotate fixes and improvements:
      
            * Allow showing offsets in more than just jump targets, use the
              new 'O' hotkey in the TUI, config ~/.perfconfig
              annotate.offset_level for it and for --stdio2 (Arnaldo Carvalho
              de Melo)
      
            * Use the resolved variable names from objdump disassembled lines
              to make them more compact, just like was already done for some
              instructions, like "mov", this eventually will be done more
              generally, but lets now add some more to the existing mechanism
              (Arnaldo Carvalho de Melo)
      
         - perf record fixes:
      
            * Change warning for missing topology sysfs entry to debug, as not
              all architectures have those files, s390 being one of those
              (Thomas Richter)
      
            * Remove old error messages about things that unlikely to be the
              root cause in modern systems (Andi Kleen)
      
         - perf sched fixes:
      
            * Fix -g/--call-graph documentation (Takuya Yamamoto)
      
         - perf stat:
      
            * Enable 1ms interval for printing event counters values in
              (Alexey Budankov)
      
         - perf test fixes:
      
            * Run dwarf unwind on arm32 (Kim Phillips)
      
            * Remove unused ptrace.h include from LLVM test, sidesteping older
              clang's lack of support for some asm constructs (Arnaldo
              Carvalho de Melo)
      
            * Fixup BPF test using epoll_pwait syscall function probe, to cope
              with the syscall routines renames performed in this development
              cycle (Arnaldo Carvalho de Melo)
      
         - perf version fixes:
      
            * Do not print info about HAVE_LIBAUDIT_SUPPORT in 'perf version
              --build-options' when HAVE_SYSCALL_TABLE_SUPPORT is true, as
              libaudit won't be used in that case, print info about
              syscall_table support instead (Jin Yao)
      
         - Build system fixes:
      
            * Use HAVE_..._SUPPORT used consistently (Jin Yao)
      
            * Restore READ_ONCE() C++ compatibility in tools/include (Mark
              Rutland)
      
            * Give hints about package names needed to build jvmti (Arnaldo
              Carvalho de Melo)"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        perf/x86/intel/uncore: Fix SBOX support for Broadwell CPUs
        perf/x86/intel/uncore: Revert "Remove SBOX support for Broadwell server"
        coresight: Move to SPDX identifier
        perf test BPF: Fixup BPF test using epoll_pwait syscall function probe
        perf tests mmap: Show which tracepoint is failing
        perf tools: Add '\n' at the end of parse-options error messages
        perf record: Remove suggestion to enable APIC
        perf record: Remove misleading error suggestion
        perf hists browser: Clarify top/report browser help
        perf mem: Allow all record/report options
        perf trace: Support MAP_FIXED_NOREPLACE
        perf: Remove superfluous allocation error check
        perf: Fix sample_max_stack maximum check
        perf: Return proper values for user stack errors
        perf list: Add s390 support for detailed/verbose PMU event description
        perf script: Extend misc field decoding with switch out event type
        perf report: Extend raw dump (-D) out with switch out event type
        perf/core: Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE]
        tools/headers: Synchronize kernel ABI headers, v4.17-rc1
        trace_kprobe: Remove warning message "Could not insert probe at..."
        ...
      38f0b33e
    • L
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 18de45a9
      Linus Torvalds 提交于
      Pull objtool fix from Thomas Gleixner:
       "A single fix for objtool so it uses the host C and LD flags and not
        the target ones"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Support HOSTCFLAGS and HOSTLDFLAGS
      18de45a9
  4. 22 4月, 2018 6 次提交
    • L
      Merge tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 285848b0
      Linus Torvalds 提交于
      Pull /dev/random fixes from Ted Ts'o:
       "Fix some bugs in the /dev/random driver which causes getrandom(2) to
        unblock earlier than designed.
      
        Thanks to Jann Horn from Google's Project Zero for pointing this out
        to me"
      
      * tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        random: add new ioctl RNDRESEEDCRNG
        random: crng_reseed() should lock the crng instance that it is modifying
        random: set up the NUMA crng instances after the CRNG is fully initialized
        random: use a different mixing algorithm for add_device_randomness()
        random: fix crng_ready() test
      285848b0
    • L
      Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 4c50ceae
      Linus Torvalds 提交于
      Pull libnvdimm fixes from Dan Williams:
       "A regression fix, new unit test infrastructure and a build fix:
      
         - Regression fix addressing support for the new NVDIMM label storage
           area access commands (_LSI, _LSR, and _LSW).
      
           The Intel specific version of these commands communicated the
           "Device Locked" status on the label-storage-information command.
      
           However, these new commands (standardized in ACPI 6.2) communicate
           the "Device Locked" status on the label-storage-read command, and
           the driver was missing the indication.
      
           Reading from locked persistent memory is similar to reading
           unmapped PCI memory space, returns all 1's.
      
         - Unit test infrastructure is added to regression test the "Device
           Locked" detection failure.
      
         - A build fix is included to allow the "of_pmem" driver to be built
           as a module and translate an Open Firmware described device to its
           local numa node"
      
      * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        MAINTAINERS: Add backup maintainers for libnvdimm and DAX
        device-dax: allow MAP_SYNC to succeed
        Revert "libnvdimm, of_pmem: workaround OF_NUMA=n build error"
        libnvdimm, of_pmem: use dev_to_node() instead of of_node_to_nid()
        tools/testing/nvdimm: enable labels for nfit_test.1 dimms
        tools/testing/nvdimm: fix missing newline in nfit_test_dimm 'handle' attribute
        tools/testing/nvdimm: support nfit_test_dimm attributes under nfit_test.1
        tools/testing/nvdimm: allow custom error code injection
        libnvdimm, dimm: handle EACCES failures from label reads
      4c50ceae
    • L
      Merge tag 'sound-4.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 5e7c7806
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "A few small fixes:
      
         - a fix for the NULL-dereference in rawmidi compat ioctls, triggered
           by fuzzer
      
         - HD-audio Realtek codec quirks, a VIA controller fixup
      
         - a long-standing bug fix in LINE6 MIDI"
      
      * tag 'sound-4.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: rawmidi: Fix missing input substream checks in compat ioctls
        ALSA: hda/realtek - adjust the location of one mic
        ALSA: hda/realtek - set PINCFG_HEADSET_MIC to parse_flags
        ALSA: hda - New VIA controller suppor no-snoop path
        ALSA: line6: Use correct endpoint type for midi output
      5e7c7806
    • L
      Merge tag 'linux-watchdog-4.17-rc2' of git://www.linux-watchdog.org/linux-watchdog · e46096b6
      Linus Torvalds 提交于
      Pull watchdog fixes from Wim Van Sebroeck:
      
       - fall-through fixes
      
       - MAINTAINER change for hpwdt
      
       - renesas-wdt: Add support for WDIOF_CARDRESET
      
       - aspeed: set bootstatus during probe
      
      * tag 'linux-watchdog-4.17-rc2' of git://www.linux-watchdog.org/linux-watchdog:
        aspeed: watchdog: Set bootstatus during probe
        watchdog: renesas-wdt: Add support for WDIOF_CARDRESET
        watchdog: wafer5823wdt: Mark expected switch fall-through
        watchdog: w83977f_wdt: Mark expected switch fall-through
        watchdog: sch311x_wdt: Mark expected switch fall-through
        watchdog: hpwdt: change maintainer.
      e46096b6
    • L
      Merge tag 'linux-kselftest-4.17-rc2' of... · 6488ec26
      Linus Torvalds 提交于
      Merge tag 'linux-kselftest-4.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest fix from Shuah Khan:
       "A fix from Michael Ellerman to not run dnotify_test by default to
        prevent Kselftest running forever"
      
      * tag 'linux-kselftest-4.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/filesystems: Don't run dnotify_test by default
      6488ec26
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 9409227a
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
      
       - kasan: avoid pfn_to_nid() before the page array is initialised
      
       - Fix typo causing the "upgrade" of known signals to SIGKILL
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: signal: don't force known signals to SIGKILL
        arm64: kasan: avoid pfn_to_nid() before page array is initialized
      9409227a
  5. 21 4月, 2018 5 次提交
    • L
      Merge branch 'akpm' (patches from Andrew) · 7a752478
      Linus Torvalds 提交于
      Merge misc fixes from Andrew Morton:
      
       - "fork: unconditionally clear stack on fork" is a non-bugfix which got
         lost during the merge window - performance concerns appear to have
         been adequately addressed.
      
       - and a bunch of fixes
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/filemap.c: fix NULL pointer in page_cache_tree_insert()
        mm: memcg: add __GFP_NOWARN in __memcg_schedule_kmem_cache_create()
        fs, elf: don't complain MAP_FIXED_NOREPLACE unless -EEXIST error
        kexec_file: do not add extra alignment to efi memmap
        proc: fix /proc/loadavg regression
        proc: revalidate kernel thread inodes to root:root
        autofs: mount point create should honour passed in mode
        MAINTAINERS: add personal addresses for Sascha and Uwe
        kasan: add no_sanitize attribute for clang builds
        rapidio: fix rio_dma_transfer error handling
        mm: enable thp migration for shmem thp
        writeback: safer lock nesting
        mm, pagemap: fix swap offset value for PMD migration entry
        mm: fix do_pages_move status handling
        fork: unconditionally clear stack on fork
      7a752478
    • I
      Merge tag 'perf-urgent-for-mingo-4.17-20180420' of... · c042f7e9
      Ingo Molnar 提交于
      Merge tag 'perf-urgent-for-mingo-4.17-20180420' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes and improvements from Arnaldo Carvalho de Melo:
      
      - Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE].
        The percentage of preempting and non-preempting context switches help
        understanding the nature of workloads (CPU or IO bound) that are running
        on a machine. This adds the kernel facility and userspace changes needed
        to show this information in 'perf script' and 'perf report -D' (Alexey Budankov)
      
      - Remove old error messages about things that unlikely to be the root cause
        in modern systems (Andi Kleen)
      
      - Synchronize kernel ABI headers, v4.17-rc1 (Ingo Molnar)
      
      - Support MAP_FIXED_NOREPLACE, noticed when updating the tools/include/
        copies (Arnaldo Carvalho de Melo)
      
      - Fixup BPF test using epoll_pwait syscall function probe, to cope with
        the syscall routines renames performed in this development cycle (Arnaldo Carvalho de Melo)
      
      - Fix sample_max_stack maximum check and do not proceed when an error
        has been detect, return them to avoid misidentifying errors (Jiri Olsa)
      
      - Add '\n' at the end of parse-options error messages (Ravi Bangoria)
      
      - Add s390 support for detailed/verbose PMU event description (Thomas Richter)
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      c042f7e9
    • M
      mm/filemap.c: fix NULL pointer in page_cache_tree_insert() · abc1be13
      Matthew Wilcox 提交于
      f2fs specifies the __GFP_ZERO flag for allocating some of its pages.
      Unfortunately, the page cache also uses the mapping's GFP flags for
      allocating radix tree nodes.  It always masked off the __GFP_HIGHMEM
      flag, and masks off __GFP_ZERO in some paths, but not all.  That causes
      radix tree nodes to be allocated with a NULL list_head, which causes
      backtraces like:
      
        __list_del_entry+0x30/0xd0
        list_lru_del+0xac/0x1ac
        page_cache_tree_insert+0xd8/0x110
      
      The __GFP_DMA and __GFP_DMA32 flags would also be able to sneak through
      if they are ever used.  Fix them all by using GFP_RECLAIM_MASK at the
      innermost location, and remove it from earlier in the callchain.
      
      Link: http://lkml.kernel.org/r/20180411060320.14458-2-willy@infradead.org
      Fixes: 449dd698 ("mm: keep page cache radix tree nodes in check")
      Signed-off-by: NMatthew Wilcox <mawilcox@microsoft.com>
      Reported-by: NChris Fries <cfries@google.com>
      Debugged-by: NMinchan Kim <minchan@kernel.org>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      abc1be13
    • M
      mm: memcg: add __GFP_NOWARN in __memcg_schedule_kmem_cache_create() · c892fd82
      Minchan Kim 提交于
      If there is heavy memory pressure, page allocation with __GFP_NOWAIT
      fails easily although it's order-0 request.  I got below warning 9 times
      for normal boot.
      
           <snip >: page allocation failure: order:0, mode:0x2200000(GFP_NOWAIT|__GFP_NOTRACK)
           .. snip ..
           Call trace:
             dump_backtrace+0x0/0x4
             dump_stack+0xa4/0xc0
             warn_alloc+0xd4/0x15c
             __alloc_pages_nodemask+0xf88/0x10fc
             alloc_slab_page+0x40/0x18c
             new_slab+0x2b8/0x2e0
             ___slab_alloc+0x25c/0x464
             __kmalloc+0x394/0x498
             memcg_kmem_get_cache+0x114/0x2b8
             kmem_cache_alloc+0x98/0x3e8
             mmap_region+0x3bc/0x8c0
             do_mmap+0x40c/0x43c
             vm_mmap_pgoff+0x15c/0x1e4
             sys_mmap+0xb0/0xc8
             el0_svc_naked+0x24/0x28
           Mem-Info:
           active_anon:17124 inactive_anon:193 isolated_anon:0
            active_file:7898 inactive_file:712955 isolated_file:55
            unevictable:0 dirty:27 writeback:18 unstable:0
            slab_reclaimable:12250 slab_unreclaimable:23334
            mapped:19310 shmem:212 pagetables:816 bounce:0
            free:36561 free_pcp:1205 free_cma:35615
           Node 0 active_anon:68496kB inactive_anon:772kB active_file:31592kB inactive_file:2851820kB unevictable:0kB isolated(anon):0kB isolated(file):220kB mapped:77240kB dirty:108kB writeback:72kB shmem:848kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
           DMA free:142188kB min:3056kB low:3820kB high:4584kB active_anon:10052kB inactive_anon:12kB active_file:312kB inactive_file:1412620kB unevictable:0kB writepending:0kB present:1781412kB managed:1604728kB mlocked:0kB slab_reclaimable:3592kB slab_unreclaimable:876kB kernel_stack:400kB pagetables:52kB bounce:0kB free_pcp:1436kB local_pcp:124kB free_cma:142492kB
           lowmem_reserve[]: 0 1842 1842
           Normal free:4056kB min:4172kB low:5212kB high:6252kB active_anon:58376kB inactive_anon:760kB active_file:31348kB inactive_file:1439040kB unevictable:0kB writepending:180kB present:2000636kB managed:1923688kB mlocked:0kB slab_reclaimable:45408kB slab_unreclaimable:92460kB kernel_stack:9680kB pagetables:3212kB bounce:0kB free_pcp:3392kB local_pcp:688kB free_cma:0kB
           lowmem_reserve[]: 0 0 0
           DMA: 0*4kB 0*8kB 1*16kB (C) 0*32kB 0*64kB 0*128kB 1*256kB (C) 1*512kB (C) 0*1024kB 1*2048kB (C) 34*4096kB (C) = 142096kB
           Normal: 228*4kB (UMEH) 172*8kB (UMH) 23*16kB (UH) 24*32kB (H) 5*64kB (H) 1*128kB (H) 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 3872kB
           721350 total pagecache pages
           0 pages in swap cache
           Swap cache stats: add 0, delete 0, find 0/0
           Free swap  = 0kB
           Total swap = 0kB
           945512 pages RAM
           0 pages HighMem/MovableOnly
           63408 pages reserved
           51200 pages cma reserved
      
      __memcg_schedule_kmem_cache_create() tries to create a shadow slab cache
      and the worker allocation failure is not really critical because we will
      retry on the next kmem charge.  We might miss some charges but that
      shouldn't be critical.  The excessive allocation failure report is not
      very helpful.
      
      [mhocko@kernel.org: changelog update]
      Link: http://lkml.kernel.org/r/20180418022912.248417-1-minchan@kernel.orgSigned-off-by: NMinchan Kim <minchan@kernel.org>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: NAndrew Morton <akpm@linux-foundation.org>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c892fd82
    • T
      fs, elf: don't complain MAP_FIXED_NOREPLACE unless -EEXIST error · d23a61ee
      Tetsuo Handa 提交于
      Commit 4ed28639 ("fs, elf: drop MAP_FIXED usage from elf_map") is
      printing spurious messages under memory pressure due to map_addr == -ENOMEM.
      
       9794 (a.out): Uhuuh, elf segment at 00007f2e34738000(fffffffffffffff4) requested but the memory is mapped already
       14104 (a.out): Uhuuh, elf segment at 00007f34fd76c000(fffffffffffffff4) requested but the memory is mapped already
       16843 (a.out): Uhuuh, elf segment at 00007f930ecc7000(fffffffffffffff4) requested but the memory is mapped already
      
      Complain only if -EEXIST, and use %px for printing the address.
      
      Link: http://lkml.kernel.org/r/201804182307.FAC17665.SFMOFJVFtHOLOQ@I-love.SAKURA.ne.jp
      Fixes: 4ed28639 ("fs, elf: drop MAP_FIXED usage from elf_map") is
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Cc: Andrei Vagin <avagin@openvz.org>
      Cc: Khalid Aziz <khalid.aziz@oracle.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
      Cc: Joel Stanley <joel@jms.id.au>
      Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d23a61ee