0a6ad9b02e
DPDK 19.05+ gives us an ability to pre or post-process any single vhost-user message. The user can either perform additional actions upon some generic events, or can implement handling for brand new message types that rte_vhost doesn't even know about. In order to smoothly switch to the upstream rte_vhost and drop our internal copy, we introduce an SPDK wrapper function to register SPDK-specific message handlers. For DPDK 19.05+ this will use the new rte_vhost API to register those message handlers, and for older DPDKs this function simply won't do anything - as w assume the internal rte_copy already contains all the necessary changes and does not need any "external" hooks. For now we use the message handlers to stop the vhost device and wait for any pending DMA ops before letting rte_vhost to process the SET_MEM_TABLE message and unmap the current shared memory. Change-Id: Ic0fefa9174254627cb3fc0ed30ab1e54be4dd654 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/446085 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
51 lines
1.9 KiB
Makefile
51 lines
1.9 KiB
Makefile
#
|
|
# BSD LICENSE
|
|
#
|
|
# Copyright (c) Intel Corporation.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
# * Neither the name of Intel Corporation nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
|
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
|
|
|
CFLAGS += -I.
|
|
CFLAGS += $(ENV_CFLAGS)
|
|
|
|
C_SRCS = vhost.c vhost_rpc.c vhost_scsi.c vhost_blk.c rte_vhost_compat.c
|
|
|
|
ifeq ($(CONFIG_VHOST_INTERNAL_LIB),y)
|
|
C_SRCS += vhost_nvme.c
|
|
DIRS-y += rte_vhost
|
|
CFLAGS := -Irte_vhost $(CFLAGS)
|
|
endif
|
|
|
|
LIBNAME = vhost
|
|
|
|
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk
|