10 Aug, 2020

2 commits

  • ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)

    exists here in sub-directories of lib/ to keep the behavior of
    commit 2464a609ded0 ("ftrace: do not trace library functions").

    Since that commit, not only the objects in lib/ but also the ones in
    the sub-directories are excluded from ftrace (although the commit
    description did not explicitly mention this).

    However, most of library functions in sub-directories are not so hot.
    Re-add them to ftrace.

    Going forward, only the objects right under lib/ will be excluded.

    Cc: Ingo Molnar
    Signed-off-by: Masahiro Yamada
    Acked-by: Steven Rostedt (VMware)

    Masahiro Yamada
     
  • CFLAGS_REMOVE_.o filters out flags when compiling a particular
    object, but there is no convenient way to do that for every object in
    a directory.

    Add ccflags-remove-y and asflags-remove-y to make it easily.

    Use ccflags-remove-y to clean up some Makefiles.

    The add/remove order works as follows:

    [1] KBUILD_CFLAGS specifies compiler flags used globally

    [2] ccflags-y adds compiler flags for all objects in the
    current Makefile

    [3] ccflags-remove-y removes compiler flags for all objects in the
    current Makefile (New feature)

    [4] CFLAGS_ adds compiler flags per file.

    [5] CFLAGS_REMOVE_ removes compiler flags per file.

    Having [3] before [4] allows us to remove flags from most (but not all)
    objects in the current Makefile.

    For example, kernel/trace/Makefile removes $(CC_FLAGS_FTRACE)
    from all objects in the directory, then adds it back to
    trace_selftest_dynamic.o and CFLAGS_trace_kprobe_selftest.o

    The same applies to lib/livepatch/Makefile.

    Please note ccflags-remove-y has no effect to the sub-directories.
    In contrast, the previous notation got rid of compiler flags also from
    all the sub-directories.

    The following are not affected because they have no sub-directories:

    arch/arm/boot/compressed/
    arch/powerpc/xmon/
    arch/sh/
    kernel/trace/

    However, lib/ has several sub-directories.

    To keep the behavior, I added ccflags-remove-y to all Makefiles
    in subdirectories of lib/, except the following:

    lib/vdso/Makefile - Kbuild does not descend into this Makefile
    lib/raid/test/Makefile - This is not used for the kernel build

    I think commit 2464a609ded0 ("ftrace: do not trace library functions")
    excluded too much. In the next commit, I will remove ccflags-remove-y
    from the sub-directories of lib/.

    Suggested-by: Sami Tolvanen
    Signed-off-by: Masahiro Yamada
    Acked-by: Steven Rostedt (VMware)
    Acked-by: Michael Ellerman (powerpc)
    Acked-by: Brendan Higgins (KUnit)
    Tested-by: Anders Roxell

    Masahiro Yamada
     

01 Nov, 2019

1 commit


12 Jan, 2019

1 commit

  • Add a few livepatch modules and simple target modules that the included
    regression suite can run tests against:

    - basic livepatching (multiple patches, atomic replace)
    - pre/post (un)patch callbacks
    - shadow variable API

    Signed-off-by: Joe Lawrence
    Signed-off-by: Petr Mladek
    Tested-by: Miroslav Benes
    Tested-by: Alice Ferrazzi
    Acked-by: Joe Lawrence
    Acked-by: Josh Poimboeuf
    Signed-off-by: Jiri Kosina

    Joe Lawrence