Skip to content

[PW_SID:958089] context_tracking,x86: Defer some IPIs until a user->kernel transition#353

Closed
linux-riscv-bot wants to merge 26 commits into
workflow__riscv__fixesfrom
pw958089
Closed

[PW_SID:958089] context_tracking,x86: Defer some IPIs until a user->kernel transition#353
linux-riscv-bot wants to merge 26 commits into
workflow__riscv__fixesfrom
pw958089

Conversation

@linux-riscv-bot
Copy link
Copy Markdown

PR for series 958089 applied to workflow__riscv__fixes

Name: context_tracking,x86: Defer some IPIs until a user->kernel transition
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=958089
Version: 5

Linux RISC-V bot and others added 26 commits April 24, 2025 20:46
call_dest_name() does not get passed the file pointer of validate_call(),
which means its invocation of insn_reloc() will always return NULL. Make it
take a file pointer.

While at it, make sure call_dest_name() uses arch_dest_reloc_offset(),
otherwise it gets the pv_ops[] offset wrong.

Fabricating an intentional warning shows the change; previously:

  vmlinux.o: warning: objtool: __flush_tlb_all_noinstr+0x4: call to {dynamic}() leaves .noinstr.text section

now:

  vmlinux.o: warning: objtool: __flush_tlb_all_noinstr+0x4: call to pv_ops[1]() leaves .noinstr.text section

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
I had to look into objtool itself to understand what this warning was
about; make it more explicit.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
A later commit will reduce the size of the RCU watching counter to free up
some bits for another purpose. Paul suggested adding a config option to
test the extreme case where the counter is reduced to its minimum usable
width for rcutorture to poke at, so do that.

Make it only configurable under RCU_EXPERT. While at it, add a comment to
explain the layout of context_tracking->state.

Link: http://lore.kernel.org/r/4c2cb573-168f-4806-b1d9-164e8276e66a@paulmck-laptop
Suggested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
We now have an RCU_EXPERT config for testing small-sized RCU dynticks
counter:  CONFIG_RCU_DYNTICKS_TORTURE.

Modify scenario TREE04 to exercise to use this config in order to test a
ridiculously small counter (2 bits).

Link: http://lore.kernel.org/r/4c2cb573-168f-4806-b1d9-164e8276e66a@paulmck-laptop
Suggested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Deferring a code patching IPI is unsafe if the patched code is in a
noinstr region.  In that case the text poke code must trigger an
immediate IPI to all CPUs, which can rudely interrupt an isolated NO_HZ
CPU running in userspace.

Some noinstr static branches may really need to be patched at runtime,
despite the resulting disruption.  Add DEFINE_STATIC_KEY_*_NOINSTR()
variants for those.  They don't do anything special yet; that will come
later.

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Deferring a code patching IPI is unsafe if the patched code is in a
noinstr region.  In that case the text poke code must trigger an
immediate IPI to all CPUs, which can rudely interrupt an isolated NO_HZ
CPU running in userspace.

If a noinstr static call only needs to be patched during boot, its key
can be made ro-after-init to ensure it will never be patched at runtime.

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Later commits will cause objtool to warn about static calls being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

pv_sched_clock is updated in:
o __init vmware_paravirt_ops_setup()
o __init xen_init_time_common()
o kvm_sched_clock_init() <- __init kvmclock_init()
o hv_setup_sched_clock() <- __init hv_init_tsc_clocksource()

IOW purely init context, and can thus be marked as __ro_after_init.

Reported-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Later commits will cause objtool to warn about static calls being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

x86_idle is updated in:
o xen_set_default_idle() <- __init xen_arch_setup()
o __init select_idle_routine()

IOW purely init context, and can thus be marked as __ro_after_init.

Reported-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The static call is only ever updated in

  __init pv_time_init()
  __init xen_init_time_common()
  __init vmware_paravirt_ops_setup()
  __init xen_time_setup_guest(

so mark it appropriately as __ro_after_init.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The static call is only ever updated in:

  __init pv_time_init()
  __init xen_time_setup_guest()

so mark it appropriately as __ro_after_init.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The static call is only ever updated in

  __init pv_time_init()
  __init xen_time_setup_guest()

so mark it appropriately as __ro_after_init.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The static call is only ever updated in

  __init pv_time_init()
  __init xen_time_setup_guest()

so mark it appropriately as __ro_after_init.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The static call is only ever updated in

  __init xen_time_setup_guest()

so mark it appropriately as __ro_after_init.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Later commits will cause objtool to warn about static calls being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

perf_lopwr_cb is used in .noinstr code, but is only ever updated in __init
amd_brs_lopwr_init(), and can thus be marked as __ro_after_init.

Reported-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
sched_clock_running is only ever enabled in the __init functions
sched_clock_init() and sched_clock_init_late(), and is never disabled. Mark
it __ro_after_init.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The static key is only ever enabled in

  __init hv_init_evmcs()

so mark it appropriately as __ro_after_init.

Reported-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Later commits will cause objtool to warn about static keys being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

mds_idle_clear is used in .noinstr code, and can be modified at
runtime (SMT hotplug). Suppressing the text_poke_sync() IPI has little
benefits for this key, as hotplug implies eventually going through
takedown_cpu() -> stop_machine_cpuslocked() which is going to cause
interference on all online CPUs anyway.

Mark it to let objtool know not to warn about it.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Later commits will cause objtool to warn about static keys being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

__sched_clock_stable is used in .noinstr code, and can be modified at
runtime (e.g. time_cpufreq_notifier()). Suppressing the text_poke_sync()
IPI has little benefits for this key, as NOHZ_FULL is incompatible with an
unstable TSC anyway.

Mark it to let objtool know not to warn about it.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
…lowed in .noinstr

Later commits will cause objtool to warn about static keys being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

These keys are used in .noinstr code, and can be modified at runtime
(/proc/kernel/vmx* write). However it is not expected that they will be
flipped during latency-sensitive operations, and thus shouldn't be a source
of interference wrt the text patching IPI.

Mark it to let objtool know not to warn about it.

Reported-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Later commits will cause objtool to warn about static keys being used in
.noinstr sections in order to safely defer instruction patching IPIs
targeted at NOHZ_FULL CPUs.

stack_erasing_bypass is used in .noinstr code, and can be modified at runtime
(proc/sys/kernel/stack_erasing write). However it is not expected that it
will be  flipped during latency-sensitive operations, and thus shouldn't be
a source of interference wrt the text patching IPI.

Mark it to let objtool know not to warn about it.

Reported-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Warn about static branches/calls in noinstr regions, unless the
corresponding key is RO-after-init or has been manually whitelisted with
DEFINE_STATIC_KEY_*_NOINSTR(().

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
[Added NULL check for insn_call_dest() return value]
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The text_size bit referred to by the comment has been removed as of commit

  ac3b432 ("module: replace module_layout with module_memory")

and is thus no longer relevant. Remove it and comment about the contents of
the masks array instead.

Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
As pointed out by Sean [1], is_kernel_noinstr_text() will return false for
an address contained within a module's .noinstr.text section. A later patch
will require checking whether a text address is noinstr, and this can
unfortunately be the case of modules - KVM is one such case.

A module's .noinstr.text section is already tracked as of commit
  66e9b07 ("kprobes: Prevent probes in .noinstr.text section")
for kprobe blacklisting purposes, but via an ad-hoc mechanism.

Add a MOD_NOINSTR_TEXT mem_type, and reorganize __layout_sections() so that
it maps all the sections in a single invocation.

[1]: http://lore.kernel.org/r/Z4qQL89GZ_gk0vpu@google.com
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
smp_call_function() & friends have the unfortunate habit of sending IPIs to
isolated, NOHZ_FULL, in-userspace CPUs, as they blindly target all online
CPUs.

Some callsites can be bent into doing the right, such as done by commit:

  cc9e303 ("x86/cpu: Disable frequency requests via aperfmperf IPI for nohz_full CPUs")

Unfortunately, not all SMP callbacks can be omitted in this
fashion. However, some of them only affect execution in kernelspace, which
means they don't have to be executed *immediately* if the target CPU is in
userspace: stashing the callback and executing it upon the next kernel entry
would suffice. x86 kernel instruction patching or kernel TLB invalidation
are prime examples of it.

Reduce the RCU dynticks counter width to free up some bits to be used as a
deferred callback bitmask. Add some build-time checks to validate that
setup.

Presence of CT_RCU_WATCHING in the ct_state prevents queuing deferred work.

Later commits introduce the bit:callback mappings.

Link: https://lore.kernel.org/all/20210929151723.162004989@infradead.org/
Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
text_poke_bp_batch() sends IPIs to all online CPUs to synchronize
them vs the newly patched instruction. CPUs that are executing in userspace
do not need this synchronization to happen immediately, and this is
actually harmful interference for NOHZ_FULL CPUs.

As the synchronization IPIs are sent using a blocking call, returning from
text_poke_bp_batch() implies all CPUs will observe the patched
instruction(s), and this should be preserved even if the IPI is deferred.
In other words, to safely defer this synchronization, any kernel
instruction leading to the execution of the deferred instruction
sync (ct_work_flush()) must *not* be mutable (patchable) at runtime.

This means we must pay attention to mutable instructions in the early entry
code:
- alternatives
- static keys
- static calls
- all sorts of probes (kprobes/ftrace/bpf/???)

The early entry code leading to ct_work_flush() is noinstr, which gets rid
of the probes.

Alternatives are safe, because it's boot-time patching (before SMP is
even brought up) which is before any IPI deferral can happen.

This leaves us with static keys and static calls.

Any static key used in early entry code should be only forever-enabled at
boot time, IOW __ro_after_init (pretty much like alternatives). Exceptions
are explicitly marked as allowed in .noinstr and will always generate an
IPI when flipped.

The same applies to static calls - they should be only updated at boot
time, or manually marked as an exception.

Objtool is now able to point at static keys/calls that don't respect this,
and all static keys/calls used in early entry code have now been verified
as behaving appropriately.

Leverage the new context_tracking infrastructure to defer sync_core() IPIs
to a target CPU's next kernel entry.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v5,01/25] objtool: Make validate_call() recognize indirect calls to pv_ops[]"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 110.78 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v5,01/25] objtool: Make validate_call() recognize indirect calls to pv_ops[]"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 892.93 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v5,01/25] objtool: Make validate_call() recognize indirect calls to pv_ops[]"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1146.51 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "[v5,01/25] objtool: Make validate_call() recognize indirect calls to pv_ops[]"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.86 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 23: "[v5,23/25] module: Add MOD_NOINSTR_TEXT mem_type"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 23: "[v5,23/25] module: Add MOD_NOINSTR_TEXT mem_type"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.32 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 23.29 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:10.754353
I: default: FAIL in 0:00:07.384122
I: kernel: SKIP in 0:00:00.000008
I: xipkernel: SKIP in 0:00:00.000004
I: modules: FAIL in 0:00:00.092507
I: dtbs: PASS in 0:00:01.629542
I: dtbs-legacy: SKIP in 0:00:00.003200
I: debugkernel: SKIP in 0:00:00.000002
I: headers: PASS in 0:00:00.959545
I: build output in /build/tmp.1A1SiboXgW
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=rv32_defconfig --toolchain=llvm --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.1A1SiboXgW/build/= --runtime=null --image=docker.io/tuxmake/riscv_clang CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.1A1SiboXgW/build ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' rv32_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.1A1SiboXgW/build ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang'
In file included from /build/tmpsdecxkr6/arch/riscv/kernel/asm-offsets.c:10:
In file included from /build/tmpsdecxkr6/include/linux/ftrace.h:10:
In file included from /build/tmpsdecxkr6/include/linux/trace_recursion.h:5:
In file included from /build/tmpsdecxkr6/include/linux/interrupt.h:11:
In file included from /build/tmpsdecxkr6/include/linux/hardirq.h:5:
In file included from /build/tmpsdecxkr6/include/linux/context_tracking_state.h:8:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: 'asm/context_tracking_work.h' file not found
   17 | #include <asm/context_tracking_work.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[3]: *** [/build/tmpsdecxkr6/scripts/Makefile.build:98: arch/riscv/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [/build/tmpsdecxkr6/Makefile:1282: prepare0] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmpsdecxkr6/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
rm -rf /build/tmp.1A1SiboXgW/build/modinstall
make --silent --keep-going --jobs=48 O=/build/tmp.1A1SiboXgW/build INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=/build/tmp.1A1SiboXgW/build/modinstall ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' modules_install
make[3]: *** No rule to make target 'modules.order', needed by '/build/tmp.1A1SiboXgW/build/modinstall/lib/modules/6.15.0-rc3-00027-g901b94e2a23b/modules.order'.
make[3]: *** No rule to make target 'modules.builtin', needed by '/build/tmp.1A1SiboXgW/build/modinstall/lib/modules/6.15.0-rc3-00027-g901b94e2a23b/modules.builtin'.
make[3]: *** No rule to make target 'modules.builtin.modinfo', needed by '/build/tmp.1A1SiboXgW/build/modinstall/lib/modules/6.15.0-rc3-00027-g901b94e2a23b/modules.builtin.modinfo'.
make[3]: Target '__modinst' not remade because of errors.
make[2]: *** [/build/tmpsdecxkr6/Makefile:1917: modules_install] Error 2
make[1]: *** [/build/tmpsdecxkr6/Makefile:248: __sub-make] Error 2
make[1]: Target 'modules_install' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'modules_install' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.1A1SiboXgW/build INSTALL_DTBS_PATH=/build/tmp.1A1SiboXgW/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' dtbs
rm -rf /build/tmp.1A1SiboXgW/build/dtbsinstall
mkdir -p /build/tmp.1A1SiboXgW/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.1A1SiboXgW/build INSTALL_DTBS_PATH=/build/tmp.1A1SiboXgW/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.1A1SiboXgW/build/dtbs.tar -C /build/tmp.1A1SiboXgW/build/dtbsinstall dtbs
rm -rf /build/tmp.1A1SiboXgW/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.1A1SiboXgW/build INSTALL_HDR_PATH=/build/tmp.1A1SiboXgW/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.1A1SiboXgW/build/headers.tar -C /build/tmp.1A1SiboXgW/build/install_hdr .
warnings/errors:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: 'asm/context_tracking_work.h' file not found


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 18.87 seconds
Result: ERROR
Output:

Redirect to /build/tmp.aB1A6sbtIH and /build/tmp.WsIZn4U29F
Tree base:
91a3d11f00c4e ("module: Add MOD_NOINSTR_TEXT mem_type")
Building the whole tree with the patch
error:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: 'asm/context_tracking_work.h' file not found



real	0m17.614s
user	0m12.150s
sys	0m21.314s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 17.28 seconds
Result: ERROR
Output:

Redirect to /build/tmp.hFkOcD6B4g and /build/tmp.T1RVcsZJVf
Tree base:
91a3d11f00c4e ("module: Add MOD_NOINSTR_TEXT mem_type")
Building the whole tree with the patch
error:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory



real	0m16.094s
user	0m18.583s
sys	0m18.793s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 10.02 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:03.480450
I: default: FAIL in 0:00:01.814662
I: kernel: SKIP in 0:00:00.000009
I: xipkernel: SKIP in 0:00:00.000005
I: modules: SKIP in 0:00:00.003253
I: dtbs: PASS in 0:00:01.207547
I: dtbs-legacy: SKIP in 0:00:00.004573
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.117548
I: build output in /build/tmp.3wlZu791Zf
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=nommu_k210_defconfig --toolchain=gcc --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.3wlZu791Zf/build/= --runtime=null --image=docker.io/tuxmake/riscv_gcc CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.3wlZu791Zf/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' nommu_k210_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.3wlZu791Zf/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc'
In file included from /build/tmpsdecxkr6/include/linux/context_tracking_state.h:8,
                 from /build/tmpsdecxkr6/include/linux/hardirq.h:5,
                 from /build/tmpsdecxkr6/include/linux/interrupt.h:11,
                 from /build/tmpsdecxkr6/include/linux/trace_recursion.h:5,
                 from /build/tmpsdecxkr6/include/linux/ftrace.h:10,
                 from /build/tmpsdecxkr6/arch/riscv/kernel/asm-offsets.c:10:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory
   17 | #include <asm/context_tracking_work.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [/build/tmpsdecxkr6/scripts/Makefile.build:98: arch/riscv/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [/build/tmpsdecxkr6/Makefile:1282: prepare0] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmpsdecxkr6/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.3wlZu791Zf/build INSTALL_DTBS_PATH=/build/tmp.3wlZu791Zf/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs
rm -rf /build/tmp.3wlZu791Zf/build/dtbsinstall
mkdir -p /build/tmp.3wlZu791Zf/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.3wlZu791Zf/build INSTALL_DTBS_PATH=/build/tmp.3wlZu791Zf/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.3wlZu791Zf/build/dtbs.tar -C /build/tmp.3wlZu791Zf/build/dtbsinstall dtbs
rm -rf /build/tmp.3wlZu791Zf/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.3wlZu791Zf/build INSTALL_HDR_PATH=/build/tmp.3wlZu791Zf/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.3wlZu791Zf/build/headers.tar -C /build/tmp.3wlZu791Zf/build/install_hdr .
warnings/errors:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 9.93 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:03.560947
I: default: FAIL in 0:00:01.790637
I: kernel: SKIP in 0:00:00.000007
I: xipkernel: SKIP in 0:00:00.000006
I: modules: SKIP in 0:00:00.001715
I: dtbs: PASS in 0:00:01.209442
I: dtbs-legacy: SKIP in 0:00:00.004751
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.110905
I: build output in /build/tmp.psZcB4lAd9
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=nommu_virt_defconfig --toolchain=gcc --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.psZcB4lAd9/build/= --runtime=null --image=docker.io/tuxmake/riscv_gcc CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.psZcB4lAd9/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' nommu_virt_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.psZcB4lAd9/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc'
In file included from /build/tmpsdecxkr6/include/linux/context_tracking_state.h:8,
                 from /build/tmpsdecxkr6/include/linux/hardirq.h:5,
                 from /build/tmpsdecxkr6/include/linux/interrupt.h:11,
                 from /build/tmpsdecxkr6/include/linux/trace_recursion.h:5,
                 from /build/tmpsdecxkr6/include/linux/ftrace.h:10,
                 from /build/tmpsdecxkr6/arch/riscv/kernel/asm-offsets.c:10:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory
   17 | #include <asm/context_tracking_work.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [/build/tmpsdecxkr6/scripts/Makefile.build:98: arch/riscv/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [/build/tmpsdecxkr6/Makefile:1282: prepare0] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmpsdecxkr6/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.psZcB4lAd9/build INSTALL_DTBS_PATH=/build/tmp.psZcB4lAd9/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs
rm -rf /build/tmp.psZcB4lAd9/build/dtbsinstall
mkdir -p /build/tmp.psZcB4lAd9/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.psZcB4lAd9/build INSTALL_DTBS_PATH=/build/tmp.psZcB4lAd9/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.psZcB4lAd9/build/dtbs.tar -C /build/tmp.psZcB4lAd9/build/dtbsinstall dtbs
rm -rf /build/tmp.psZcB4lAd9/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.psZcB4lAd9/build INSTALL_HDR_PATH=/build/tmp.psZcB4lAd9/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.psZcB4lAd9/build/headers.tar -C /build/tmp.psZcB4lAd9/build/install_hdr .
warnings/errors:
/build/tmpsdecxkr6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 3.30 seconds
Result: WARNING
Output:

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#79: 
new file mode 100644

CHECK: extern prototypes should be avoided in .h files
#231: FILE: include/linux/context_tracking_work.h:20:
+extern bool ct_set_cpu_work(unsigned int cpu, enum ct_work work);

total: 0 errors, 1 warnings, 1 checks, 261 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 901b94e2a23b ("context-tracking: Introduce work deferral infrastructure") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 1 warnings, 1 checks, 261 lines checked
CHECK: extern prototypes should be avoided in .h files
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 68.28 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
kdoc
Desc: Detects for kdoc errors
Duration: 1.65 seconds
Result: ERROR
Output:

Checking the tree before the patch
Error: Cannot open file arch/x86/include/asm/context_tracking_work.h
Error: Cannot open file include/linux/context_tracking_work.h
Checking the tree with the patch
kernel/context_tracking.c:101: warning: Function parameter or struct member 'cpu' not described in 'ct_set_cpu_work'
kernel/context_tracking.c:101: warning: Function parameter or struct member 'work' not described in 'ct_set_cpu_work'
Errors and warnings before: 0 this patch: 2
New warnings added
1,2c1,2
< Error: Cannot open file arch/x86/include/asm/context_tracking_work.h
< Error: Cannot open file include/linux/context_tracking_work.h
---
> kernel/context_tracking.c:101: warning: Function parameter or struct member 'cpu' not described in 'ct_set_cpu_work'
> kernel/context_tracking.c:101: warning: Function parameter or struct member 'work' not described in 'ct_set_cpu_work'
Per-file breakdown


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
module-param
Desc: Detect module_param changes
Duration: 0.30 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 24: "[v5,24/25] context-tracking: Introduce work deferral infrastructure"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.32 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 22.74 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:10.774684
I: default: FAIL in 0:00:07.300699
I: kernel: SKIP in 0:00:00.000007
I: xipkernel: SKIP in 0:00:00.000004
I: modules: FAIL in 0:00:00.095891
I: dtbs: PASS in 0:00:01.431056
I: dtbs-legacy: SKIP in 0:00:00.004767
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.026562
I: build output in /build/tmp.J4JzdSEAX8
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=rv32_defconfig --toolchain=llvm --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.J4JzdSEAX8/build/= --runtime=null --image=docker.io/tuxmake/riscv_clang CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.J4JzdSEAX8/build ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' rv32_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.J4JzdSEAX8/build ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang'
In file included from /build/tmpkuwxbke6/arch/riscv/kernel/asm-offsets.c:10:
In file included from /build/tmpkuwxbke6/include/linux/ftrace.h:10:
In file included from /build/tmpkuwxbke6/include/linux/trace_recursion.h:5:
In file included from /build/tmpkuwxbke6/include/linux/interrupt.h:11:
In file included from /build/tmpkuwxbke6/include/linux/hardirq.h:5:
In file included from /build/tmpkuwxbke6/include/linux/context_tracking_state.h:8:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: 'asm/context_tracking_work.h' file not found
   17 | #include <asm/context_tracking_work.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[3]: *** [/build/tmpkuwxbke6/scripts/Makefile.build:98: arch/riscv/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [/build/tmpkuwxbke6/Makefile:1282: prepare0] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmpkuwxbke6/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
rm -rf /build/tmp.J4JzdSEAX8/build/modinstall
make --silent --keep-going --jobs=48 O=/build/tmp.J4JzdSEAX8/build INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=/build/tmp.J4JzdSEAX8/build/modinstall ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' modules_install
make[3]: *** No rule to make target 'modules.order', needed by '/build/tmp.J4JzdSEAX8/build/modinstall/lib/modules/6.15.0-rc3-00028-gb92d56b45250/modules.order'.
make[3]: *** No rule to make target 'modules.builtin', needed by '/build/tmp.J4JzdSEAX8/build/modinstall/lib/modules/6.15.0-rc3-00028-gb92d56b45250/modules.builtin'.
make[3]: *** No rule to make target 'modules.builtin.modinfo', needed by '/build/tmp.J4JzdSEAX8/build/modinstall/lib/modules/6.15.0-rc3-00028-gb92d56b45250/modules.builtin.modinfo'.
make[3]: Target '__modinst' not remade because of errors.
make[2]: *** [/build/tmpkuwxbke6/Makefile:1917: modules_install] Error 2
make[1]: *** [/build/tmpkuwxbke6/Makefile:248: __sub-make] Error 2
make[1]: Target 'modules_install' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'modules_install' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.J4JzdSEAX8/build INSTALL_DTBS_PATH=/build/tmp.J4JzdSEAX8/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' dtbs
rm -rf /build/tmp.J4JzdSEAX8/build/dtbsinstall
mkdir -p /build/tmp.J4JzdSEAX8/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.J4JzdSEAX8/build INSTALL_DTBS_PATH=/build/tmp.J4JzdSEAX8/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.J4JzdSEAX8/build/dtbs.tar -C /build/tmp.J4JzdSEAX8/build/dtbsinstall dtbs
rm -rf /build/tmp.J4JzdSEAX8/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.J4JzdSEAX8/build INSTALL_HDR_PATH=/build/tmp.J4JzdSEAX8/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.J4JzdSEAX8/build/headers.tar -C /build/tmp.J4JzdSEAX8/build/install_hdr .
warnings/errors:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: 'asm/context_tracking_work.h' file not found


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 18.75 seconds
Result: ERROR
Output:

Redirect to /build/tmp.Zi54ubmBvs and /build/tmp.ayLrH6fJ1s
Tree base:
901b94e2a23bc ("context-tracking: Introduce work deferral infrastructure")
Building the whole tree with the patch
error:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: 'asm/context_tracking_work.h' file not found



real	0m17.525s
user	0m12.120s
sys	0m21.159s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 16.82 seconds
Result: ERROR
Output:

Redirect to /build/tmp.Zme7PaCdNd and /build/tmp.fMwpJSqvdN
Tree base:
901b94e2a23bc ("context-tracking: Introduce work deferral infrastructure")
Building the whole tree with the patch
error:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory



real	0m15.645s
user	0m18.737s
sys	0m18.463s

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 9.45 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:03.440491
I: default: FAIL in 0:00:01.620515
I: kernel: SKIP in 0:00:00.000010
I: xipkernel: SKIP in 0:00:00.000004
I: modules: SKIP in 0:00:00.002985
I: dtbs: PASS in 0:00:01.029104
I: dtbs-legacy: SKIP in 0:00:00.004919
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.123194
I: build output in /build/tmp.j1k4YwmNQp
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=nommu_k210_defconfig --toolchain=gcc --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.j1k4YwmNQp/build/= --runtime=null --image=docker.io/tuxmake/riscv_gcc CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.j1k4YwmNQp/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' nommu_k210_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.j1k4YwmNQp/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc'
In file included from /build/tmpkuwxbke6/include/linux/context_tracking_state.h:8,
                 from /build/tmpkuwxbke6/include/linux/hardirq.h:5,
                 from /build/tmpkuwxbke6/include/linux/interrupt.h:11,
                 from /build/tmpkuwxbke6/include/linux/trace_recursion.h:5,
                 from /build/tmpkuwxbke6/include/linux/ftrace.h:10,
                 from /build/tmpkuwxbke6/arch/riscv/kernel/asm-offsets.c:10:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory
   17 | #include <asm/context_tracking_work.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [/build/tmpkuwxbke6/scripts/Makefile.build:98: arch/riscv/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [/build/tmpkuwxbke6/Makefile:1282: prepare0] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmpkuwxbke6/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.j1k4YwmNQp/build INSTALL_DTBS_PATH=/build/tmp.j1k4YwmNQp/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs
rm -rf /build/tmp.j1k4YwmNQp/build/dtbsinstall
mkdir -p /build/tmp.j1k4YwmNQp/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.j1k4YwmNQp/build INSTALL_DTBS_PATH=/build/tmp.j1k4YwmNQp/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.j1k4YwmNQp/build/dtbs.tar -C /build/tmp.j1k4YwmNQp/build/dtbsinstall dtbs
rm -rf /build/tmp.j1k4YwmNQp/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.j1k4YwmNQp/build INSTALL_HDR_PATH=/build/tmp.j1k4YwmNQp/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.j1k4YwmNQp/build/headers.tar -C /build/tmp.j1k4YwmNQp/build/install_hdr .
warnings/errors:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 9.66 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:03.605841
I: default: FAIL in 0:00:01.686227
I: kernel: SKIP in 0:00:00.000008
I: xipkernel: SKIP in 0:00:00.000005
I: modules: SKIP in 0:00:00.003246
I: dtbs: PASS in 0:00:01.043393
I: dtbs-legacy: SKIP in 0:00:00.004819
I: debugkernel: SKIP in 0:00:00.000004
I: headers: PASS in 0:00:01.123264
I: build output in /build/tmp.EpYEomZEWa
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=nommu_virt_defconfig --toolchain=gcc --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.EpYEomZEWa/build/= --runtime=null --image=docker.io/tuxmake/riscv_gcc CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.EpYEomZEWa/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' nommu_virt_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.EpYEomZEWa/build ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc'
In file included from /build/tmpkuwxbke6/include/linux/context_tracking_state.h:8,
                 from /build/tmpkuwxbke6/include/linux/hardirq.h:5,
                 from /build/tmpkuwxbke6/include/linux/interrupt.h:11,
                 from /build/tmpkuwxbke6/include/linux/trace_recursion.h:5,
                 from /build/tmpkuwxbke6/include/linux/ftrace.h:10,
                 from /build/tmpkuwxbke6/arch/riscv/kernel/asm-offsets.c:10:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory
   17 | #include <asm/context_tracking_work.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [/build/tmpkuwxbke6/scripts/Makefile.build:98: arch/riscv/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [/build/tmpkuwxbke6/Makefile:1282: prepare0] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmpkuwxbke6/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.EpYEomZEWa/build INSTALL_DTBS_PATH=/build/tmp.EpYEomZEWa/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs
rm -rf /build/tmp.EpYEomZEWa/build/dtbsinstall
mkdir -p /build/tmp.EpYEomZEWa/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.EpYEomZEWa/build INSTALL_DTBS_PATH=/build/tmp.EpYEomZEWa/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.EpYEomZEWa/build/dtbs.tar -C /build/tmp.EpYEomZEWa/build/dtbsinstall dtbs
rm -rf /build/tmp.EpYEomZEWa/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.EpYEomZEWa/build INSTALL_HDR_PATH=/build/tmp.EpYEomZEWa/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- 'CC=ccache riscv64-linux-gcc' 'HOSTCC=ccache gcc' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1745936424 --clamp-mtime -caf /build/tmp.EpYEomZEWa/build/headers.tar -C /build/tmp.EpYEomZEWa/build/install_hdr .
warnings/errors:
/build/tmpkuwxbke6/include/linux/context_tracking_work.h:17:10: fatal error: asm/context_tracking_work.h: No such file or directory


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 2.93 seconds
Result: WARNING
Output:

CHECK: Consider using #include <linux/sync_core.h> instead of <asm/sync_core.h>
#71: FILE: arch/x86/include/asm/context_tracking_work.h:5:
+#include <asm/sync_core.h>

CHECK: extern prototypes should be avoided in .h files
#91: FILE: arch/x86/include/asm/text-patching.h:36:
+extern void text_poke_sync_deferrable(void);

CHECK: Please don't use multiple blank lines
#245: FILE: include/asm-generic/sections.h:202:
 
+

total: 0 errors, 0 warnings, 3 checks, 173 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit b92d56b45250 ("context_tracking,x86: Defer kernel text patching IPIs") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 0 warnings, 3 checks, 173 lines checked
CHECK: Consider using #include <linux/sync_core.h> instead of <asm/sync_core.h>
CHECK: Please don't use multiple blank lines
CHECK: extern prototypes should be avoided in .h files


@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 68.19 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
kdoc
Desc: Detects for kdoc errors
Duration: 0.86 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
module-param
Desc: Detect module_param changes
Duration: 0.30 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 25: "[v5,25/25] context_tracking,x86: Defer kernel text patching IPIs"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.32 seconds
Result: PASS

@linux-riscv-bot linux-riscv-bot force-pushed the workflow__riscv__fixes branch 2 times, most recently from 4d9ad71 to 625be03 Compare May 6, 2025 09:20
@linux-riscv-bot linux-riscv-bot deleted the pw958089 branch May 7, 2025 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants