lkml.org 
[lkml]   [2021]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 0/9] KVM: my debug patch queue
    Date
    Hi!

    I would like to publish two debug features which were needed for other stuff
    I work on.

    One is the reworked lx-symbols script which now actually works on at least
    gdb 9.1 (gdb 9.2 was reported to fail to load the debug symbols from the kernel
    for some reason, not related to this patch) and upstream qemu.

    The other feature is the ability to trap all guest exceptions (on SVM for now)
    and see them in kvmtrace prior to potential merge to double/triple fault.

    This can be very useful and I already had to manually patch KVM a few
    times for this.
    I will, once time permits, implement this feature on Intel as well.

    V2:

    * Some more refactoring and workarounds for lx-symbols script

    * added KVM_GUESTDBG_BLOCKEVENTS flag to enable 'block interrupts on
    single step' together with KVM_CAP_SET_GUEST_DEBUG2 capability
    to indicate which guest debug flags are supported.

    This is a replacement for unconditional block of interrupts on single
    step that was done in previous version of this patch set.
    Patches to qemu to use that feature will be sent soon.

    * Reworked the the 'intercept all exceptions for debug' feature according
    to the review feedback:

    - renamed the parameter that enables the feature and
    moved it to common kvm module.
    (only SVM part is currently implemented though)

    - disable the feature for SEV guests as was suggested during the review
    - made the vmexit table const again, as was suggested in the review as well.

    Best regards,
    Maxim Levitsky

    Maxim Levitsky (9):
    scripts/gdb: rework lx-symbols gdb script
    KVM: introduce KVM_CAP_SET_GUEST_DEBUG2
    KVM: x86: implement KVM_CAP_SET_GUEST_DEBUG2
    KVM: aarch64: implement KVM_CAP_SET_GUEST_DEBUG2
    KVM: s390x: implement KVM_CAP_SET_GUEST_DEBUG2
    KVM: x86: implement KVM_GUESTDBG_BLOCKEVENTS
    KVM: SVM: split svm_handle_invalid_exit
    KVM: x86: add force_intercept_exceptions_mask
    KVM: SVM: implement force_intercept_exceptions_mask

    Documentation/virt/kvm/api.rst | 4 +
    arch/arm64/include/asm/kvm_host.h | 4 +
    arch/arm64/kvm/arm.c | 2 +
    arch/arm64/kvm/guest.c | 5 -
    arch/s390/include/asm/kvm_host.h | 4 +
    arch/s390/kvm/kvm-s390.c | 3 +
    arch/x86/include/asm/kvm_host.h | 12 ++
    arch/x86/include/uapi/asm/kvm.h | 1 +
    arch/x86/kvm/svm/svm.c | 87 +++++++++++--
    arch/x86/kvm/svm/svm.h | 6 +-
    arch/x86/kvm/x86.c | 14 ++-
    arch/x86/kvm/x86.h | 2 +
    include/uapi/linux/kvm.h | 1 +
    kernel/module.c | 8 +-
    scripts/gdb/linux/symbols.py | 203 ++++++++++++++++++++----------
    15 files changed, 272 insertions(+), 84 deletions(-)

    --
    2.26.2


    \
     
     \ /
      Last update: 2021-04-01 20:14    [W:7.435 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site