mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
virtio,pc,pci: features, cleanups, fixes
more memslots support in libvhost-user support PCIe Gen5/Gen6 link speeds in pcie more traces in vdpa network simulation devices support in vdpa SMBIOS type 9 descriptor implementation Bump max_cpus to 4096 vcpus in q35 aw-bits and granule options in VIRTIO-IOMMU Support report NUMA nodes for device memory using GI in acpi Beginning of shutdown event support in pvpanic fixes, cleanups all over the place. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> -----BEGIN PGP SIGNATURE----- iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmXw0TMPHG1zdEByZWRo YXQuY29tAAoJECgfDbjSjVRp8x4H+gLMoGwaGAX7gDGPgn2Ix4j/3kO77ZJ9X9k/ 1KqZu/9eMS1j2Ei+vZqf05w7qRjxxhwDq3ilEXF/+UFqgAehLqpRRB8j5inqvzYt +jv0DbL11PBp/oFjWcytm5CbiVsvq8KlqCF29VNzc162XdtcduUOWagL96y8lJfZ uPrOoyeR7SMH9lp3LLLHWgu+9W4nOS03RroZ6Umj40y5B7yR0Rrppz8lMw5AoQtr 0gMRnFhYXeiW6CXdz+Tzcr7XfvkkYDi/j7ibiNSURLBfOpZa6Y8+kJGKxz5H1K1G 6ZY4PBcOpQzl+NMrktPHogczgJgOK10t+1i/R3bGZYw2Qn/93Eg= =C0UU -----END PGP SIGNATURE----- Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging virtio,pc,pci: features, cleanups, fixes more memslots support in libvhost-user support PCIe Gen5/Gen6 link speeds in pcie more traces in vdpa network simulation devices support in vdpa SMBIOS type 9 descriptor implementation Bump max_cpus to 4096 vcpus in q35 aw-bits and granule options in VIRTIO-IOMMU Support report NUMA nodes for device memory using GI in acpi Beginning of shutdown event support in pvpanic fixes, cleanups all over the place. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # -----BEGIN PGP SIGNATURE----- # # iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmXw0TMPHG1zdEByZWRo # YXQuY29tAAoJECgfDbjSjVRp8x4H+gLMoGwaGAX7gDGPgn2Ix4j/3kO77ZJ9X9k/ # 1KqZu/9eMS1j2Ei+vZqf05w7qRjxxhwDq3ilEXF/+UFqgAehLqpRRB8j5inqvzYt # +jv0DbL11PBp/oFjWcytm5CbiVsvq8KlqCF29VNzc162XdtcduUOWagL96y8lJfZ # uPrOoyeR7SMH9lp3LLLHWgu+9W4nOS03RroZ6Umj40y5B7yR0Rrppz8lMw5AoQtr # 0gMRnFhYXeiW6CXdz+Tzcr7XfvkkYDi/j7ibiNSURLBfOpZa6Y8+kJGKxz5H1K1G # 6ZY4PBcOpQzl+NMrktPHogczgJgOK10t+1i/R3bGZYw2Qn/93Eg= # =C0UU # -----END PGP SIGNATURE----- # gpg: Signature made Tue 12 Mar 2024 22:03:31 GMT # gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469 # gpg: issuer "mst@redhat.com" # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full] # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67 # Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469 * tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu: (68 commits) docs/specs/pvpanic: document shutdown event hw/cxl: Fix missing reserved data in CXL Device DVSEC hmat acpi: Fix out of bounds access due to missing use of indirection hmat acpi: Do not add Memory Proximity Domain Attributes Structure targetting non existent memory. qemu-options.hx: Document the virtio-iommu-pci aw-bits option hw/arm/virt: Set virtio-iommu aw-bits default value to 48 hw/i386/q35: Set virtio-iommu aw-bits default value to 39 virtio-iommu: Add an option to define the input range width virtio-iommu: Trace domain range limits as unsigned int qemu-options.hx: Document the virtio-iommu-pci granule option virtio-iommu: Change the default granule to the host page size virtio-iommu: Add a granule property hw/i386/acpi-build: Add support for SRAT Generic Initiator structures hw/acpi: Implement the SRAT GI affinity structure qom: new object to associate device to NUMA node hw/i386/pc: Inline pc_cmos_init() into pc_cmos_init_late() and remove it hw/i386/pc: Set "normal" boot device order in pc_basic_device_init() hw/i386/pc: Avoid one use of the current_machine global hw/i386/pc: Remove "rtc_state" link again Revert "hw/i386/pc: Confine system flash handling to pc_sysfw" ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org> # Conflicts: # hw/core/machine.c
This commit is contained in:
commit
6fc6931231
56 changed files with 1428 additions and 384 deletions
|
@ -1839,7 +1839,9 @@ is sent by the front-end.
|
|||
When the ``VHOST_USER_PROTOCOL_F_SHARED_OBJECT`` protocol
|
||||
feature has been successfully negotiated, this message can be submitted
|
||||
by the backend to remove themselves from to the virtio-dmabuf shared
|
||||
table API. The shared table will remove the back-end device associated with
|
||||
table API. Only the back-end owning the entry (i.e., the one that first added
|
||||
it) will have permission to remove it. Otherwise, the message is ignored.
|
||||
The shared table will remove the back-end device associated with
|
||||
the UUID. If ``VHOST_USER_PROTOCOL_F_REPLY_ACK`` is negotiated, and the
|
||||
back-end sets the ``VHOST_USER_NEED_REPLY`` flag, the front-end must respond
|
||||
with zero when operation is successfully completed, or non-zero otherwise.
|
||||
|
|
|
@ -29,6 +29,8 @@ bit 1
|
|||
a guest panic has happened and will be handled by the guest;
|
||||
the host should record it or report it, but should not affect
|
||||
the execution of the guest.
|
||||
bit 2
|
||||
a regular guest shutdown has happened and should be processed by the host
|
||||
|
||||
PCI Interface
|
||||
-------------
|
||||
|
|
|
@ -99,3 +99,4 @@ Emulated Devices
|
|||
devices/canokey.rst
|
||||
devices/usb-u2f.rst
|
||||
devices/igb.rst
|
||||
devices/vdpa-net.rst
|
||||
|
|
121
docs/system/devices/vdpa-net.rst
Normal file
121
docs/system/devices/vdpa-net.rst
Normal file
|
@ -0,0 +1,121 @@
|
|||
vdpa net
|
||||
============
|
||||
|
||||
This document explains the setup and usage of the vdpa network device.
|
||||
The vdpa network device is a paravirtualized vdpa emulate device.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
VDPA net devices support dirty page bitmap mark and vring state saving and recovery.
|
||||
|
||||
Users can use this VDPA device for live migration simulation testing in a nested virtualization environment.
|
||||
|
||||
Registers layout
|
||||
----------------
|
||||
|
||||
The vdpa device add live migrate registers layout as follow::
|
||||
|
||||
Offset Register Name Bitwidth Associated vq
|
||||
0x0 LM_LOGGING_CTRL 4bits
|
||||
0x10 LM_BASE_ADDR_LOW 32bits
|
||||
0x14 LM_BASE_ADDR_HIGH 32bits
|
||||
0x18 LM_END_ADDR_LOW 32bits
|
||||
0x1c LM_END_ADDR_HIGH 32bits
|
||||
0x20 LM_RING_STATE_OFFSET 32bits vq0
|
||||
0x24 LM_RING_STATE_OFFSET 32bits vq1
|
||||
0x28 LM_RING_STATE_OFFSET 32bits vq2
|
||||
......
|
||||
0x20+1023*4 LM_RING_STATE_OFFSET 32bits vq1023
|
||||
|
||||
These registers are extended at the end of the notify bar space.
|
||||
|
||||
Architecture diagram
|
||||
--------------------
|
||||
::
|
||||
|
||||
|------------------------------------------------------------------------|
|
||||
| guest-L1-user-space |
|
||||
| |
|
||||
| |----------------------------------------|
|
||||
| | [virtio-net driver] |
|
||||
| | ^ guest-L2-src(iommu=on) |
|
||||
| |--------------|-------------------------|
|
||||
| | | qemu-L2-src(viommu) |
|
||||
| [dpdk-vdpa]<->[vhost socket]<-+->[vhost-user backend(iommu=on)] |
|
||||
--------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------
|
||||
| ^ guest-L1-kernel-space |
|
||||
| | |
|
||||
| [VFIO] |
|
||||
| ^ |
|
||||
| | guest-L1-src(iommu=on) |
|
||||
--------|-----------------------------------------------------------------
|
||||
--------|-----------------------------------------------------------------
|
||||
| [vdpa net device(iommu=on)] [manager nic device] |
|
||||
| | | |
|
||||
| | | |
|
||||
| [tap device] qemu-L1-src(viommu) | |
|
||||
------------------------------------------------+-------------------------
|
||||
|
|
||||
|
|
||||
--------------------- |
|
||||
| kernel net bridge |<-----
|
||||
| virbr0 |<----------------------------------
|
||||
--------------------- |
|
||||
|
|
||||
|
|
||||
-------------------------------------------------------------------------- |
|
||||
| guest-L1-user-space | |
|
||||
| | |
|
||||
| |----------------------------------------| |
|
||||
| | [virtio-net driver] | |
|
||||
| | ^ guest-L2-dst(iommu=on) | |
|
||||
| |--------------|-------------------------| |
|
||||
| | | qemu-L2-dst(viommu) | |
|
||||
| [dpdk-vdpa]<->[vhost socket]<-+->[vhost-user backend(iommu=on)] | |
|
||||
-------------------------------------------------------------------------- |
|
||||
-------------------------------------------------------------------------- |
|
||||
| ^ guest-L1-kernel-space | |
|
||||
| | | |
|
||||
| [VFIO] | |
|
||||
| ^ | |
|
||||
| | guest-L1-dst(iommu=on) | |
|
||||
--------|----------------------------------------------------------------- |
|
||||
--------|----------------------------------------------------------------- |
|
||||
| [vdpa net device(iommu=on)] [manager nic device]----------------+----
|
||||
| | |
|
||||
| | |
|
||||
| [tap device] qemu-L1-dst(viommu) |
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
|
||||
Device properties
|
||||
-----------------
|
||||
|
||||
The Virtio vdpa device can be configured with the following properties:
|
||||
|
||||
* ``vdpa=on`` open vdpa device emulated.
|
||||
|
||||
Usages
|
||||
--------
|
||||
This patch add virtio sriov support and vdpa live migrate support.
|
||||
You can open vdpa by set xml file as follow::
|
||||
|
||||
<qemu:commandline xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
||||
<qemu:arg value='-device'/>
|
||||
<qemu:arg value='intel-iommu,intremap=on,device-iotlb=on,aw-bits=48'/>
|
||||
<qemu:arg value='-netdev'/>
|
||||
<qemu:arg value='tap,id=hostnet1,script=no,downscript=no,vhost=off'/>
|
||||
<qemu:arg value='-device'/>
|
||||
<qemu:arg value='virtio-net-pci,netdev=hostnet1,id=net1,mac=56:4a:b7:4f:4d:a9,bus=pci.6,addr=0x0,iommu_platform=on,ats=on,vdpa=on'/>
|
||||
</qemu:commandline>
|
||||
|
||||
Limitations
|
||||
-----------
|
||||
1. Dependent on tap device with param ``vhost=off``.
|
||||
2. Nested virtualization environment only supports ``q35`` machines.
|
||||
3. Current only support split vring live migrate.
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue