Re: [PATCH 2/4] KVM: Add tlb remote flush callback in kvm_x86_ops.
From: kbuild test robot
Date: Mon Jul 02 2018 - 22:40:14 EST
Hi Tianyu,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on kvm/linux-next]
[also build test ERROR on v4.18-rc3 next-20180702]
[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/Tianyu-Lan/KVM-x86-hyper-V-Introduce-PV-guest-address-space-mapping-flush-support/20180703-012046
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
arch/powerpc/kvm/../../../virt/kvm/kvm_main.c: In function 'kvm_flush_remote_tlbs':
>> arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:265:6: error: 'kvm_x86_ops' undeclared (first use in this function); did you mean 'kvm_xive_ops'?
if (kvm_x86_ops->tlb_remote_flush &&
^~~~~~~~~~~
kvm_xive_ops
arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:265:6: note: each undeclared identifier is reported only once for each function it appears in
vim +265 arch/powerpc/kvm/../../../virt/kvm/kvm_main.c
255
256 #ifndef CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL
257 void kvm_flush_remote_tlbs(struct kvm *kvm)
258 {
259 long dirty_count;
260
261 /*
262 * Call tlb_remote_flush first and go back old way when
263 * return failure.
264 */
> 265 if (kvm_x86_ops->tlb_remote_flush &&
266 !kvm_x86_ops->tlb_remote_flush(kvm))
267 return;
268
269 /*
270 * Read tlbs_dirty before setting KVM_REQ_TLB_FLUSH in
271 * kvm_make_all_cpus_request.
272 */
273 dirty_count = smp_load_acquire(&kvm->tlbs_dirty);
274
275 /*
276 * We want to publish modifications to the page tables before reading
277 * mode. Pairs with a memory barrier in arch-specific code.
278 * - x86: smp_mb__after_srcu_read_unlock in vcpu_enter_guest
279 * and smp_mb in walk_shadow_page_lockless_begin/end.
280 * - powerpc: smp_mb in kvmppc_prepare_to_enter.
281 *
282 * There is already an smp_mb__after_atomic() before
283 * kvm_make_all_cpus_request() reads vcpu->mode. We reuse that
284 * barrier here.
285 */
286 if (kvm_make_all_cpus_request(kvm, KVM_REQ_TLB_FLUSH))
287 ++kvm->stat.remote_tlb_flush;
288 cmpxchg(&kvm->tlbs_dirty, dirty_count, 0);
289 }
290 EXPORT_SYMBOL_GPL(kvm_flush_remote_tlbs);
291 #endif
292
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip