event/dsw: add device registration and build system

This patch contains the Meson and GNU Make build system extensions
required for the Distributed Event Device, and also the initialization
code for the driver itself.

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
This commit is contained in:
Mattias Rönnblom 2018-09-18 14:45:05 +02:00 committed by Jerin Jacob
parent 0ad9a8d391
commit 46a186b1f0
10 changed files with 115 additions and 1 deletions

View File

@ -921,6 +921,10 @@ F: doc/guides/eventdevs/sw.rst
F: examples/eventdev_pipeline/
F: doc/guides/sample_app_ug/eventdev_pipeline.rst
Distributed Software Eventdev PMD
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
F: drivers/event/dsw/
Software OPDL Eventdev PMD
M: Liang Ma <liang.j.ma@intel.com>
M: Peter Mccarthy <peter.mccarthy@intel.com>

View File

@ -614,6 +614,11 @@ CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
#
CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=y
#
# Compile PMD for distributed software event device
#
CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV=y
#
# Compile PMD for octeontx sso event device
#

View File

@ -6,6 +6,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
DIRS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += skeleton
DIRS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += sw
DIRS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += dsw
DIRS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += octeontx
ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += dpaa

View File

@ -0,0 +1,26 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Ericsson AB
include $(RTE_SDK)/mk/rte.vars.mk
LIB = librte_pmd_dsw_event.a
CFLAGS += -DALLOW_EXPERIMENTAL_API
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
CFLAGS += -Wno-format-nonliteral
LDLIBS += -lrte_eal
LDLIBS += -lrte_mbuf
LDLIBS += -lrte_mempool
LDLIBS += -lrte_ring
LDLIBS += -lrte_eventdev
LDLIBS += -lrte_bus_vdev
LIBABIVER := 1
EXPORT_MAP := rte_pmd_dsw_event_version.map
SRCS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += dsw_evdev.c
include $(RTE_SDK)/mk/rte.lib.mk

View File

@ -0,0 +1,52 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 Ericsson AB
*/
#include <rte_eventdev_pmd.h>
#include <rte_eventdev_pmd_vdev.h>
#include "dsw_evdev.h"
#define EVENTDEV_NAME_DSW_PMD event_dsw
static int
dsw_probe(struct rte_vdev_device *vdev)
{
const char *name;
struct rte_eventdev *dev;
struct dsw_evdev *dsw;
name = rte_vdev_device_name(vdev);
dev = rte_event_pmd_vdev_init(name, sizeof(struct dsw_evdev),
rte_socket_id());
if (dev == NULL)
return -EFAULT;
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
return 0;
dsw = dev->data->dev_private;
dsw->data = dev->data;
return 0;
}
static int
dsw_remove(struct rte_vdev_device *vdev)
{
const char *name;
name = rte_vdev_device_name(vdev);
if (name == NULL)
return -EINVAL;
return rte_event_pmd_vdev_uninit(name);
}
static struct rte_vdev_driver evdev_dsw_pmd_drv = {
.probe = dsw_probe,
.remove = dsw_remove
};
RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DSW_PMD, evdev_dsw_pmd_drv);

View File

@ -0,0 +1,16 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 Ericsson AB
*/
#ifndef _DSW_EVDEV_H_
#define _DSW_EVDEV_H_
#include <rte_eventdev.h>
#define DSW_PMD_NAME RTE_STR(event_dsw)
struct dsw_evdev {
struct rte_eventdev_data *data;
};
#endif

View File

@ -0,0 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Ericsson AB
allow_experimental_apis = true
deps += ['bus_vdev']
sources = files('dsw_evdev.c')

View File

@ -0,0 +1,3 @@
DPDK_18.11 {
local: *;
};

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw']
drivers = ['dpaa', 'dpaa2', 'octeontx', 'opdl', 'skeleton', 'sw', 'dsw']
std_deps = ['eventdev', 'kvargs']
config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
driver_name_fmt = 'rte_pmd_@0@_event'

View File

@ -240,6 +240,7 @@ endif # CONFIG_RTE_LIBRTE_COMPRESSDEV
ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y)
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV) += -lrte_pmd_skeleton_event
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV) += -lrte_pmd_sw_event
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DSW_EVENTDEV) += -lrte_pmd_dsw_event
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF) += -lrte_pmd_octeontx_ssovf
ifeq ($(CONFIG_RTE_LIBRTE_DPAA_BUS),y)
_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV) += -lrte_pmd_dpaa_event