From: gaosong <gaosong@loongson.cn>
Hi
This series adds KVM put/get support for msgint CSRs and introduces
msgint feature checks. It also adds kvm_dintc_realize() when
kvm_irqchip_in_kernel is enabled, which creates and initializes the DINTC
device in kernel mode.
About Testing:
1. run script with '-cpu max,msgint=on' and 'virt,dmsi=on.'
'
./build/qemu-system-loongarch64 -accel kvm \
-bios /usr/share/edk2/loongarch64/QEMU_EFI-silent-pflash.raw \
-cpu max,msgint=on\
-smp 4 \
-machine virt,dmsi=on,kernel_irqchip=on\
-m 16G \
-netdev tap,id=net0,ifname=tap0,script=/root/net.sh,downscript=no,vhost=on,queues=4 \
-device virtio-net-pci,netdev=net0,mq=on,vectors=128,mac=52:54:00:12:34:56 \
-monitor telnet:localhost:4418,server,nowait \
-device virtio-gpu-pci \
-drive if=none,id=disk0,file=/home/kvm/lns23.qcow2,format=qcow2 \
-device virtio-blk-pci,drive=disk0,id=virtio_disk0 \
--nographic
'
2 the vm can work well with with net test, such as netperf or iperf test.
V4:
Rebase,and fix build error.
V3:
Rebase,add patch4 to disable msgint in KVM model.
Thanks,
Song Gao
Song Gao (3):
target/loongarch: Add kvm support dintc
Add dintc kvm_irqchip_in_kernel support
target/loongarch: KVM disable msgint
hw/intc/loongarch_dintc.c | 13 ++++++
hw/intc/loongarch_dintc_kvm.c | 48 ++++++++++++++++++++
hw/intc/meson.build | 2 +
include/hw/intc/loongarch_dintc.h | 10 +++++
target/loongarch/cpu.c | 8 ++--
target/loongarch/cpu.h | 1 +
target/loongarch/kvm/kvm.c | 74 +++++++++++++++++++++++++++++++
7 files changed, 153 insertions(+), 3 deletions(-)
create mode 100644 hw/intc/loongarch_dintc_kvm.c
--
2.47.3