* [RFC PATCH 1/3] RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
2023-12-21 9:49 [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Chao Du
@ 2023-12-21 9:50 ` Chao Du
2023-12-21 9:50 ` [RFC PATCH 2/3] RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug() Chao Du
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Chao Du @ 2023-12-21 9:50 UTC (permalink / raw)
To: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
To indicate that the hypervisor has the capability for guest debug.
Also update the uapi header file.
Signed-off-by: Chao Du <duchao@eswincomputing.com>
---
arch/riscv/include/uapi/asm/kvm.h | 1 +
arch/riscv/kvm/vm.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/riscv/include/uapi/asm/kvm.h b/arch/riscv/include/uapi/asm/kvm.h
index 60d3b21dead7..288788f5faa0 100644
--- a/arch/riscv/include/uapi/asm/kvm.h
+++ b/arch/riscv/include/uapi/asm/kvm.h
@@ -17,6 +17,7 @@
#define __KVM_HAVE_IRQ_LINE
#define __KVM_HAVE_READONLY_MEM
+#define __KVM_HAVE_GUEST_DEBUG
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
diff --git a/arch/riscv/kvm/vm.c b/arch/riscv/kvm/vm.c
index 7e2b50c692c1..235b40ab82ea 100644
--- a/arch/riscv/kvm/vm.c
+++ b/arch/riscv/kvm/vm.c
@@ -187,6 +187,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_READONLY_MEM:
case KVM_CAP_MP_STATE:
case KVM_CAP_IMMEDIATE_EXIT:
+ case KVM_CAP_SET_GUEST_DEBUG:
r = 1;
break;
case KVM_CAP_NR_VCPUS:
--
2.17.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [RFC PATCH 2/3] RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
2023-12-21 9:49 [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Chao Du
2023-12-21 9:50 ` [RFC PATCH 1/3] RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability Chao Du
@ 2023-12-21 9:50 ` Chao Du
2023-12-21 9:50 ` [RFC PATCH 3/3] RISC-V: KVM: Handle breakpoint exits for VCPU Chao Du
2023-12-21 12:31 ` [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Anup Patel
3 siblings, 0 replies; 10+ messages in thread
From: Chao Du @ 2023-12-21 9:50 UTC (permalink / raw)
To: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
Update the guest_debug flags from userspace accordingly.
Route the breakpoint exceptions to HS mode if the VM is being debugged
by userspace, by clearing the corresponding bit in hedeleg CSR.
Signed-off-by: Chao Du <duchao@eswincomputing.com>
---
arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c
index e087c809073c..b8144434ff23 100644
--- a/arch/riscv/kvm/vcpu.c
+++ b/arch/riscv/kvm/vcpu.c
@@ -473,8 +473,19 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
struct kvm_guest_debug *dbg)
{
- /* TODO; To be implemented later. */
- return -EINVAL;
+ if (dbg->control & KVM_GUESTDBG_ENABLE) {
+ if (vcpu->guest_debug != dbg->control) {
+ vcpu->guest_debug = dbg->control;
+ csr_clear(CSR_HEDELEG, BIT(EXC_BREAKPOINT));
+ }
+ } else {
+ if (vcpu->guest_debug != 0) {
+ vcpu->guest_debug = 0;
+ csr_set(CSR_HEDELEG, BIT(EXC_BREAKPOINT));
+ }
+ }
+
+ return 0;
}
static void kvm_riscv_vcpu_setup_config(struct kvm_vcpu *vcpu)
--
2.17.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [RFC PATCH 3/3] RISC-V: KVM: Handle breakpoint exits for VCPU
2023-12-21 9:49 [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Chao Du
2023-12-21 9:50 ` [RFC PATCH 1/3] RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability Chao Du
2023-12-21 9:50 ` [RFC PATCH 2/3] RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug() Chao Du
@ 2023-12-21 9:50 ` Chao Du
2023-12-21 12:31 ` [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Anup Patel
3 siblings, 0 replies; 10+ messages in thread
From: Chao Du @ 2023-12-21 9:50 UTC (permalink / raw)
To: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
Exit to userspace for breakpoint traps. Set the exit_reason as
KVM_EXIT_DEBUG before exit.
Signed-off-by: Chao Du <duchao@eswincomputing.com>
---
arch/riscv/kvm/vcpu_exit.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/riscv/kvm/vcpu_exit.c b/arch/riscv/kvm/vcpu_exit.c
index 2415722c01b8..5761f95abb60 100644
--- a/arch/riscv/kvm/vcpu_exit.c
+++ b/arch/riscv/kvm/vcpu_exit.c
@@ -204,6 +204,10 @@ int kvm_riscv_vcpu_exit(struct kvm_vcpu *vcpu, struct kvm_run *run,
if (vcpu->arch.guest_context.hstatus & HSTATUS_SPV)
ret = kvm_riscv_vcpu_sbi_ecall(vcpu, run);
break;
+ case EXC_BREAKPOINT:
+ run->exit_reason = KVM_EXIT_DEBUG;
+ ret = 0;
+ break;
default:
break;
}
--
2.17.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support
2023-12-21 9:49 [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Chao Du
` (2 preceding siblings ...)
2023-12-21 9:50 ` [RFC PATCH 3/3] RISC-V: KVM: Handle breakpoint exits for VCPU Chao Du
@ 2023-12-21 12:31 ` Anup Patel
2023-12-22 8:28 ` Chao Du
3 siblings, 1 reply; 10+ messages in thread
From: Anup Patel @ 2023-12-21 12:31 UTC (permalink / raw)
To: Chao Du; +Cc: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
On Thu, Dec 21, 2023 at 3:21 PM Chao Du <duchao@eswincomputing.com> wrote:
>
> This series implements KVM Guest Debug on RISC-V. Currently, we can
> debug RISC-V KVM guest from the host side, with software breakpoints.
>
> A brief test was done on QEMU RISC-V hypervisor emulator.
>
> A TODO list which will be added later:
> 1. HW breakpoints support
> 2. Test cases
Himanshu has already done the complete HW breakpoint implementation
in OpenSBI, Linux RISC-V, and KVM RISC-V. This is based on the upcoming
SBI debug trigger extension draft proposal.
(Refer, https://lists.riscv.org/g/tech-debug/message/1261)
There are also RISE projects to track these efforts:
https://wiki.riseproject.dev/pages/viewpage.action?pageId=394541
https://wiki.riseproject.dev/pages/viewpage.action?pageId=394545
Currently, we are in the process of upstreaming the OpenSBI support
for SBI debug trigger extension. The Linux RISC-V and KVM RISC-V
patches require SBI debug trigger extension and Sdtrig extension to
be frozen which will happen next year 2024.
Regards,
Anup
>
> This series is based on Linux 6.7-rc6 and is also available at:
> https://github.com/Du-Chao/linux/tree/riscv_gd_sw
>
> The matched QEMU is available at:
> https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
>
> Chao Du (3):
> RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
> RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
> RISC-V: KVM: Handle breakpoint exits for VCPU
>
> arch/riscv/include/uapi/asm/kvm.h | 1 +
> arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
> arch/riscv/kvm/vcpu_exit.c | 4 ++++
> arch/riscv/kvm/vm.c | 1 +
> 4 files changed, 19 insertions(+), 2 deletions(-)
>
> --
> 2.17.1
>
>
> --
> kvm-riscv mailing list
> kvm-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support
2023-12-21 12:31 ` [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support Anup Patel
@ 2023-12-22 8:28 ` Chao Du
2023-12-25 2:52 ` Chao Du
2024-01-04 11:29 ` Anup Patel
0 siblings, 2 replies; 10+ messages in thread
From: Chao Du @ 2023-12-22 8:28 UTC (permalink / raw)
To: Anup Patel
Cc: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
On 2023-12-21 21:01, Anup Patel <apatel@ventanamicro.com> wrote:
>
> On Thu, Dec 21, 2023 at 3:21 PM Chao Du <duchao@eswincomputing.com> wrote:
> >
> > This series implements KVM Guest Debug on RISC-V. Currently, we can
> > debug RISC-V KVM guest from the host side, with software breakpoints.
> >
> > A brief test was done on QEMU RISC-V hypervisor emulator.
> >
> > A TODO list which will be added later:
> > 1. HW breakpoints support
> > 2. Test cases
>
> Himanshu has already done the complete HW breakpoint implementation
> in OpenSBI, Linux RISC-V, and KVM RISC-V. This is based on the upcoming
> SBI debug trigger extension draft proposal.
> (Refer, https://lists.riscv.org/g/tech-debug/message/1261)
>
> There are also RISE projects to track these efforts:
> https://wiki.riseproject.dev/pages/viewpage.action?pageId=394541
> https://wiki.riseproject.dev/pages/viewpage.action?pageId=394545
>
> Currently, we are in the process of upstreaming the OpenSBI support
> for SBI debug trigger extension. The Linux RISC-V and KVM RISC-V
> patches require SBI debug trigger extension and Sdtrig extension to
> be frozen which will happen next year 2024.
>
> Regards,
> Anup
>
Hi Anup,
Thank you for the information and your great work on the SBI
Debug Trigger Extension proposal.
So I think that 'HW breakpoints support' in the above TODO list
will be taken care of by Himanshu following the extension proposal.
On the other hand, if I understand correctly, the software
breakpoint part of KVM Guest Debug has no dependency on the new
extension since it does not use the trigger module. Just an
ebreak substitution is made.
So may I know your suggestion about this RFC? Both in KVM and QEMU.
Regards,
Chao
> >
> > This series is based on Linux 6.7-rc6 and is also available at:
> > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> >
> > The matched QEMU is available at:
> > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> >
> > Chao Du (3):
> > RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
> > RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
> > RISC-V: KVM: Handle breakpoint exits for VCPU
> >
> > arch/riscv/include/uapi/asm/kvm.h | 1 +
> > arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
> > arch/riscv/kvm/vcpu_exit.c | 4 ++++
> > arch/riscv/kvm/vm.c | 1 +
> > 4 files changed, 19 insertions(+), 2 deletions(-)
> >
> > --
> > 2.17.1
> >
> >
> > --
> > kvm-riscv mailing list
> > kvm-riscv@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Re: [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support
2023-12-22 8:28 ` Chao Du
@ 2023-12-25 2:52 ` Chao Du
2024-01-04 10:22 ` Chao Du
2024-01-04 11:29 ` Anup Patel
1 sibling, 1 reply; 10+ messages in thread
From: Chao Du @ 2023-12-25 2:52 UTC (permalink / raw)
To: Anup Patel
Cc: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
On 2023-12-22 16:28, Chao Du <duchao@eswincomputing.com> wrote:
>
> On 2023-12-21 21:01, Anup Patel <apatel@ventanamicro.com> wrote:
> >
> > On Thu, Dec 21, 2023 at 3:21 PM Chao Du <duchao@eswincomputing.com> wrote:
> > >
> > > This series implements KVM Guest Debug on RISC-V. Currently, we can
> > > debug RISC-V KVM guest from the host side, with software breakpoints.
> > >
> > > A brief test was done on QEMU RISC-V hypervisor emulator.
> > >
> > > A TODO list which will be added later:
> > > 1. HW breakpoints support
> > > 2. Test cases
> >
> > Himanshu has already done the complete HW breakpoint implementation
> > in OpenSBI, Linux RISC-V, and KVM RISC-V. This is based on the upcoming
> > SBI debug trigger extension draft proposal.
> > (Refer, https://lists.riscv.org/g/tech-debug/message/1261)
> >
> > There are also RISE projects to track these efforts:
> > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394541
> > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394545
> >
> > Currently, we are in the process of upstreaming the OpenSBI support
> > for SBI debug trigger extension. The Linux RISC-V and KVM RISC-V
> > patches require SBI debug trigger extension and Sdtrig extension to
> > be frozen which will happen next year 2024.
> >
> > Regards,
> > Anup
> >
>
> Hi Anup,
>
> Thank you for the information and your great work on the SBI
> Debug Trigger Extension proposal.
>
> So I think that 'HW breakpoints support' in the above TODO list
> will be taken care of by Himanshu following the extension proposal.
>
> On the other hand, if I understand correctly, the software
> breakpoint part of KVM Guest Debug has no dependency on the new
> extension since it does not use the trigger module. Just an
> ebreak substitution is made.
>
> So may I know your suggestion about this RFC? Both in KVM and QEMU.
>
> Regards,
> Chao
>
Hi Anup and all,
I'm still waiting for your comment and suggestion for the next step.
:)
Thanks
> > >
> > > This series is based on Linux 6.7-rc6 and is also available at:
> > > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> > >
> > > The matched QEMU is available at:
> > > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> > >
> > > Chao Du (3):
> > > RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
> > > RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
> > > RISC-V: KVM: Handle breakpoint exits for VCPU
> > >
> > > arch/riscv/include/uapi/asm/kvm.h | 1 +
> > > arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
> > > arch/riscv/kvm/vcpu_exit.c | 4 ++++
> > > arch/riscv/kvm/vm.c | 1 +
> > > 4 files changed, 19 insertions(+), 2 deletions(-)
> > >
> > > --
> > > 2.17.1
> > >
> > >
> > > --
> > > kvm-riscv mailing list
> > > kvm-riscv@lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support
2023-12-25 2:52 ` Chao Du
@ 2024-01-04 10:22 ` Chao Du
0 siblings, 0 replies; 10+ messages in thread
From: Chao Du @ 2024-01-04 10:22 UTC (permalink / raw)
To: Anup Patel
Cc: kvm, kvm-riscv, anup, atishp, dbarboza, paul.walmsley, palmer,
aou
Hi all,
Gentle ping.
In my point of view, these patches focus on the software breakpoint
of KVM Guest Debug, which are independent of the SBI extensions Anup
mentioned.
Please correct me if I'm wrong.
Thanks,
Chao
On 2023-12-25 10:52, Chao Du <duchao@eswincomputing.com> wrote:
>
> On 2023-12-22 16:28, Chao Du <duchao@eswincomputing.com> wrote:
> >
> > On 2023-12-21 21:01, Anup Patel <apatel@ventanamicro.com> wrote:
> > >
> > > On Thu, Dec 21, 2023 at 3:21 PM Chao Du <duchao@eswincomputing.com> wrote:
> > > >
> > > > This series implements KVM Guest Debug on RISC-V. Currently, we can
> > > > debug RISC-V KVM guest from the host side, with software breakpoints.
> > > >
> > > > A brief test was done on QEMU RISC-V hypervisor emulator.
> > > >
> > > > A TODO list which will be added later:
> > > > 1. HW breakpoints support
> > > > 2. Test cases
> > >
> > > Himanshu has already done the complete HW breakpoint implementation
> > > in OpenSBI, Linux RISC-V, and KVM RISC-V. This is based on the upcoming
> > > SBI debug trigger extension draft proposal.
> > > (Refer, https://lists.riscv.org/g/tech-debug/message/1261)
> > >
> > > There are also RISE projects to track these efforts:
> > > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394541
> > > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394545
> > >
> > > Currently, we are in the process of upstreaming the OpenSBI support
> > > for SBI debug trigger extension. The Linux RISC-V and KVM RISC-V
> > > patches require SBI debug trigger extension and Sdtrig extension to
> > > be frozen which will happen next year 2024.
> > >
> > > Regards,
> > > Anup
> > >
> >
> > Hi Anup,
> >
> > Thank you for the information and your great work on the SBI
> > Debug Trigger Extension proposal.
> >
> > So I think that 'HW breakpoints support' in the above TODO list
> > will be taken care of by Himanshu following the extension proposal.
> >
> > On the other hand, if I understand correctly, the software
> > breakpoint part of KVM Guest Debug has no dependency on the new
> > extension since it does not use the trigger module. Just an
> > ebreak substitution is made.
> >
> > So may I know your suggestion about this RFC? Both in KVM and QEMU.
> >
> > Regards,
> > Chao
> >
>
> Hi Anup and all,
>
> I'm still waiting for your comment and suggestion for the next step.
> :)
>
> Thanks
>
> > > >
> > > > This series is based on Linux 6.7-rc6 and is also available at:
> > > > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> > > >
> > > > The matched QEMU is available at:
> > > > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> > > >
> > > > Chao Du (3):
> > > > RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
> > > > RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
> > > > RISC-V: KVM: Handle breakpoint exits for VCPU
> > > >
> > > > arch/riscv/include/uapi/asm/kvm.h | 1 +
> > > > arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
> > > > arch/riscv/kvm/vcpu_exit.c | 4 ++++
> > > > arch/riscv/kvm/vm.c | 1 +
> > > > 4 files changed, 19 insertions(+), 2 deletions(-)
> > > >
> > > > --
> > > > 2.17.1
> > > >
> > > >
> > > > --
> > > > kvm-riscv mailing list
> > > > kvm-riscv@lists.infradead.org
> > > > http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support
2023-12-22 8:28 ` Chao Du
2023-12-25 2:52 ` Chao Du
@ 2024-01-04 11:29 ` Anup Patel
2024-01-05 9:42 ` Chao Du
1 sibling, 1 reply; 10+ messages in thread
From: Anup Patel @ 2024-01-04 11:29 UTC (permalink / raw)
To: Chao Du
Cc: Anup Patel, kvm, kvm-riscv, atishp, dbarboza, paul.walmsley,
palmer, aou
On Fri, Dec 22, 2023 at 1:59 PM Chao Du <duchao@eswincomputing.com> wrote:
>
> On 2023-12-21 21:01, Anup Patel <apatel@ventanamicro.com> wrote:
> >
> > On Thu, Dec 21, 2023 at 3:21 PM Chao Du <duchao@eswincomputing.com> wrote:
> > >
> > > This series implements KVM Guest Debug on RISC-V. Currently, we can
> > > debug RISC-V KVM guest from the host side, with software breakpoints.
> > >
> > > A brief test was done on QEMU RISC-V hypervisor emulator.
> > >
> > > A TODO list which will be added later:
> > > 1. HW breakpoints support
> > > 2. Test cases
> >
> > Himanshu has already done the complete HW breakpoint implementation
> > in OpenSBI, Linux RISC-V, and KVM RISC-V. This is based on the upcoming
> > SBI debug trigger extension draft proposal.
> > (Refer, https://lists.riscv.org/g/tech-debug/message/1261)
> >
> > There are also RISE projects to track these efforts:
> > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394541
> > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394545
> >
> > Currently, we are in the process of upstreaming the OpenSBI support
> > for SBI debug trigger extension. The Linux RISC-V and KVM RISC-V
> > patches require SBI debug trigger extension and Sdtrig extension to
> > be frozen which will happen next year 2024.
> >
> > Regards,
> > Anup
> >
>
> Hi Anup,
>
> Thank you for the information and your great work on the SBI
> Debug Trigger Extension proposal.
>
> So I think that 'HW breakpoints support' in the above TODO list
> will be taken care of by Himanshu following the extension proposal.
>
> On the other hand, if I understand correctly, the software
> breakpoint part of KVM Guest Debug has no dependency on the new
> extension since it does not use the trigger module. Just an
> ebreak substitution is made.
>
> So may I know your suggestion about this RFC? Both in KVM and QEMU.
Sorry for the delay in response due to holiday season other
stuff keeping me busy.
If this is about ebreak instruction virtualization then this series
needs following changes:
1) Update cover letter to indicate this series focus on ebreak
instruction virtualization
2) PATCH1 and PATCH2 can be merged into one PATCH1
3) Include a new patch which adds KVM selftest for ebreak
based guest debug. This selftest will test both:
A) Taking "ebreak" trap from guest as KVM_EXIT_DEBUG
in host user-space
B) Taking "ebreak" trap from guest as BREAKPOINT
exception in guest
Regards,
Anup
>
> Regards,
> Chao
>
> > >
> > > This series is based on Linux 6.7-rc6 and is also available at:
> > > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> > >
> > > The matched QEMU is available at:
> > > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> > >
> > > Chao Du (3):
> > > RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
> > > RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
> > > RISC-V: KVM: Handle breakpoint exits for VCPU
> > >
> > > arch/riscv/include/uapi/asm/kvm.h | 1 +
> > > arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
> > > arch/riscv/kvm/vcpu_exit.c | 4 ++++
> > > arch/riscv/kvm/vm.c | 1 +
> > > 4 files changed, 19 insertions(+), 2 deletions(-)
> > >
> > > --
> > > 2.17.1
> > >
> > >
> > > --
> > > kvm-riscv mailing list
> > > kvm-riscv@lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: Re: [RFC PATCH 0/3] RISC-V: KVM: Guest Debug Support
2024-01-04 11:29 ` Anup Patel
@ 2024-01-05 9:42 ` Chao Du
0 siblings, 0 replies; 10+ messages in thread
From: Chao Du @ 2024-01-05 9:42 UTC (permalink / raw)
To: Anup Patel
Cc: Anup Patel, kvm, kvm-riscv, atishp, dbarboza, paul.walmsley,
palmer, aou
On 2024-01-04 19:59, Anup Patel <anup@brainfault.org> wrote:
>
> On Fri, Dec 22, 2023 at 1:59 PM Chao Du <duchao@eswincomputing.com> wrote:
> >
> > On 2023-12-21 21:01, Anup Patel <apatel@ventanamicro.com> wrote:
> > >
> > > On Thu, Dec 21, 2023 at 3:21 PM Chao Du <duchao@eswincomputing.com> wrote:
> > > >
> > > > This series implements KVM Guest Debug on RISC-V. Currently, we can
> > > > debug RISC-V KVM guest from the host side, with software breakpoints.
> > > >
> > > > A brief test was done on QEMU RISC-V hypervisor emulator.
> > > >
> > > > A TODO list which will be added later:
> > > > 1. HW breakpoints support
> > > > 2. Test cases
> > >
> > > Himanshu has already done the complete HW breakpoint implementation
> > > in OpenSBI, Linux RISC-V, and KVM RISC-V. This is based on the upcoming
> > > SBI debug trigger extension draft proposal.
> > > (Refer, https://lists.riscv.org/g/tech-debug/message/1261)
> > >
> > > There are also RISE projects to track these efforts:
> > > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394541
> > > https://wiki.riseproject.dev/pages/viewpage.action?pageId=394545
> > >
> > > Currently, we are in the process of upstreaming the OpenSBI support
> > > for SBI debug trigger extension. The Linux RISC-V and KVM RISC-V
> > > patches require SBI debug trigger extension and Sdtrig extension to
> > > be frozen which will happen next year 2024.
> > >
> > > Regards,
> > > Anup
> > >
> >
> > Hi Anup,
> >
> > Thank you for the information and your great work on the SBI
> > Debug Trigger Extension proposal.
> >
> > So I think that 'HW breakpoints support' in the above TODO list
> > will be taken care of by Himanshu following the extension proposal.
> >
> > On the other hand, if I understand correctly, the software
> > breakpoint part of KVM Guest Debug has no dependency on the new
> > extension since it does not use the trigger module. Just an
> > ebreak substitution is made.
> >
> > So may I know your suggestion about this RFC? Both in KVM and QEMU.
>
> Sorry for the delay in response due to holiday season other
> stuff keeping me busy.
No problem. :)
>
> If this is about ebreak instruction virtualization then this series
> needs following changes:
> 1) Update cover letter to indicate this series focus on ebreak
> instruction virtualization
> 2) PATCH1 and PATCH2 can be merged into one PATCH1
> 3) Include a new patch which adds KVM selftest for ebreak
> based guest debug. This selftest will test both:
> A) Taking "ebreak" trap from guest as KVM_EXIT_DEBUG
> in host user-space
> B) Taking "ebreak" trap from guest as BREAKPOINT
> exception in guest
Sure, I will prepare a V2 series.
Thanks.
>
> Regards,
> Anup
>
> >
> > Regards,
> > Chao
> >
> > > >
> > > > This series is based on Linux 6.7-rc6 and is also available at:
> > > > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> > > >
> > > > The matched QEMU is available at:
> > > > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> > > >
> > > > Chao Du (3):
> > > > RISC-V: KVM: Enable the KVM_CAP_SET_GUEST_DEBUG capability
> > > > RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
> > > > RISC-V: KVM: Handle breakpoint exits for VCPU
> > > >
> > > > arch/riscv/include/uapi/asm/kvm.h | 1 +
> > > > arch/riscv/kvm/vcpu.c | 15 +++++++++++++--
> > > > arch/riscv/kvm/vcpu_exit.c | 4 ++++
> > > > arch/riscv/kvm/vm.c | 1 +
> > > > 4 files changed, 19 insertions(+), 2 deletions(-)
> > > >
> > > > --
> > > > 2.17.1
> > > >
> > > >
> > > > --
> > > > kvm-riscv mailing list
> > > > kvm-riscv@lists.infradead.org
> > > > http://lists.infradead.org/mailman/listinfo/kvm-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread