tree:
https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git x86/fixes
head: cbf296087190a1b9172fe419a5df194302829bf7
commit: cbf296087190a1b9172fe419a5df194302829bf7 [1/1] x86/kvm: Handle async page faults
directly through do_page_fault()
config: x86_64-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
git checkout cbf296087190a1b9172fe419a5df194302829bf7
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
arch/x86/mm/fault.c: In function 'do_page_fault':
> arch/x86/mm/fault.c:1525:6: error: implicit declaration of
function 'kvm_handle_async_pf' [-Werror=implicit-function-declaration]
if (kvm_handle_async_pf(regs, hw_error_code, address))
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/kvm_handle_async_pf +1525 arch/x86/mm/fault.c
1503
1504 dotraplinkage void
1505 do_page_fault(struct pt_regs *regs, unsigned long hw_error_code,
1506 unsigned long address)
1507 {
1508 prefetchw(¤t->mm->mmap_sem);
1509 /*
1510 * KVM has two types of events that are, logically, interrupts, but
1511 * are unfortunately delivered using the #PF vector. These events are
1512 * "you just accessed valid memory, but the host doesn't have it right
1513 * not, so I'll put you to sleep if you continue" and "that memory
1514 * you tried to access earlier is available now."
1515 *
1516 * We are relying on the interrupted context being sane (valid
1517 * RSP, relevant locks not held, etc.), which is fine as long as
1518 * the the interrupted context had IF=1. We are also relying on
1519 * the KVM async pf type field and CR2 being read consistently
1520 * instead of getting values from real and async page faults
1521 * mixed up.
1522 *
1523 * Fingers crossed.
1524 */
1525 if (kvm_handle_async_pf(regs, hw_error_code, address))
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org