Skip to content
Permalink
Joe-Lawrence/l…
Switch branches/tags

Commits on Feb 16, 2022

  1. livepatch/selftests: add static keys test

    Add a livepatch kselftest that exercises klp-convert support for static
    keys:
    
      - Use static_branch_(un)likely() on vmlinux-defined keys, forcing
        .rela__jump_table klp-relocations for them.
    
      - Use only static_key_enable() on module-defined keys, creating .text
        klp-relocations for them.
    
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    joe-lawrence authored and intel-lab-lkp committed Feb 16, 2022
  2. livepatch/selftests: add data relocations test

    Add a test which creates a variety of klp-data-relocations.  Note that
    this test case exercises late-klp-relocations for references to data.
    For this, we only need to adjust pointer storage classes (and not the
    target data) to affect where the relocation ends up.
    
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    joe-lawrence authored and intel-lab-lkp committed Feb 16, 2022
  3. livepatch/selftests: add __asm__ symbol renaming examples

    GCC can rename symbols like static data and optimized functions, adding
    a suffix that includes illegal C characters.  Extend the klp-convert
    examples to demonstrate how to use __asm__ renaming from C code to
    create klp-relocations to such renamed symbols.
    
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    joe-lawrence authored and intel-lab-lkp committed Feb 16, 2022
  4. livepatch/selftests: test multiple sections

    Add a test case in which klp-convert needs to convert a symbol that is
    shared across ELF sections.  Special sections like .altinstructions do
    this.  It is possible that symbols may be shared across various .text
    sections as well.
    
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    joe-lawrence authored and intel-lab-lkp committed Feb 16, 2022
  5. livepatch/selftests: add klp-convert

    Add a simple klp-convert livepatch selftest that exercises various
    symbol homonym sympos scenarios.
    
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    joe-lawrence authored and intel-lab-lkp committed Feb 16, 2022
  6. documentation: Update on livepatch elf format

    Add a section to Documentation/livepatch/module-elf-format.rst
    describing how klp-convert works for fixing relocations.
    
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    Joao Moreira authored and intel-lab-lkp committed Feb 16, 2022
  7. livepatch: Add sample livepatch module

    Add a new livepatch sample in samples/livepatch/ to make use of symbols
    that must be post-processed to enable load-time relocation resolution.
    As the new sample is to be used as an example, it is annotated with
    KLP_MODULE_RELOC and with KLP_SYMPOS macros.
    
    The livepatch sample updates the function cmdline_proc_show to print the
    string referenced by the symbol saved_command_line appended by the
    string "livepatch=1".
    
    Update livepatch-sample.c to remove livepatch MODULE_INFO statement.
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    jpoimboe authored and intel-lab-lkp committed Feb 16, 2022
  8. modpost: Integrate klp-convert

    Create cmd_klp_convert and hook it into scripts/Makefile.modpost.
    cmd_klp_convert invokes klp-convert with the right arguments for the
    conversion of unresolved symbols inside a livepatch.
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Miroslav Benes <mbenes@suse.cz>
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    jpoimboe authored and intel-lab-lkp committed Feb 16, 2022
  9. livepatch: Add klp-convert annotation helpers

    Define macros KLP_MODULE_RELOC and KLP_SYMPOS in
    include/linux/livepatch.h to improve user-friendliness of the livepatch
    annotation process.
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    jpoimboe authored and intel-lab-lkp committed Feb 16, 2022
  10. livepatch: Add klp-convert tool

    Livepatches may use symbols which are not contained in its own scope,
    and, because of that, may end up compiled with relocations that will
    only be resolved during module load. Yet, when the referenced symbols
    are not exported, solving this relocation requires information on the
    object that holds the symbol (either vmlinux or modules) and its
    position inside the object, as an object may contain multiple symbols
    with the same name. Providing such information must be done accordingly
    to what is specified in Documentation/livepatch/module-elf-format.txt.
    
    Currently, there is no trivial way to embed the required information as
    requested in the final livepatch elf object. klp-convert solves this
    problem in two different forms: (i) by relying on symbols.klp, which is
    built during kernel compilation, to automatically infer the relocation
    targeted symbol, and, when such inference is not possible (ii) by using
    annotations in the elf object to convert the relocation accordingly to
    the specification, enabling it to be handled by the livepatch loader.
    
    Given the above, create scripts/livepatch to hold tools developed for
    livepatches and add source files for klp-convert there.
    
    The core file of klp-convert is scripts/livepatch/klp-convert.c, which
    implements the heuristics used to solve the relocations and the
    conversion of unresolved symbols into the expected format, as defined in
    [1].
    
    klp-convert receives as arguments the symbols.klp file, an input
    livepatch module to be converted and the output name for the converted
    livepatch. When it starts running, klp-convert parses symbols.klp and
    builds two internal lists of symbols, one containing the exported and
    another containing the non-exported symbols. Then, by parsing the rela
    sections in the elf object, klp-convert identifies which symbols must be
    converted, which are those unresolved and that do not have a
    corresponding exported symbol, and attempts to convert them accordingly
    to the specification.
    
    By using symbols.klp, klp-convert identifies which symbols have names
    that only appear in a single kernel object, thus being capable of
    resolving these cases without the intervention of the developer. When
    various homonymous symbols exist through kernel objects, it is not
    possible to infer the right one, thus klp-convert falls back into using
    developer annotations. If these were not provided, then the tool will
    print a list with all acceptable targets for the symbol being processed.
    
    Annotations in the context of klp-convert are accessible as struct
    klp_module_reloc entries in sections named .klp.module_relocs.<objname>.
    These entries are pairs of symbol references and positions which are to
    be resolved against definitions in <objname>.
    
    Define the structure klp_module_reloc in include/linux/uapi/livepatch.h
    allowing developers to annotate the livepatch source code with it.
    
    klp-convert relies on libelf and on a list implementation. Add files
    scripts/livepatch/elf.c and scripts/livepatch/elf.h, which are a libelf
    interfacing layer and scripts/livepatch/list.h, which is a list
    implementation.
    
    Update Makefiles to correctly support the compilation of the new tool,
    update MAINTAINERS file and add a .gitignore file.
    
    [1] - Documentation/livepatch/module-elf-format.txt
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    jpoimboe authored and intel-lab-lkp committed Feb 16, 2022
  11. kbuild: Support for symbols.klp creation

    For automatic resolution of livepatch relocations, a file called
    symbols.klp is used. This file maps symbols within every compiled kernel
    object allowing the identification of symbols whose name is unique, thus
    relocation can be automatically inferred, or providing information that
    helps developers when code annotation is required for solving the
    matter.
    
    Add support for creating symbols.klp in the main Makefile. First, ensure
    that built-in is compiled when CONFIG_LIVEPATCH is enabled (as required
    to achieve a complete symbols.klp file). Define the command to build
    symbols.klp (cmd_klp_map) and hook it in the modules rule.
    
    As it is undesirable to have symbols from livepatch objects inside
    symbols.klp, make livepatches discernible by modifying
    scripts/Makefile.build to create a .livepatch file for each livepatch in
    $(MODVERDIR). This file then used by cmd_klp_map to identify and bypass
    livepatches.
    
    For identifying livepatches during the build process, a flag variable
    LIVEPATCH_$(basetarget).o is considered in scripts/Makefile.build. This
    way, set this flag for the livepatch sample Makefile in
    samples/livepatch/Makefile.
    
    Finally, Add a clean rule to ensure that symbols.klp is removed during
    clean.
    
    Notes:
    
    To achieve a correct symbols.klp file, all kernel objects must be
    considered, thus, its construction require these objects to be priorly
    built. On the other hand, invoking scripts/Makefile.modpost without
    having a complete symbols.klp in place would occasionally lead to
    in-tree livepatches being post-processed incorrectly. To prevent this
    from becoming a circular dependency, the construction of symbols.klp
    uses non-post-processed kernel objects and such does not cause harm as
    the symbols normally referenced from within livepatches are visible at
    this stage. Also due to these requirements, the spot in-between modules
    compilation and the invocation of scripts/Makefile.modpost was picked
    for hooking cmd_klp_map.
    
    The approach based on .livepatch files was proposed as an alternative to
    using MODULE_INFO statements. This approach was originally proposed by
    Miroslav Benes as a workaround for identifying livepathes without
    depending on modinfo during the modpost stage. It was moved to this
    patch as the approach also shown to be useful while building
    symbols.klp.
    
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    Joao Moreira authored and intel-lab-lkp committed Feb 16, 2022
  12. livepatch: Create and include UAPI headers

    Define klp prefixes in include/uapi/linux/livepatch.h, and use them for
    replacing hard-coded values in kernel/livepatch/core.c.
    
    Update MAINTAINERS.
    
    Note: Add defines to uapi as these are also to be used by a newly
    introduced klp-convert script.
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Joao Moreira <jmoreira@suse.de>
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    jpoimboe authored and intel-lab-lkp committed Feb 16, 2022

Commits on Feb 8, 2022

  1. selftests: futex: set DEFAULT_INSTALL_HDR_PATH

    If only futex selftest is compiled, uapi header files are copied to the
    selftests/futex/functional directory. This copy isn't needed. Set the
    DEFAULT_INSTALL_HDR_PATH variable to 1 to use the default header install
    path only. This removes extra copy of header file.
    
    Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    musamaanjum authored and shuahkh committed Feb 8, 2022

Commits on Jan 27, 2022

  1. selftests/kselftest/runner.sh: Pass optional command parameters in en…

    …vironment
    
    Some testcases allow for optional commandline parameters but as of now
    there is now way to provide such arguments to the runner script.
    
    Add support to retrieve such optional command parameters fron environment
    variables named so as to include the all-uppercase test executable name,
    sanitized substituting any non-acceptable varname characters with "_",
    following the pattern:
    
    	KSELFTEST_<UPPERCASE_SANITIZED_TEST_NAME>_ARGS="options"
    
    Optional command parameters support is not available if 'tr' is not
    installed on the test system.
    
    Cc: Kees Cook <keescook@chromium.org>
    Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    freefall75 authored and shuahkh committed Jan 27, 2022

Commits on Jan 23, 2022

  1. Linux 5.17-rc1

    torvalds committed Jan 23, 2022
  2. Merge tag 'perf-tools-for-v5.17-2022-01-22' of git://git.kernel.org/p…

    …ub/scm/linux/kernel/git/acme/linux
    
    Pull more perf tools updates from Arnaldo Carvalho de Melo:
    
     - Fix printing 'phys_addr' in 'perf script'.
    
     - Fix failure to add events with 'perf probe' in ppc64 due to not
       removing leading dot (ppc64 ABIv1).
    
     - Fix cpu_map__item() python binding building.
    
     - Support event alias in form foo-bar-baz, add pmu-events and
       parse-event tests for it.
    
     - No need to setup affinities when starting a workload or attaching to
       a pid.
    
     - Use path__join() to compose a path instead of ad-hoc snprintf()
       equivalent.
    
     - Override attr->sample_period for non-libpfm4 events.
    
     - Use libperf cpumap APIs instead of accessing the internal state
       directly.
    
     - Sync x86 arch prctl headers and files changed by the new
       set_mempolicy_home_node syscall with the kernel sources.
    
     - Remove duplicate include in cpumap.h.
    
     - Remove redundant err variable.
    
    * tag 'perf-tools-for-v5.17-2022-01-22' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
      perf tools: Remove redundant err variable
      perf test: Add parse-events test for aliases with hyphens
      perf test: Add pmu-events test for aliases with hyphens
      perf parse-events: Support event alias in form foo-bar-baz
      perf evsel: Override attr->sample_period for non-libpfm4 events
      perf cpumap: Remove duplicate include in cpumap.h
      perf cpumap: Migrate to libperf cpumap api
      perf python: Fix cpu_map__item() building
      perf script: Fix printing 'phys_addr' failure issue
      tools headers UAPI: Sync files changed by new set_mempolicy_home_node syscall
      tools headers UAPI: Sync x86 arch prctl headers with the kernel sources
      perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)
      perf evlist: No need to setup affinities when disabling events for pid targets
      perf evlist: No need to setup affinities when enabling events for pid targets
      perf stat: No need to setup affinities when starting a workload
      perf affinity: Allow passing a NULL arg to affinity__cleanup()
      perf probe: Fix ppc64 'perf probe add events failed' case
    torvalds committed Jan 23, 2022
  3. Merge tag 'trace-v5.17-3' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/rostedt/linux-trace
    
    Pull ftrace fix from Steven Rostedt:
     "Fix s390 breakage from sorting mcount tables.
    
      The latest merge of the tracing tree sorts the mcount table at build
      time. But s390 appears to do things differently (like always) and
      replaces the sorted table back to the original unsorted one. As the
      ftrace algorithm depends on it being sorted, bad things happen when it
      is not, and s390 experienced those bad things.
    
      Add a new config to tell the boot if the mcount table is sorted or
      not, and allow s390 to opt out of it"
    
    * tag 'trace-v5.17-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
      ftrace: Fix assuming build time sort works for s390
    torvalds committed Jan 23, 2022
  4. ftrace: Fix assuming build time sort works for s390

    To speed up the boot process, as mcount_loc needs to be sorted for ftrace
    to work properly, sorting it at build time is more efficient than boot up
    and can save milliseconds of time. Unfortunately, this change broke s390
    as it will modify the mcount_loc location after the sorting takes place
    and will put back the unsorted locations. Since the sorting is skipped at
    boot up if it is believed that it was sorted at run time, ftrace can crash
    as its algorithms are dependent on the list being sorted.
    
    Add a new config BUILDTIME_MCOUNT_SORT that is set when
    BUILDTIME_TABLE_SORT but not if S390 is set. Use this config to determine
    if sorting should take place at boot up.
    
    Link: https://lore.kernel.org/all/yt9dee51ctfn.fsf@linux.ibm.com/
    
    Fixes: 72b3942 ("scripts: ftrace - move the sort-processing in ftrace_init")
    Reported-by: Sven Schnelle <svens@linux.ibm.com>
    Tested-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    rostedt committed Jan 23, 2022
  5. Merge tag 'kbuild-fixes-v5.17' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/masahiroy/linux-kbuild
    
    Pull Kbuild fixes from Masahiro Yamada:
    
     - Bring include/uapi/linux/nfc.h into the UAPI compile-test coverage
    
     - Revert the workaround of CONFIG_CC_IMPLICIT_FALLTHROUGH
    
     - Fix build errors in certs/Makefile
    
    * tag 'kbuild-fixes-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
      certs: Fix build error when CONFIG_MODULE_SIG_KEY is empty
      certs: Fix build error when CONFIG_MODULE_SIG_KEY is PKCS#11 URI
      Revert "Makefile: Do not quote value for CONFIG_CC_IMPLICIT_FALLTHROUGH"
      usr/include/Makefile: add linux/nfc.h to the compile-test coverage
    torvalds committed Jan 23, 2022
  6. Merge tag 'bitmap-5.17-rc1' of git://github.com/norov/linux

    Pull bitmap updates from Yury Norov:
    
     - introduce for_each_set_bitrange()
    
     - use find_first_*_bit() instead of find_next_*_bit() where possible
    
     - unify for_each_bit() macros
    
    * tag 'bitmap-5.17-rc1' of git://github.com/norov/linux:
      vsprintf: rework bitmap_list_string
      lib: bitmap: add performance test for bitmap_print_to_pagebuf
      bitmap: unify find_bit operations
      mm/percpu: micro-optimize pcpu_is_populated()
      Replace for_each_*_bit_from() with for_each_*_bit() where appropriate
      find: micro-optimize for_each_{set,clear}_bit()
      include/linux: move for_each_bit() macros from bitops.h to find.h
      cpumask: replace cpumask_next_* with cpumask_first_* where appropriate
      tools: sync tools/bitmap with mother linux
      all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where appropriate
      cpumask: use find_first_and_bit()
      lib: add find_first_and_bit()
      arch: remove GENERIC_FIND_FIRST_BIT entirely
      include: move find.h from asm_generic to linux
      bitops: move find_bit_*_le functions from le.h to find.h
      bitops: protect find_first_{,zero}_bit properly
    torvalds committed Jan 23, 2022

