git bisect start
# bad: [0adb32858b0bddf4ada5f364a84ed60b196dbcda] Linux 4.16
git bisect bad 0adb32858b0bddf4ada5f364a84ed60b196dbcda
# good: [d8a5b80568a9cb66810e75b182018e9edb68e8ff] Linux 4.15
git bisect good d8a5b80568a9cb66810e75b182018e9edb68e8ff
# good: [c14376de3a1befa70d9811ca2872d47367b48767] printk: Wake klogd when passing console_lock owner
git bisect good c14376de3a1befa70d9811ca2872d47367b48767
# good: [2246edfaf88dc368e8671b04afd54412625df60a] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
git bisect good 2246edfaf88dc368e8671b04afd54412625df60a
# good: [dfe8db22372873d205c78a9fd5370b1b088a2b87] Merge tag 'drm-misc-fixes-2018-02-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
git bisect good dfe8db22372873d205c78a9fd5370b1b088a2b87
# bad: [4665c6b04651e96c1e2eb9129a30d6055040ff73] Merge tag 'linux-can-fixes-for-4.16-20180312' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
git bisect bad 4665c6b04651e96c1e2eb9129a30d6055040ff73
# bad: [3499de32fa6b608ba646380ac3838d30a2558ead] Merge tag 'linux-kselftest-4.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
git bisect bad 3499de32fa6b608ba646380ac3838d30a2558ead
# good: [65738c6b461a8bb0b056e024299738f7cc9a28b7] Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
git bisect good 65738c6b461a8bb0b056e024299738f7cc9a28b7
# good: [c23a75759191e84f4ba15b85ea4f97bd544b5362] Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good c23a75759191e84f4ba15b85ea4f97bd544b5362
# bad: [d4858aaf6bd8a90e2dacc0dfec2077e334dcedbf] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
git bisect bad d4858aaf6bd8a90e2dacc0dfec2077e334dcedbf
# good: [0eb578009a1d530a11846d7c4733a5db04730884] tools/kvm_stat: use a more pythonic way to iterate over dictionaries
git bisect good 0eb578009a1d530a11846d7c4733a5db04730884
# good: [fe2a3027e74e40a3ece3a4c1e4e51403090a907a] KVM: x86: fix backward migration with async_PF
git bisect good fe2a3027e74e40a3ece3a4c1e4e51403090a907a
# bad: [7607b7174405aec7441ff6c970833c463114040a] KVM: SVM: install RSM intercept
git bisect bad 7607b7174405aec7441ff6c970833c463114040a
# good: [e5699f56bc91a286f006b0728085e0b4e8f5749b] crypto: ccp: Fix sparse, use plain integer as NULL pointer
git bisect good e5699f56bc91a286f006b0728085e0b4e8f5749b
# good: [3e233385ef4a217a2812115ed84d4be36eb16817] KVM: SVM: no need to call access_ok() in LAUNCH_MEASURE command
git bisect good 3e233385ef4a217a2812115ed84d4be36eb16817
# first bad commit: [7607b7174405aec7441ff6c970833c463114040a] KVM: SVM: install RSM intercept
# NOTE
I was doing "invert" bisection.. so the bad commit is actually what seems to have fixed the issue:
RSM instruction is used by the SMM handler to return from SMM mode.
Currently, rsm causes a #UD - which results in instruction fetch, decode,
and emulate. By installing the RSM intercept we can avoid the instruction
fetch since we know that #VMEXIT was due to rsm.
The patch is required for the SEV guest, because in case of SEV guest
memory is encrypted with guest-specific key and hypervisor will not
able to fetch the instruction bytes from the guest memory.
# BISECT LOG
git bisect start f4ada5f364a84ed 60b196dbcda] Linux 4.16 4ada5f364a84ed6 0b196dbcda 66810e75b182018 e9edb68e8ff] Linux 4.15 6810e75b182018e 9edb68e8ff a70d9811ca2872d 47367b48767] printk: Wake klogd when passing console_lock owner 70d9811ca2872d4 7367b48767 68e8671b04afd54 412625df60a] Merge tag 'for-linus' of git://git. kernel. org/pub/ scm/linux/ kernel/ git/rdma/ rdma 8e8671b04afd544 12625df60a d205c78a9fd5370 b1b088a2b87] Merge tag 'drm-misc- fixes-2018- 02-21' of git://anongit. freedesktop. org/drm/ drm-misc into drm-fixes 205c78a9fd5370b 1b088a2b87 6c1e2eb9129a30d 6055040ff73] Merge tag 'linux- can-fixes- for-4.16- 20180312' of ssh://gitolite. kernel. org/pub/ scm/linux/ kernel/ git/mkl/ linux-can c1e2eb9129a30d6 055040ff73 8ba646380ac3838 d30a2558ead] Merge tag 'linux- kselftest- 4.16-rc4' of git://git. kernel. org/pub/ scm/linux/ kernel/ git/shuah/ linux-kselftest ba646380ac3838d 30a2558ead b0b056e02429973 8f7cc9a28b7] Merge tag 'arm64-fixes' of git://git. kernel. org/pub/ scm/linux/ kernel/ git/arm64/ linux 0b056e024299738 f7cc9a28b7 4f4ba15b85ea4f9 7bd544b5362] Merge branch 'x86-urgent- for-linus' of git://git. kernel. org/pub/ scm/linux/ kernel/ git/tip/ tip f4ba15b85ea4f97 bd544b5362 0e2dacc0dfec207 7e334dcedbf] Merge tag 'for-linus' of git://git. kernel. org/pub/ scm/virt/ kvm/kvm e2dacc0dfec2077 e334dcedbf 0a11846d7c4733a 5db04730884] tools/kvm_stat: use a more pythonic way to iterate over dictionaries a11846d7c4733a5 db04730884 a3ece3a4c1e4e51 403090a907a] KVM: x86: fix backward migration with async_PF 3ece3a4c1e4e514 03090a907a c7441ff6c970833 c463114040a] KVM: SVM: install RSM intercept 7441ff6c970833c 463114040a 86f006b0728085e 0b4e8f5749b] crypto: ccp: Fix sparse, use plain integer as NULL pointer 6f006b0728085e0 b4e8f5749b 7a2812115ed84d4 be36eb16817] KVM: SVM: no need to call access_ok() in LAUNCH_MEASURE command a2812115ed84d4b e36eb16817 c7441ff6c970833 c463114040a] KVM: SVM: install RSM intercept
# bad: [0adb32858b0bdd
git bisect bad 0adb32858b0bddf
# good: [d8a5b80568a9cb
git bisect good d8a5b80568a9cb6
# good: [c14376de3a1bef
git bisect good c14376de3a1befa
# good: [2246edfaf88dc3
git bisect good 2246edfaf88dc36
# good: [dfe8db22372873
git bisect good dfe8db22372873d
# bad: [4665c6b04651e9
git bisect bad 4665c6b04651e96
# bad: [3499de32fa6b60
git bisect bad 3499de32fa6b608
# good: [65738c6b461a8b
git bisect good 65738c6b461a8bb
# good: [c23a75759191e8
git bisect good c23a75759191e84
# bad: [d4858aaf6bd8a9
git bisect bad d4858aaf6bd8a90
# good: [0eb578009a1d53
git bisect good 0eb578009a1d530
# good: [fe2a3027e74e40
git bisect good fe2a3027e74e40a
# bad: [7607b7174405ae
git bisect bad 7607b7174405aec
# good: [e5699f56bc91a2
git bisect good e5699f56bc91a28
# good: [3e233385ef4a21
git bisect good 3e233385ef4a217
# first bad commit: [7607b7174405ae
# NOTE
I was doing "invert" bisection.. so the bad commit is actually what seems to have fixed the issue:
commit 7607b7174405aec 7441ff6c970833c 463114040a
Author: Brijesh Singh <email address hidden>
Date: Mon Feb 19 10:14:44 2018 -0600
KVM: SVM: install RSM intercept
RSM instruction is used by the SMM handler to return from SMM mode.
Currently, rsm causes a #UD - which results in instruction fetch, decode,
and emulate. By installing the RSM intercept we can avoid the instruction
fetch since we know that #VMEXIT was due to rsm.
The patch is required for the SEV guest, because in case of SEV guest
memory is encrypted with guest-specific key and hypervisor will not
able to fetch the instruction bytes from the guest memory.
Cc: Paolo Bonzini <email address hidden>
Cc: Radim Krčmář <email address hidden>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Borislav Petkov <email address hidden>
Cc: Tom Lendacky <email address hidden>
Signed-off-by: Brijesh Singh <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>