mbox series

[RFC,0/4] target/riscv/kvm: QEMU support for KVM Guest Debug on RISC-V

Message ID 20231221094923.7349-1-duchao@eswincomputing.com (mailing list archive)
Headers show
Series target/riscv/kvm: QEMU support for KVM Guest Debug on RISC-V | expand

Message

Chao Du Dec. 21, 2023, 9:49 a.m. UTC
This series implements QEMU 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

This series is based on QEMU 8.2.0-rc4 and is also available at:
https://github.com/Du-Chao/qemu/tree/riscv_gd_sw

This is dependent on KVM side changes:
https://github.com/Du-Chao/linux/tree/riscv_gd_sw

Chao Du (4):
  target/riscv/kvm: add software breakpoints support
  target/riscv/kvm: implement kvm_arch_update_guest_debug()
  target/riscv/kvm: handle the exit with debug reason
  linux-headers: enable KVM GUEST DEBUG for RISC-V

 accel/kvm/kvm-all.c           |   8 +--
 include/sysemu/kvm.h          |   6 +-
 linux-headers/asm-riscv/kvm.h |   1 +
 target/arm/kvm64.c            |   6 +-
 target/i386/kvm/kvm.c         |   6 +-
 target/mips/kvm.c             |   6 +-
 target/ppc/kvm.c              |   6 +-
 target/riscv/kvm/kvm-cpu.c    | 101 ++++++++++++++++++++++++++++++++++
 target/s390x/kvm/kvm.c        |   6 +-
 9 files changed, 130 insertions(+), 16 deletions(-)

--
2.17.1

Comments

Daniel Henrique Barboza Dec. 22, 2023, 2:16 p.m. UTC | #1
Hi,

It seems that we still need the kernel KVM side to be sorted out first [1],
so I believe we should wait a bit until we can review this RFC. Otherwise we
might risk reviewing something that has to be changed later.


[1] https://lore.kernel.org/kvm/20231221095002.7404-1-duchao@eswincomputing.com/


Thanks,

Daniel

On 12/21/23 06:49, Chao Du wrote:
> This series implements QEMU 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
> 
> This series is based on QEMU 8.2.0-rc4 and is also available at:
> https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> 
> This is dependent on KVM side changes:
> https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> 
> Chao Du (4):
>    target/riscv/kvm: add software breakpoints support
>    target/riscv/kvm: implement kvm_arch_update_guest_debug()
>    target/riscv/kvm: handle the exit with debug reason
>    linux-headers: enable KVM GUEST DEBUG for RISC-V
> 
>   accel/kvm/kvm-all.c           |   8 +--
>   include/sysemu/kvm.h          |   6 +-
>   linux-headers/asm-riscv/kvm.h |   1 +
>   target/arm/kvm64.c            |   6 +-
>   target/i386/kvm/kvm.c         |   6 +-
>   target/mips/kvm.c             |   6 +-
>   target/ppc/kvm.c              |   6 +-
>   target/riscv/kvm/kvm-cpu.c    | 101 ++++++++++++++++++++++++++++++++++
>   target/s390x/kvm/kvm.c        |   6 +-
>   9 files changed, 130 insertions(+), 16 deletions(-)
> 
> --
> 2.17.1
>
Chao Du April 9, 2024, 9:43 a.m. UTC | #2
Hi Daniel and all,

The KVM patches have been reviewd and are in the queue.
https://lore.kernel.org/all/20240402062628.5425-1-duchao@eswincomputing.com/

Could you please review in the QEMU side ?
Then I will rebase this series with your comments.

Some Notes:
1. As the first stage, only the software breakpoints is implemented.
2. A 'corner case' in which the debug exception is not inserted by the
debugger, need to be re-injected to the guest. This is not handled yet
in this series.

Thanks,
Chao


On 2023-12-22 22:16, Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote:
> 
> Hi,
> 
> It seems that we still need the kernel KVM side to be sorted out first [1],
> so I believe we should wait a bit until we can review this RFC. Otherwise we
> might risk reviewing something that has to be changed later.
> 
> 
> [1] https://lore.kernel.org/kvm/20231221095002.7404-1-duchao@eswincomputing.com/
> 
> 
> Thanks,
> 
> Daniel
> 
> On 12/21/23 06:49, Chao Du wrote:
> > This series implements QEMU 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
> > 
> > This series is based on QEMU 8.2.0-rc4 and is also available at:
> > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> > 
> > This is dependent on KVM side changes:
> > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> > 
> > Chao Du (4):
> >    target/riscv/kvm: add software breakpoints support
> >    target/riscv/kvm: implement kvm_arch_update_guest_debug()
> >    target/riscv/kvm: handle the exit with debug reason
> >    linux-headers: enable KVM GUEST DEBUG for RISC-V
> > 
> >   accel/kvm/kvm-all.c           |   8 +--
> >   include/sysemu/kvm.h          |   6 +-
> >   linux-headers/asm-riscv/kvm.h |   1 +
> >   target/arm/kvm64.c            |   6 +-
> >   target/i386/kvm/kvm.c         |   6 +-
> >   target/mips/kvm.c             |   6 +-
> >   target/ppc/kvm.c              |   6 +-
> >   target/riscv/kvm/kvm-cpu.c    | 101 ++++++++++++++++++++++++++++++++++
> >   target/s390x/kvm/kvm.c        |   6 +-
> >   9 files changed, 130 insertions(+), 16 deletions(-)
> > 
> > --
> > 2.17.1
> >
Chao Du April 15, 2024, 1:47 a.m. UTC | #3
Gentle ping...

On 2024-04-09 17:43, Chao Du <duchao@eswincomputing.com> wrote:
> 
> Hi Daniel and all,
> 
> The KVM patches have been reviewd and are in the queue.
> https://lore.kernel.org/all/20240402062628.5425-1-duchao@eswincomputing.com/
> 
> Could you please review in the QEMU side ?
> Then I will rebase this series with your comments.
> 
> Some Notes:
> 1. As the first stage, only the software breakpoints is implemented.
> 2. A 'corner case' in which the debug exception is not inserted by the
> debugger, need to be re-injected to the guest. This is not handled yet
> in this series.
> 
> Thanks,
> Chao
> 
> 
> On 2023-12-22 22:16, Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote:
> > 
> > Hi,
> > 
> > It seems that we still need the kernel KVM side to be sorted out first [1],
> > so I believe we should wait a bit until we can review this RFC. Otherwise we
> > might risk reviewing something that has to be changed later.
> > 
> > 
> > [1] https://lore.kernel.org/kvm/20231221095002.7404-1-duchao@eswincomputing.com/
> > 
> > 
> > Thanks,
> > 
> > Daniel
> > 
> > On 12/21/23 06:49, Chao Du wrote:
> > > This series implements QEMU 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
> > > 
> > > This series is based on QEMU 8.2.0-rc4 and is also available at:
> > > https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> > > 
> > > This is dependent on KVM side changes:
> > > https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> > > 
> > > Chao Du (4):
> > >    target/riscv/kvm: add software breakpoints support
> > >    target/riscv/kvm: implement kvm_arch_update_guest_debug()
> > >    target/riscv/kvm: handle the exit with debug reason
> > >    linux-headers: enable KVM GUEST DEBUG for RISC-V
> > > 
> > >   accel/kvm/kvm-all.c           |   8 +--
> > >   include/sysemu/kvm.h          |   6 +-
> > >   linux-headers/asm-riscv/kvm.h |   1 +
> > >   target/arm/kvm64.c            |   6 +-
> > >   target/i386/kvm/kvm.c         |   6 +-
> > >   target/mips/kvm.c             |   6 +-
> > >   target/ppc/kvm.c              |   6 +-
> > >   target/riscv/kvm/kvm-cpu.c    | 101 ++++++++++++++++++++++++++++++++++
> > >   target/s390x/kvm/kvm.c        |   6 +-
> > >   9 files changed, 130 insertions(+), 16 deletions(-)
> > > 
> > > --
> > > 2.17.1
> > >
Daniel Henrique Barboza April 16, 2024, 9:25 a.m. UTC | #4
On 4/9/24 06:43, Chao Du wrote:
> Hi Daniel and all,
> 
> The KVM patches have been reviewd and are in the queue.
> https://lore.kernel.org/all/20240402062628.5425-1-duchao@eswincomputing.com/
> 
> Could you please review in the QEMU side ?
> Then I will rebase this series with your comments.
> 
> Some Notes:
> 1. As the first stage, only the software breakpoints is implemented.
> 2. A 'corner case' in which the debug exception is not inserted by the
> debugger, need to be re-injected to the guest. This is not handled yet
> in this series.

Aside from the comments I made in patch 1 w.r.t checks that (perhaps) can be moved
to kvm-all.c, it looks good to me.

Since you're changing kvm-all.c we'll need Paolo to ack the changes in patch 1, so
feel free to wait for him to take a look before sending v2.


Thanks,


Daniel

