Re: [PATCH v1 2/3] locking/pvqspinlock, hv: Enable PV qspinlock for Hyper-V

From: kbuild test robot
Date: Thu Sep 13 2018 - 12:17:01 EST


Hi Yi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on v4.19-rc3 next-20180913]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Yi-Sun/Enable-PV-qspinlock-for-Hyper-V/20180913-220827
config: x86_64-fedora-25 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

arch/x86/hyperv/hv_spinlock.c: In function 'hv_init_spinlocks':
>> arch/x86/hyperv/hv_spinlock.c:86:2: error: implicit declaration of function '__pv_init_lock_hash'; did you mean 'spin_lock_bh'? [-Werror=implicit-function-declaration]
__pv_init_lock_hash();
^~~~~~~~~~~~~~~~~~~
spin_lock_bh
>> arch/x86/hyperv/hv_spinlock.c:87:42: error: '__pv_queued_spin_lock_slowpath' undeclared (first use in this function); did you mean 'queued_spin_lock_slowpath'?
pv_lock_ops.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
queued_spin_lock_slowpath
arch/x86/hyperv/hv_spinlock.c:87:42: note: each undeclared identifier is reported only once for each function it appears in
In file included from arch/x86/include/asm/msr.h:246:0,
from arch/x86/include/asm/processor.h:21,
from arch/x86/include/asm/cpufeature.h:5,
from arch/x86/include/asm/thread_info.h:53,
from include/linux/thread_info.h:38,
from arch/x86/include/asm/preempt.h:7,
from include/linux/preempt.h:81,
from include/linux/smp.h:60,
from include/linux/kernel_stat.h:5,
from arch/x86/hyperv/hv_spinlock.c:22:
arch/x86/include/asm/paravirt.h:775:35: error: '__raw_callee_save___pv_queued_spin_unlock' undeclared (first use in this function); did you mean '__raw_callee_save_hv_vcpu_is_preempted'?
((struct paravirt_callee_save) { __raw_callee_save_##func })
^
arch/x86/hyperv/hv_spinlock.c:88:35: note: in expansion of macro 'PV_CALLEE_SAVE'
pv_lock_ops.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock);
^~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +86 arch/x86/hyperv/hv_spinlock.c

74
75 void __init hv_init_spinlocks(void)
76 {
77 if (!hv_pvspin ||
78 !apic ||
79 !(ms_hyperv.hints & HV_X64_CLUSTER_IPI_RECOMMENDED) ||
80 !(ms_hyperv.features & HV_X64_MSR_GUEST_IDLE_AVAILABLE)) {
81 pr_warn("hv: PV spinlocks disabled\n");
82 return;
83 }
84 pr_info("hv: PV spinlocks enabled\n");
85
> 86 __pv_init_lock_hash();
> 87 pv_lock_ops.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
88 pv_lock_ops.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock);
89 pv_lock_ops.wait = hv_qlock_wait;
90 pv_lock_ops.kick = hv_qlock_kick;
91 pv_lock_ops.vcpu_is_preempted = PV_CALLEE_SAVE(hv_vcpu_is_preempted);
92 }
93

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip