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

Reply via email to