Revision cd461c8445392d02c268d79f7ed68387b440c4b3 authored by lyx634449800 on 08 April 2024, 02:00:03 UTC, committed by Michael Tokarev on 09 April 2024, 17:42:59 UTC
The set_config callback function vhost_vdpa_device_get_config in
vdpa-dev does not fetch the current device status from the hardware
device, causing the guest os to not receive the latest device status
information.

The hardware updates the config status of the vdpa device and then
notifies the os. The guest os receives an interrupt notification,
triggering a get_config access in the kernel, which then enters qemu
internally. Ultimately, the vhost_vdpa_device_get_config function of
vdpa-dev is called

One scenario encountered is when the device needs to bring down the
vdpa net device. After modifying the status field of virtio_net_config
in the hardware, it sends an interrupt notification. However, the guest
os always receives the STATUS field as VIRTIO_NET_S_LINK_UP.

Signed-off-by: Yuxue Liu <yuxue.liu@jaguarmicro.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20240408020003.1979-1-yuxue.liu@jaguarmicro.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 6ae72f609a21cfc56bf655cd4bcded5d07691ce7)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
1 parent b57b102
History
File Mode Size
.github
.gitlab
.gitlab-ci.d
accel
audio
authz
backends
block
bsd-user
chardev
common-user
configs
contrib
crypto
disas
docs
dump
ebpf
fpu
fsdev
gdb-xml
gdbstub
host
hw
include
io
libdecnumber
linux-headers
linux-user
migration
monitor
nbd
net
pc-bios
plugins
po
python
qapi
qga
qobject
qom
replay
roms
scripts
scsi
semihosting
stats
storage-daemon
stubs
subprojects
system
target
tcg
tests
tools
trace
ui
util
.dir-locals.el -rw-r--r-- 75 bytes
.editorconfig -rw-r--r-- 951 bytes
.exrc -rw-r--r-- 220 bytes
.gdbinit -rw-r--r-- 326 bytes
.git-blame-ignore-revs -rw-r--r-- 474 bytes
.gitattributes -rw-r--r-- 100 bytes
.gitignore -rw-r--r-- 194 bytes
.gitlab-ci.yml -rw-r--r-- 884 bytes
.gitmodules -rw-r--r-- 1.5 KB
.gitpublish -rw-r--r-- 1.6 KB
.mailmap -rw-r--r-- 10.7 KB
.patchew.yml -rw-r--r-- 8.3 KB
.readthedocs.yml -rw-r--r-- 621 bytes
.travis.yml -rw-r--r-- 7.6 KB
COPYING -rw-r--r-- 17.6 KB
COPYING.LIB -rw-r--r-- 25.9 KB
Kconfig -rw-r--r-- 132 bytes
Kconfig.host -rw-r--r-- 677 bytes
LICENSE -rw-r--r-- 1.1 KB
MAINTAINERS -rw-r--r-- 95.8 KB
Makefile -rw-r--r-- 11.4 KB
README.rst -rw-r--r-- 5.4 KB
VERSION -rw-r--r-- 6 bytes
block.c -rw-r--r-- 254.7 KB
blockdev-nbd.c -rw-r--r-- 7.6 KB
blockdev.c -rw-r--r-- 113.9 KB
blockjob.c -rw-r--r-- 18.1 KB
configure -rwxr-xr-x 56.2 KB
cpu-common.c -rw-r--r-- 12.2 KB
cpu-target.c -rw-r--r-- 11.2 KB
event-loop-base.c -rw-r--r-- 4.0 KB
gitdm.config -rw-r--r-- 1.9 KB
hmp-commands-info.hx -rw-r--r-- 21.7 KB
hmp-commands.hx -rw-r--r-- 54.8 KB
iothread.c -rw-r--r-- 11.6 KB
job-qmp.c -rw-r--r-- 4.3 KB
job.c -rw-r--r-- 32.4 KB
memory_ldst.c.inc -rw-r--r-- 15.7 KB
meson.build -rw-r--r-- 158.8 KB
meson_options.txt -rw-r--r-- 18.5 KB
module-common.c -rw-r--r-- 113 bytes
os-posix.c -rw-r--r-- 7.6 KB
os-win32.c -rw-r--r-- 2.0 KB
page-vary-common.c -rw-r--r-- 1.6 KB
page-vary-target.c -rw-r--r-- 1.2 KB
pythondeps.toml -rw-r--r-- 1.5 KB
qemu-bridge-helper.c -rw-r--r-- 11.9 KB
qemu-edid.c -rw-r--r-- 3.7 KB
qemu-img-cmds.hx -rw-r--r-- 5.5 KB
qemu-img.c -rw-r--r-- 166.0 KB
qemu-io-cmds.c -rw-r--r-- 72.3 KB
qemu-io.c -rw-r--r-- 17.9 KB
qemu-keymap.c -rw-r--r-- 7.6 KB
qemu-nbd.c -rw-r--r-- 39.7 KB
qemu-options.hx -rw-r--r-- 250.2 KB
qemu.nsi -rw-r--r-- 6.7 KB
qemu.sasl -rw-r--r-- 1.7 KB
replication.c -rw-r--r-- 2.5 KB
trace-events -rw-r--r-- 2.4 KB
version.rc -rw-r--r-- 867 bytes

README.rst

back to top