> 
> Thanks,
> Chao
> 
> 
> On 2023-12-22 22:16, Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote:
>>
>> Hi,
>>
>> It seems that we still need the kernel KVM side to be sorted out first [1],
>> so I believe we should wait a bit until we can review this RFC. Otherwise we
>> might risk reviewing something that has to be changed later.
>>
>>
>> [1] https://lore.kernel.org/kvm/20231221095002.7404-1-duchao@eswincomputing.com/
>>
>>
>> Thanks,
>>
>> Daniel
>>
>> On 12/21/23 06:49, Chao Du wrote:
>>> This series implements QEMU 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
>>>
>>> This series is based on QEMU 8.2.0-rc4 and is also available at:
>>> https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
>>>
>>> This is dependent on KVM side changes:
>>> https://github.com/Du-Chao/linux/tree/riscv_gd_sw
>>>
>>> Chao Du (4):
>>>     target/riscv/kvm: add software breakpoints support
>>>     target/riscv/kvm: implement kvm_arch_update_guest_debug()
>>>     target/riscv/kvm: handle the exit with debug reason
>>>     linux-headers: enable KVM GUEST DEBUG for RISC-V
>>>
>>>    accel/kvm/kvm-all.c           |   8 +--
>>>    include/sysemu/kvm.h          |   6 +-
>>>    linux-headers/asm-riscv/kvm.h |   1 +
>>>    target/arm/kvm64.c            |   6 +-
>>>    target/i386/kvm/kvm.c         |   6 +-
>>>    target/mips/kvm.c             |   6 +-
>>>    target/ppc/kvm.c              |   6 +-
>>>    target/riscv/kvm/kvm-cpu.c    | 101 ++++++++++++++++++++++++++++++++++
>>>    target/s390x/kvm/kvm.c        |   6 +-
>>>    9 files changed, 130 insertions(+), 16 deletions(-)
>>>
>>> --
>>> 2.17.1
>>>
Chao Du May 20, 2024, 10:22 a.m. UTC | #5
Hi Paolo,

As Daniel suggested, could you please take a look at this series ?

Thanks,
Chao

On 2024-04-16 17:25, Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote:
> 
> On 4/9/24 06:43, Chao Du wrote:
> > Hi Daniel and all,
> > 
> > The KVM patches have been reviewd and are in the queue.
> > https://lore.kernel.org/all/20240402062628.5425-1-duchao@eswincomputing.com/
> > 
> > Could you please review in the QEMU side ?
> > Then I will rebase this series with your comments.
> > 
> > Some Notes:
> > 1. As the first stage, only the software breakpoints is implemented.
> > 2. A 'corner case' in which the debug exception is not inserted by the
> > debugger, need to be re-injected to the guest. This is not handled yet
> > in this series.
> 
> Aside from the comments I made in patch 1 w.r.t checks that (perhaps) can be moved
> to kvm-all.c, it looks good to me.
> 
> Since you're changing kvm-all.c we'll need Paolo to ack the changes in patch 1, so
> feel free to wait for him to take a look before sending v2.
> 
> 
> Thanks,
> 
> 
> Daniel
> 
> > 
> > Thanks,
> > Chao
> > 
> > 
> > On 2023-12-22 22:16, Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote:
> >>
> >> Hi,
> >>
> >> It seems that we still need the kernel KVM side to be sorted out first [1],
> >> so I believe we should wait a bit until we can review this RFC. Otherwise we
> >> might risk reviewing something that has to be changed later.
> >>
> >>
> >> [1] https://lore.kernel.org/kvm/20231221095002.7404-1-duchao@eswincomputing.com/
> >>
> >>
> >> Thanks,
> >>
> >> Daniel
> >>
> >> On 12/21/23 06:49, Chao Du wrote:
> >>> This series implements QEMU 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
> >>>
> >>> This series is based on QEMU 8.2.0-rc4 and is also available at:
> >>> https://github.com/Du-Chao/qemu/tree/riscv_gd_sw
> >>>
> >>> This is dependent on KVM side changes:
> >>> https://github.com/Du-Chao/linux/tree/riscv_gd_sw
> >>>
> >>> Chao Du (4):
> >>>     target/riscv/kvm: add software breakpoints support
> >>>     target/riscv/kvm: implement kvm_arch_update_guest_debug()
> >>>     target/riscv/kvm: handle the exit with debug reason
> >>>     linux-headers: enable KVM GUEST DEBUG for RISC-V
> >>>
> >>>    accel/kvm/kvm-all.c           |   8 +--
> >>>    include/sysemu/kvm.h          |   6 +-
> >>>    linux-headers/asm-riscv/kvm.h |   1 +
> >>>    target/arm/kvm64.c            |   6 +-
> >>>    target/i386/kvm/kvm.c         |   6 +-
> >>>    target/mips/kvm.c             |   6 +-
> >>>    target/ppc/kvm.c              |   6 +-
> >>>    target/riscv/kvm/kvm-cpu.c    | 101 ++++++++++++++++++++++++++++++++++
> >>>    target/s390x/kvm/kvm.c        |   6 +-
> >>>    9 files changed, 130 insertions(+), 16 deletions(-)
> >>>
> >>> --
> >>> 2.17.1
> >>>