Hi Sean,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on kvm/queue]
[also build test ERROR on vhost/linux-next linus/master v5.12-rc7 next-20210413]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Sean-Christopherson/KVM-Fix-tick...
base:
https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
config: arm64-randconfig-r033-20210413 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/0day-ci/linux/commit/812e089ce79e0e9d5a7b8063fbdb44961...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Sean-Christopherson/KVM-Fix-tick-based-vtime-accounting-on-x86/20210414-023106
git checkout 812e089ce79e0e9d5a7b8063fbdb4496174f30f5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/hardirq.h:9,
from include/linux/kvm_host.h:7,
from arch/arm64/kernel/asm-offsets.c:14:
include/linux/vtime.h: In function 'vtime_account_guest_enter':
include/linux/vtime.h:68:3: error: implicit declaration of function
'vtime_guest_enter' [-Werror=implicit-function-declaration]
68 | vtime_guest_enter(current);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h: In function 'vtime_account_guest_exit':
include/linux/vtime.h:76:3: error: implicit declaration of function
'vtime_guest_exit' [-Werror=implicit-function-declaration]
76 | vtime_guest_exit(current);
| ^~~~~~~~~~~~~~~~
include/linux/vtime.h: At top level:
include/linux/vtime.h:111:13: warning: conflicting types for
'vtime_guest_enter'
111 | extern void vtime_guest_enter(struct task_struct *tsk);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h:68:3: note: previous implicit declaration of
'vtime_guest_enter' was here
68 | vtime_guest_enter(current);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h:112:13: warning: conflicting types for
'vtime_guest_exit'
112 | extern void vtime_guest_exit(struct task_struct *tsk);
| ^~~~~~~~~~~~~~~~
include/linux/vtime.h:76:3: note: previous implicit declaration of
'vtime_guest_exit' was here
76 | vtime_guest_exit(current);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/kvm_host.h:25,
from arch/arm64/kernel/asm-offsets.c:14:
include/linux/context_tracking.h: In function
'context_tracking_guest_enter_irqoff':
include/linux/context_tracking.h:79:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
79 | return context_tracking_enabled_this_cpu();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/context_tracking.h:74:29: note: declared here
74 | static __always_inline void context_tracking_guest_enter_irqoff(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm64/kernel/asm-offsets.c:14:
include/linux/kvm_host.h: In function 'guest_enter_irqoff':
> include/linux/kvm_host.h:354:6: error: invalid use of void
expression
354 | if (!context_tracking_guest_enter_irqoff()) {
| ^
cc1: some warnings being treated as errors
--
In file included from include/linux/hardirq.h:9,
from include/linux/kvm_host.h:7,
from arch/arm64/kernel/asm-offsets.c:14:
include/linux/vtime.h: In function 'vtime_account_guest_enter':
include/linux/vtime.h:68:3: error: implicit declaration of function
'vtime_guest_enter' [-Werror=implicit-function-declaration]
68 | vtime_guest_enter(current);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h: In function 'vtime_account_guest_exit':
include/linux/vtime.h:76:3: error: implicit declaration of function
'vtime_guest_exit' [-Werror=implicit-function-declaration]
76 | vtime_guest_exit(current);
| ^~~~~~~~~~~~~~~~
include/linux/vtime.h: At top level:
include/linux/vtime.h:111:13: warning: conflicting types for
'vtime_guest_enter'
111 | extern void vtime_guest_enter(struct task_struct *tsk);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h:68:3: note: previous implicit declaration of
'vtime_guest_enter' was here
68 | vtime_guest_enter(current);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h:112:13: warning: conflicting types for
'vtime_guest_exit'
112 | extern void vtime_guest_exit(struct task_struct *tsk);
| ^~~~~~~~~~~~~~~~
include/linux/vtime.h:76:3: note: previous implicit declaration of
'vtime_guest_exit' was here
76 | vtime_guest_exit(current);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/kvm_host.h:25,
from arch/arm64/kernel/asm-offsets.c:14:
include/linux/context_tracking.h: In function
'context_tracking_guest_enter_irqoff':
include/linux/context_tracking.h:79:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
79 | return context_tracking_enabled_this_cpu();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/context_tracking.h:74:29: note: declared here
74 | static __always_inline void context_tracking_guest_enter_irqoff(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm64/kernel/asm-offsets.c:14:
include/linux/kvm_host.h: In function 'guest_enter_irqoff':
> include/linux/kvm_host.h:354:6: error: invalid use of void
expression
354 | if (!context_tracking_guest_enter_irqoff()) {
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:116: arch/arm64/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'modules_prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'modules_prepare' not remade because of errors.
--
In file included from include/linux/hardirq.h:9,
from include/linux/kvm_host.h:7,
from arch/arm64/kernel/asm-offsets.c:14:
include/linux/vtime.h: In function 'vtime_account_guest_enter':
include/linux/vtime.h:68:3: error: implicit declaration of function
'vtime_guest_enter' [-Werror=implicit-function-declaration]
68 | vtime_guest_enter(current);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h: In function 'vtime_account_guest_exit':
include/linux/vtime.h:76:3: error: implicit declaration of function
'vtime_guest_exit' [-Werror=implicit-function-declaration]
76 | vtime_guest_exit(current);
| ^~~~~~~~~~~~~~~~
include/linux/vtime.h: At top level:
include/linux/vtime.h:111:13: warning: conflicting types for
'vtime_guest_enter'
111 | extern void vtime_guest_enter(struct task_struct *tsk);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h:68:3: note: previous implicit declaration of
'vtime_guest_enter' was here
68 | vtime_guest_enter(current);
| ^~~~~~~~~~~~~~~~~
include/linux/vtime.h:112:13: warning: conflicting types for
'vtime_guest_exit'
112 | extern void vtime_guest_exit(struct task_struct *tsk);
| ^~~~~~~~~~~~~~~~
include/linux/vtime.h:76:3: note: previous implicit declaration of
'vtime_guest_exit' was here
76 | vtime_guest_exit(current);
| ^~~~~~~~~~~~~~~~
In file included from include/linux/kvm_host.h:25,
from arch/arm64/kernel/asm-offsets.c:14:
include/linux/context_tracking.h: In function
'context_tracking_guest_enter_irqoff':
include/linux/context_tracking.h:79:9: error: 'return' with a value, in
function returning void [-Werror=return-type]
79 | return context_tracking_enabled_this_cpu();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/context_tracking.h:74:29: note: declared here
74 | static __always_inline void context_tracking_guest_enter_irqoff(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm64/kernel/asm-offsets.c:14:
include/linux/kvm_host.h: In function 'guest_enter_irqoff':
> include/linux/kvm_host.h:354:6: error: invalid use of void
expression
354 | if (!context_tracking_guest_enter_irqoff()) {
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:116: arch/arm64/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1235: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:215: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +354 include/linux/kvm_host.h
334
335 /* must be called with irqs disabled */
336 static __always_inline void guest_enter_irqoff(void)
337 {
338 /*
339 * This is running in ioctl context so its safe to assume that it's the
340 * stime pending cputime to flush.
341 */
342 instrumentation_begin();
343 vtime_account_guest_enter();
344 instrumentation_end();
345
346 /*
347 * KVM does not hold any references to rcu protected data when it
348 * switches CPU into a guest mode. In fact switching to a guest mode
349 * is very similar to exiting to userspace from rcu point of view. In
350 * addition CPU may stay in a guest mode for quite a long time (up to
351 * one time slice). Lets treat guest mode as quiescent state, just like
352 * we do with user-mode execution.
353 */
354 if (!context_tracking_guest_enter_irqoff()) {
355 instrumentation_begin();
356 rcu_virt_note_context_switch(smp_processor_id());
357 instrumentation_end();
358 }
359 }
360
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org