Commits on Jan 22, 2022

  1. perf tools: Remove redundant err variable

    Return value from perf_event__process_tracing_data() directly instead
    of taking this in another redundant variable.
    
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/20220112080109.666800-1-chi.minghao@zte.com.cn
    Signed-off-by: CGEL ZTE <cgel.zte@gmail.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Minghao Chi authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  2. perf test: Add parse-events test for aliases with hyphens

    Add a test which allows us to test parsing an event alias with hyphens.
    
    Since these events typically do not exist on most host systems, add the
    alias to the fake pmu.
    
    Function perf_pmu__test_parse_init() has terms added to match known test
    aliases.
    
    Signed-off-by: John Garry <john.garry@huawei.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Qi Liu <liuqi115@huawei.com>
    Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Cc: linuxarm@huawei.com
    Link: https://lore.kernel.org/r/1642432215-234089-4-git-send-email-john.garry@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    johnpgarry authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  3. perf test: Add pmu-events test for aliases with hyphens

    Add a test for aliases with hyphens in the name to ensure that the
    pmu-events tables are as expects. There should be no reason why these sort
    of aliases would be treated differently, but no harm in checking.
    
    Signed-off-by: John Garry <john.garry@huawei.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Qi Liu <liuqi115@huawei.com>
    Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Cc: linuxarm@huawei.com
    Link: https://lore.kernel.org/r/1642432215-234089-3-git-send-email-john.garry@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    johnpgarry authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  4. perf parse-events: Support event alias in form foo-bar-baz

    Event aliasing for events whose name in the form foo-bar-baz is not
    supported, while foo-bar, foo_bar_baz, and other combinations are, i.e.
    two hyphens are not supported.
    
    The HiSilicon D06 platform has events in such form:
    
      $ ./perf list sdir-home-migrate
    
      List of pre-defined events (to be used in -e):
    
      uncore hha:
        sdir-home-migrate
       [Unit: hisi_sccl,hha]
    
      $ sudo ./perf stat -e sdir-home-migrate
      event syntax error: 'sdir-home-migrate'
                              \___ parser error
      Run 'perf list' for a list of valid events
    
       Usage: perf stat [<options>] [<command>]
    
       -e, --event <event>event selector. use 'perf list' to list available events
    
    To support, add an extra PMU event symbol type for "baz", and add a new
    rule in the bison file.
    
    Signed-off-by: John Garry <john.garry@huawei.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Qi Liu <liuqi115@huawei.com>
    Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Cc: linuxarm@huawei.com
    Link: https://lore.kernel.org/r/1642432215-234089-2-git-send-email-john.garry@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    johnpgarry authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  5. perf evsel: Override attr->sample_period for non-libpfm4 events

    A previous patch preventing "attr->sample_period" values from being
    overridden in pfm events changed a related behaviour in arm-spe.
    
    Before said patch:
    
      perf record -c 10000 -e arm_spe_0// -- sleep 1
    
    Would yield an SPE event with period=10000. After the patch, the period
    in "-c 10000" was being ignored because the arm-spe code initializes
    sample_period to a non-zero value.
    
    This patch restores the previous behaviour for non-libpfm4 events.
    
    Fixes: ae5dcc8 (“perf record: Prevent override of attr->sample_period for libpfm4 events”)
    Reported-by: Chase Conklin <chase.conklin@arm.com>
    Signed-off-by: German Gomez <german.gomez@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Fastabend <john.fastabend@gmail.com>
    Cc: KP Singh <kpsingh@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Martin KaFai Lau <kafai@fb.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Song Liu <songliubraving@fb.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Yonghong Song <yhs@fb.com>
    Cc: bpf@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Link: http://lore.kernel.org/lkml/20220118144054.2541-1-german.gomez@arm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    germangb authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  6. perf cpumap: Remove duplicate include in cpumap.h

    Remove all but the first include of stdbool.h from cpumap.h.
    
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Lv Ruyi <lv.ruyi@zte.com.cn>
    Acked-by: Ian Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20220117083730.863200-1-lv.ruyi@zte.com.cn
    Signed-off-by: CGEL ZTE <cgel.zte@gmail.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Lv Ruyi authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  7. perf cpumap: Migrate to libperf cpumap api

    Switch from directly accessing the perf_cpu_map to using the appropriate
    libperf API when possible. Using the API simplifies the job of
    refactoring use of perf_cpu_map.
    
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: André Almeida <andrealmeid@collabora.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Darren Hart <dvhart@infradead.org>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Dmitriy Vyukov <dvyukov@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: German Gomez <german.gomez@arm.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Miaoqian Lin <linmq006@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Riccardo Mancini <rickyman7@gmail.com>
    Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
    Cc: Song Liu <song@kernel.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Yury Norov <yury.norov@gmail.com>
    Link: http://lore.kernel.org/lkml/20220122045811.3402706-3-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    captain5050 authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  8. perf python: Fix cpu_map__item() building

    Value should be built as an integer.
    
    Switch some uses of perf_cpu_map to use the library API.
    
    Fixes: 6d18804 ("perf cpumap: Give CPUs their own type")
    Signed-off-by: Ian Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: André Almeida <andrealmeid@collabora.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Darren Hart <dvhart@infradead.org>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Dmitriy Vyukov <dvyukov@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: German Gomez <german.gomez@arm.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: John Garry <john.garry@huawei.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Miaoqian Lin <linmq006@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Riccardo Mancini <rickyman7@gmail.com>
    Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com>
    Cc: Song Liu <song@kernel.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Yury Norov <yury.norov@gmail.com>
    Link: http://lore.kernel.org/lkml/20220122045811.3402706-2-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    captain5050 authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  9. perf script: Fix printing 'phys_addr' failure issue

    Perf script was failed to print the phys_addr for SPE profiling.
    One 'dummy' event is added by SPE profiling but it doesn't have PHYS_ADDR
    attribute set, perf script then exits with error.
    
    Now referring to 'addr', use evsel__do_check_stype() to check the type.
    
    Before:
    
      # perf record -e arm_spe_0/branch_filter=0,ts_enable=1,pa_enable=1,load_filter=1,jitter=0,\
    		store_filter=0,min_latency=0,event_filter=2/ -p 4064384 -- sleep 3
      # perf script -F pid,tid,addr,phys_addr
      Samples for 'dummy:u' event do not have PHYS_ADDR attribute set. Cannot print 'phys_addr' field.
    
    After:
    
      # perf record -e arm_spe_0/branch_filter=0,ts_enable=1,pa_enable=1,load_filter=1,jitter=0,\
    		store_filter=0,min_latency=0,event_filter=2/ -p 4064384 -- sleep 3
      # perf script -F pid,tid,addr,phys_addr
      4064384/4064384 ffff802f921be0d0      2f921be0d0
      4064384/4064384 ffff802f921be0d0      2f921be0d0
    
    Reviewed-by: German Gomez <german.gomez@arm.com>
    Signed-off-by: Yao Jin <jinyao5@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20220121065954.2121900-1-liwei391@huawei.com
    Signed-off-by: Wei Li <liwei391@huawei.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Yao Jin authored and Arnaldo Carvalho de Melo committed Jan 22, 2022
  10. certs: Fix build error when CONFIG_MODULE_SIG_KEY is empty

    Since b8c96a6 ("certs: simplify $(srctree)/ handling and remove
    config_filename macro"), when CONFIG_MODULE_SIG_KEY is empty,
    signing_key.x509 fails to build:
    
        CERT    certs/signing_key.x509
      Usage: extract-cert <source> <dest>
      make[1]: *** [certs/Makefile:78: certs/signing_key.x509] Error 2
      make: *** [Makefile:1831: certs] Error 2
    
    Pass "" to the first argument of extract-cert to fix the build error.
    
    Link: https://lore.kernel.org/linux-kbuild/20220120094606.2skuyb26yjlnu66q@lion.mk-sys.cz/T/#u
    Fixes: b8c96a6 ("certs: simplify $(srctree)/ handling and remove config_filename macro")
    Reported-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Tested-by: Michal Kubecek <mkubecek@suse.cz>
    masahir0y committed Jan 22, 2022
  11. certs: Fix build error when CONFIG_MODULE_SIG_KEY is PKCS#11 URI

    When CONFIG_MODULE_SIG_KEY is PKCS#11 URL (pkcs11:*), signing_key.x509
    fails to build:
    
      certs/Makefile:77: *** target pattern contains no '%'.  Stop.
    
    Due to the typo, $(X509_DEP) contains a colon.
    
    Fix it.
    
    Fixes: b8c96a6 ("certs: simplify $(srctree)/ handling and remove config_filename macro")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    masahir0y committed Jan 22, 2022
  12. Revert "Makefile: Do not quote value for CONFIG_CC_IMPLICIT_FALLTHROUGH"

    This reverts commit cd8c917.
    
    Commit 129ab0d ("kbuild: do not quote string values in
    include/config/auto.conf") provided the final solution.
    
    Now reverting the temporary workaround.
    
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    masahir0y committed Jan 22, 2022
  13. usr/include/Makefile: add linux/nfc.h to the compile-test coverage

    As linux/nfc.h userspace compilation was finally fixed by commits
    79b69a8 ("nfc: uapi: use kernel size_t to fix user-space builds")
    and 7175f02 ("uapi: fix linux/nfc.h userspace compilation errors"),
    there is no need to keep the compile-test exception for it in
    usr/include/Makefile.
    
    Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    ldv-alt authored and masahir0y committed Jan 22, 2022
  14. Merge branch 'akpm' (patches from Andrew)

    Merge yet more updates from Andrew Morton:
     "This is the post-linux-next queue. Material which was based on or
      dependent upon material which was in -next.
    
      69 patches.
    
      Subsystems affected by this patch series: mm (migration and zsmalloc),
      sysctl, proc, and lib"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (69 commits)
      mm: hide the FRONTSWAP Kconfig symbol
      frontswap: remove support for multiple ops
      mm: mark swap_lock and swap_active_head static
      frontswap: simplify frontswap_register_ops
      frontswap: remove frontswap_test
      mm: simplify try_to_unuse
      frontswap: remove the frontswap exports
      frontswap: simplify frontswap_init
      frontswap: remove frontswap_curr_pages
      frontswap: remove frontswap_shrink
      frontswap: remove frontswap_tmem_exclusive_gets
      frontswap: remove frontswap_writethrough
      mm: remove cleancache
      lib/stackdepot: always do filter_irq_stacks() in stack_depot_save()
      lib/stackdepot: allow optional init and stack_table allocation by kvmalloc()
      proc: remove PDE_DATA() completely
      fs: proc: store PDE()->data into inode->i_private
      zsmalloc: replace get_cpu_var with local_lock
      zsmalloc: replace per zpage lock with pool->migrate_lock
      locking/rwlocks: introduce write_lock_nested
      ...
    torvalds committed Jan 22, 2022
  15. Merge tag '5.17-rc-part2-smb3-fixes' of git://git.samba.org/sfrench/c…

    …ifs-2.6
    
    Pull cifs fixes from Steve French:
    
     - multichannel fixes, addressing additional reconnect and DFS scenarios
    
     - reenabling fscache support (indexing rewrite, metadata caching e.g.)
    
     - send additional version information during NTLMSSP negotiate to
       improve debugging
    
     - fix for a mount race
    
     - DFS fixes
    
     - fix for a memory leak for stable
    
    * tag '5.17-rc-part2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
      cifs: update internal module number
      smb3: send NTLMSSP version information
      cifs: Support fscache indexing rewrite
      cifs: cifs_ses_mark_for_reconnect should also update reconnect bits
      cifs: update tcpStatus during negotiate and sess setup
      cifs: make status checks in version independent callers
      cifs: remove repeated state change in dfs tree connect
      cifs: fix the cifs_reconnect path for DFS
      cifs: remove unused variable ses_selected
      cifs: protect all accesses to chan_* with chan_lock
      cifs: fix the connection state transitions with multichannel
      cifs: check reconnects for channels of active tcons too
      smb3: add new defines from protocol specification
      cifs: serialize all mount attempts
      cifs: quirk for STATUS_OBJECT_NAME_INVALID returned for non-ASCII dfs refs
      cifs: alloc_path_with_tree_prefix: do not append sep. if the path is empty
      cifs: clean up an inconsistent indenting
      cifs: free ntlmsspblob allocated in negotiate
    torvalds committed Jan 22, 2022
Older