919ae3dd11
PVRDMA is the QEMU implementation of VMware's paravirtualized RDMA device. It works with its Linux Kernel driver AS IS, no need for any special guest modifications. While it complies with the VMware device, it can also communicate with bare metal RDMA-enabled machines and does not require an RDMA HCA in the host, it can work with Soft-RoCE (rxe). It does not require the whole guest RAM to be pinned allowing memory over-commit and, even if not implemented yet, migration support will be possible with some HW assistance. Implementation is divided into 2 components, rdma general and pvRDMA specific functions and structures. The second PVRDMA sub-module - interaction with PCI layer. - Device configuration and setup (MSIX, BARs etc). - Setup of DSR (Device Shared Resources) - Setup of device ring. - Device management. Reviewed-by: Dotan Barak <dotanb@mellanox.com> Reviewed-by: Zhu Yanjun <yanjun.zhu@oracle.com> Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
189 lines
5.9 KiB
Makefile
189 lines
5.9 KiB
Makefile
#######################################################################
|
|
# Common libraries for tools and emulators
|
|
stub-obj-y = stubs/ crypto/
|
|
util-obj-y = util/ qobject/ qapi/
|
|
util-obj-y += qmp-introspect.o qapi-types.o qapi-visit.o qapi-event.o
|
|
|
|
chardev-obj-y = chardev/
|
|
|
|
#######################################################################
|
|
# block-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
block-obj-y += nbd/
|
|
block-obj-y += block.o blockjob.o
|
|
block-obj-y += block/ scsi/
|
|
block-obj-y += qemu-io-cmds.o
|
|
block-obj-$(CONFIG_REPLICATION) += replication.o
|
|
|
|
block-obj-m = block/
|
|
|
|
#######################################################################
|
|
# crypto-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
crypto-obj-y = crypto/
|
|
crypto-aes-obj-y = crypto/
|
|
|
|
#######################################################################
|
|
# qom-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
qom-obj-y = qom/
|
|
|
|
#######################################################################
|
|
# io-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
io-obj-y = io/
|
|
|
|
######################################################################
|
|
# Target independent part of system emulation. The long term path is to
|
|
# suppress *all* target specific code in case of system emulation, i.e. a
|
|
# single QEMU executable should support all CPUs and machines.
|
|
|
|
ifeq ($(CONFIG_SOFTMMU),y)
|
|
common-obj-y = blockdev.o blockdev-nbd.o block/
|
|
common-obj-y += bootdevice.o iothread.o
|
|
common-obj-y += net/
|
|
common-obj-y += qdev-monitor.o device-hotplug.o
|
|
common-obj-$(CONFIG_WIN32) += os-win32.o
|
|
common-obj-$(CONFIG_POSIX) += os-posix.o
|
|
|
|
common-obj-$(CONFIG_LINUX) += fsdev/
|
|
|
|
common-obj-y += migration/
|
|
|
|
common-obj-y += audio/
|
|
common-obj-y += hw/
|
|
|
|
common-obj-y += replay/
|
|
|
|
common-obj-y += ui/
|
|
common-obj-y += bt-host.o bt-vhci.o
|
|
bt-host.o-cflags := $(BLUEZ_CFLAGS)
|
|
|
|
common-obj-y += dma-helpers.o
|
|
common-obj-y += vl.o
|
|
vl.o-cflags := $(GPROF_CFLAGS) $(SDL_CFLAGS)
|
|
common-obj-$(CONFIG_TPM) += tpm.o
|
|
|
|
common-obj-$(CONFIG_SLIRP) += slirp/
|
|
|
|
common-obj-y += backends/
|
|
common-obj-y += chardev/
|
|
|
|
common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o
|
|
qemu-seccomp.o-cflags := $(SECCOMP_CFLAGS)
|
|
qemu-seccomp.o-libs := $(SECCOMP_LIBS)
|
|
|
|
common-obj-$(CONFIG_FDT) += device_tree.o
|
|
|
|
######################################################################
|
|
# qapi
|
|
|
|
common-obj-y += qmp-marshal.o
|
|
common-obj-y += qmp-introspect.o
|
|
common-obj-y += qmp.o hmp.o
|
|
endif
|
|
|
|
#######################################################################
|
|
# Target-independent parts used in system and user emulation
|
|
common-obj-y += cpus-common.o
|
|
common-obj-y += hw/
|
|
common-obj-y += qom/
|
|
common-obj-y += disas/
|
|
|
|
######################################################################
|
|
# Resource file for Windows executables
|
|
version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o
|
|
|
|
######################################################################
|
|
# tracing
|
|
util-obj-y += trace/
|
|
target-obj-y += trace/
|
|
|
|
######################################################################
|
|
# guest agent
|
|
|
|
# FIXME: a few definitions from qapi-types.o/qapi-visit.o are needed
|
|
# by libqemuutil.a. These should be moved to a separate .json schema.
|
|
qga-obj-y = qga/
|
|
qga-vss-dll-obj-y = qga/
|
|
|
|
######################################################################
|
|
# contrib
|
|
ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/
|
|
ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/
|
|
libvhost-user-obj-y = contrib/libvhost-user/
|
|
vhost-user-scsi.o-cflags := $(LIBISCSI_CFLAGS)
|
|
vhost-user-scsi.o-libs := $(LIBISCSI_LIBS)
|
|
vhost-user-scsi-obj-y = contrib/vhost-user-scsi/
|
|
vhost-user-blk-obj-y = contrib/vhost-user-blk/
|
|
|
|
######################################################################
|
|
trace-events-subdirs =
|
|
trace-events-subdirs += util
|
|
trace-events-subdirs += crypto
|
|
trace-events-subdirs += io
|
|
trace-events-subdirs += migration
|
|
trace-events-subdirs += block
|
|
trace-events-subdirs += chardev
|
|
trace-events-subdirs += hw/block
|
|
trace-events-subdirs += hw/block/dataplane
|
|
trace-events-subdirs += hw/char
|
|
trace-events-subdirs += hw/intc
|
|
trace-events-subdirs += hw/net
|
|
trace-events-subdirs += hw/rdma
|
|
trace-events-subdirs += hw/rdma/vmw
|
|
trace-events-subdirs += hw/virtio
|
|
trace-events-subdirs += hw/audio
|
|
trace-events-subdirs += hw/misc
|
|
trace-events-subdirs += hw/misc/macio
|
|
trace-events-subdirs += hw/usb
|
|
trace-events-subdirs += hw/scsi
|
|
trace-events-subdirs += hw/nvram
|
|
trace-events-subdirs += hw/display
|
|
trace-events-subdirs += hw/input
|
|
trace-events-subdirs += hw/timer
|
|
trace-events-subdirs += hw/dma
|
|
trace-events-subdirs += hw/sparc
|
|
trace-events-subdirs += hw/sparc64
|
|
trace-events-subdirs += hw/sd
|
|
trace-events-subdirs += hw/isa
|
|
trace-events-subdirs += hw/mem
|
|
trace-events-subdirs += hw/i386
|
|
trace-events-subdirs += hw/i386/xen
|
|
trace-events-subdirs += hw/9pfs
|
|
trace-events-subdirs += hw/ppc
|
|
trace-events-subdirs += hw/pci
|
|
trace-events-subdirs += hw/pci-host
|
|
trace-events-subdirs += hw/s390x
|
|
trace-events-subdirs += hw/vfio
|
|
trace-events-subdirs += hw/acpi
|
|
trace-events-subdirs += hw/arm
|
|
trace-events-subdirs += hw/alpha
|
|
trace-events-subdirs += hw/hppa
|
|
trace-events-subdirs += hw/xen
|
|
trace-events-subdirs += hw/ide
|
|
trace-events-subdirs += ui
|
|
trace-events-subdirs += audio
|
|
trace-events-subdirs += net
|
|
trace-events-subdirs += target/arm
|
|
trace-events-subdirs += target/i386
|
|
trace-events-subdirs += target/mips
|
|
trace-events-subdirs += target/sparc
|
|
trace-events-subdirs += target/s390x
|
|
trace-events-subdirs += target/ppc
|
|
trace-events-subdirs += qom
|
|
trace-events-subdirs += linux-user
|
|
trace-events-subdirs += qapi
|
|
trace-events-subdirs += accel/tcg
|
|
trace-events-subdirs += accel/kvm
|
|
trace-events-subdirs += nbd
|
|
trace-events-subdirs += scsi
|
|
|
|
trace-events-files = $(SRC_PATH)/trace-events $(trace-events-subdirs:%=$(SRC_PATH)/%/trace-events)
|
|
|
|
trace-obj-y = trace-root.o
|
|
trace-obj-y += $(trace-events-subdirs:%=%/trace.o)
|
|
trace-obj-$(CONFIG_TRACE_UST) += trace-ust-all.o
|
|
trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace-root.o
|
|
trace-obj-$(CONFIG_TRACE_DTRACE) += $(trace-events-subdirs:%=%/trace-dtrace.o)
|