euleros inclusion category: feature bugzilla: NA CVE: NA
These two patches enable the support for vhost-net on RISC-V architecture.
The following two steps are performed to run a vm with vhost-net:
1. create virbr0 on riscv64 emulation $ brctl addbr virbr0 $ brctl stp virbr0 on $ ifconfig virbr0 up $ ifconfig virbr0 virbr0_ip netmask 255.255.255.0
2. boot a riscv64 guest OS on riscv64 emulation $ ./qemu-system-riscv64 -M virt,accel=kvm -m 1024M -cpu host -nographic \ -name guest=riscv-guest \ -smp 2 \ -kernel ./Image \ -drive file=./guest.img,format=raw,id=hd0 \ -device virtio-blk,drive=hd0 \ -netdev type=tap,vhost=on,script=./ifup.sh,downscript=./ifdown.sh,id=net0 \ -append "root=/dev/vda rw console=ttyS0 earlycon=sbi"
$ cat ifup.sh #!/bin/sh brctl addif virbr0 $1 ifconfig $1 up
$ cat ifdown.sh #!/bin/sh ifconfig $1 down brctl delif virbr0 $1
This brenchmark netperf is used to test the performance of vhost-net and virtio-net. The results are as follow:
$ ./netperf -H virbr0_ip -l 100 -t TCP_STREAM
vhost-net: Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec
131072 16384 16384 100.06 521.62
virtio-net: Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec
131072 16384 16384 292.86 292.86
Link: https://gitee.com/openeuler/kernel/issues/I1SQJ2
Yifei Jiang (2): RISC-V: KVM: enable ioeventfd capability RISC-V: KVM: kernel mmio read/write support
arch/riscv/kvm/Kconfig | 2 ++ arch/riscv/kvm/Makefile | 2 +- arch/riscv/kvm/vcpu_exit.c | 28 ++++++++++++++++++++++++++-- arch/riscv/kvm/vm.c | 1 + 4 files changed, 30 insertions(+), 3 deletions(-)