mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
virtio,pc,pci: fixes,cleanups,features
most of CXL support fixes, cleanups all over the place Signed-off-by: Michael S. Tsirkin <mst@redhat.com> -----BEGIN PGP SIGNATURE----- iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmKCuLIPHG1zdEByZWRo YXQuY29tAAoJECgfDbjSjVRpdDUH/12SmWaAo+0+SdIHgWFFxsmg3t/EdcO38fgi MV+GpYdbp6TlU3jdQhrMZYmFdkVVydBdxk93ujCLbFS0ixTsKj31j0IbZMfdcGgv SLqnV+E3JdHqnGP39q9a9rdwYWyqhkgHoldxilIFW76ngOSapaZVvnwnOMAMkf77 1LieL4/Xq7N9Ho86Zrs3IczQcf0czdJRDaFaSIu8GaHl8ELyuPhlSm6CSqqrEEWR PA/COQsLDbLOMxbfCi5v88r5aaxmGNZcGbXQbiH9qVHw65nlHyLH9UkNTdJn1du1 f2GYwwa7eekfw/LCvvVwxO1znJrj02sfFai7aAtQYbXPvjvQiqA= =xdSk -----END PGP SIGNATURE----- Merge tag 'for_upstream' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging virtio,pc,pci: fixes,cleanups,features most of CXL support fixes, cleanups all over the place Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # -----BEGIN PGP SIGNATURE----- # # iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmKCuLIPHG1zdEByZWRo # YXQuY29tAAoJECgfDbjSjVRpdDUH/12SmWaAo+0+SdIHgWFFxsmg3t/EdcO38fgi # MV+GpYdbp6TlU3jdQhrMZYmFdkVVydBdxk93ujCLbFS0ixTsKj31j0IbZMfdcGgv # SLqnV+E3JdHqnGP39q9a9rdwYWyqhkgHoldxilIFW76ngOSapaZVvnwnOMAMkf77 # 1LieL4/Xq7N9Ho86Zrs3IczQcf0czdJRDaFaSIu8GaHl8ELyuPhlSm6CSqqrEEWR # PA/COQsLDbLOMxbfCi5v88r5aaxmGNZcGbXQbiH9qVHw65nlHyLH9UkNTdJn1du1 # f2GYwwa7eekfw/LCvvVwxO1znJrj02sfFai7aAtQYbXPvjvQiqA= # =xdSk # -----END PGP SIGNATURE----- # gpg: Signature made Mon 16 May 2022 01:48:50 PM PDT # gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469 # gpg: issuer "mst@redhat.com" # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [undefined] # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # 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 git://git.kernel.org/pub/scm/virt/kvm/mst/qemu: (86 commits) vhost-user-scsi: avoid unlink(NULL) with fd passing virtio-net: don't handle mq request in userspace handler for vhost-vdpa vhost-vdpa: change name and polarity for vhost_vdpa_one_time_request() vhost-vdpa: backend feature should set only once vhost-net: fix improper cleanup in vhost_net_start vhost-vdpa: fix improper cleanup in net_init_vhost_vdpa virtio-net: align ctrl_vq index for non-mq guest for vhost_vdpa virtio-net: setup vhost_dev and notifiers for cvq only when feature is negotiated hw/i386/amd_iommu: Fix IOMMU event log encoding errors hw/i386: Make pic a property of common x86 base machine type hw/i386: Make pit a property of common x86 base machine type include/hw/pci/pcie_host: Correct PCIE_MMCFG_SIZE_MAX include/hw/pci/pcie_host: Correct PCIE_MMCFG_BUS_MASK docs/vhost-user: Clarifications for VHOST_USER_ADD/REM_MEM_REG vhost-user: more master/slave things virtio: add vhost support for virtio devices virtio: drop name parameter for virtio_init() virtio/vhost-user: dynamically assign VhostUserHostNotifiers hw/virtio/vhost-user: don't suppress F_CONFIG when supported include/hw: start documenting the vhost API ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
eec398119f
131 changed files with 5352 additions and 577 deletions
47
softmmu/vl.c
47
softmmu/vl.c
|
@ -93,6 +93,7 @@
|
|||
#include "qemu/config-file.h"
|
||||
#include "qemu/qemu-options.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "hw/cxl/cxl.h"
|
||||
#ifdef CONFIG_VIRTFS
|
||||
#include "fsdev/qemu-fsdev.h"
|
||||
#endif
|
||||
|
@ -120,6 +121,7 @@
|
|||
#include "qapi/qapi-visit-audio.h"
|
||||
#include "qapi/qapi-visit-block-core.h"
|
||||
#include "qapi/qapi-visit-compat.h"
|
||||
#include "qapi/qapi-visit-machine.h"
|
||||
#include "qapi/qapi-visit-ui.h"
|
||||
#include "qapi/qapi-commands-block-core.h"
|
||||
#include "qapi/qapi-commands-migration.h"
|
||||
|
@ -145,6 +147,12 @@ typedef struct BlockdevOptionsQueueEntry {
|
|||
|
||||
typedef QSIMPLEQ_HEAD(, BlockdevOptionsQueueEntry) BlockdevOptionsQueue;
|
||||
|
||||
typedef struct CXLFMWOptionQueueEntry {
|
||||
CXLFixedMemoryWindowOptions *opts;
|
||||
Location loc;
|
||||
QSIMPLEQ_ENTRY(CXLFMWOptionQueueEntry) entry;
|
||||
} CXLFMWOptionQueueEntry;
|
||||
|
||||
typedef struct ObjectOption {
|
||||
ObjectOptions *opts;
|
||||
QTAILQ_ENTRY(ObjectOption) next;
|
||||
|
@ -171,6 +179,8 @@ static int snapshot;
|
|||
static bool preconfig_requested;
|
||||
static QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list);
|
||||
static BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue);
|
||||
static QSIMPLEQ_HEAD(, CXLFMWOptionQueueEntry) CXLFMW_opts =
|
||||
QSIMPLEQ_HEAD_INITIALIZER(CXLFMW_opts);
|
||||
static bool nographic = false;
|
||||
static int mem_prealloc; /* force preallocation of physical target memory */
|
||||
static const char *vga_model = NULL;
|
||||
|
@ -1155,6 +1165,24 @@ static void parse_display(const char *p)
|
|||
}
|
||||
}
|
||||
|
||||
static void parse_cxl_fixed_memory_window(const char *optarg)
|
||||
{
|
||||
CXLFMWOptionQueueEntry *cfmws_entry;
|
||||
Visitor *v;
|
||||
|
||||
v = qobject_input_visitor_new_str(optarg, "cxl-fixed-memory-window",
|
||||
&error_fatal);
|
||||
cfmws_entry = g_new(CXLFMWOptionQueueEntry, 1);
|
||||
visit_type_CXLFixedMemoryWindowOptions(v, NULL, &cfmws_entry->opts,
|
||||
&error_fatal);
|
||||
if (!cfmws_entry->opts) {
|
||||
exit(1);
|
||||
}
|
||||
visit_free(v);
|
||||
loc_save(&cfmws_entry->loc);
|
||||
QSIMPLEQ_INSERT_TAIL(&CXLFMW_opts, cfmws_entry, entry);
|
||||
}
|
||||
|
||||
static inline bool nonempty_str(const char *str)
|
||||
{
|
||||
return str && *str;
|
||||
|
@ -2017,6 +2045,20 @@ static void qemu_create_late_backends(void)
|
|||
qemu_semihosting_console_init();
|
||||
}
|
||||
|
||||
static void cxl_set_opts(void)
|
||||
{
|
||||
while (!QSIMPLEQ_EMPTY(&CXLFMW_opts)) {
|
||||
CXLFMWOptionQueueEntry *cfmws_entry = QSIMPLEQ_FIRST(&CXLFMW_opts);
|
||||
|
||||
loc_restore(&cfmws_entry->loc);
|
||||
QSIMPLEQ_REMOVE_HEAD(&CXLFMW_opts, entry);
|
||||
cxl_fixed_memory_window_config(current_machine, cfmws_entry->opts,
|
||||
&error_fatal);
|
||||
qapi_free_CXLFixedMemoryWindowOptions(cfmws_entry->opts);
|
||||
g_free(cfmws_entry);
|
||||
}
|
||||
}
|
||||
|
||||
static void qemu_resolve_machine_memdev(void)
|
||||
{
|
||||
if (ram_memdev_id) {
|
||||
|
@ -2663,6 +2705,7 @@ void qmp_x_exit_preconfig(Error **errp)
|
|||
|
||||
qemu_init_board();
|
||||
qemu_create_cli_devices();
|
||||
cxl_fixed_memory_window_link_targets(errp);
|
||||
qemu_machine_creation_done();
|
||||
|
||||
if (loadvm) {
|
||||
|
@ -2843,6 +2886,9 @@ void qemu_init(int argc, char **argv, char **envp)
|
|||
exit(1);
|
||||
}
|
||||
break;
|
||||
case QEMU_OPTION_cxl_fixed_memory_window:
|
||||
parse_cxl_fixed_memory_window(optarg);
|
||||
break;
|
||||
case QEMU_OPTION_display:
|
||||
parse_display(optarg);
|
||||
break;
|
||||
|
@ -3678,6 +3724,7 @@ void qemu_init(int argc, char **argv, char **envp)
|
|||
|
||||
qemu_resolve_machine_memdev();
|
||||
parse_numa_opts(current_machine);
|
||||
cxl_set_opts();
|
||||
|
||||
if (vmstate_dump_file) {
|
||||
/* dump and exit */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue