From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 466C47EE0 for ; Tue, 8 May 2018 14:33:01 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 May 2018 05:33:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,378,1520924400"; d="scan'208";a="226796646" Received: from silpixa00399501.ir.intel.com ([10.237.223.69]) by fmsmga006.fm.intel.com with ESMTP; 08 May 2018 05:32:58 -0700 From: Lee Daly To: dev@dpdk.org Cc: pablo.de.lara.guarch@intel.com, greg.b.tucker@intel.com, deepak.k.jain@intel.com, fiona.trahe@intel.com, Lee Daly Date: Tue, 8 May 2018 13:32:46 +0100 Message-Id: <1525782775-138647-2-git-send-email-lee.daly@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1525782775-138647-1-git-send-email-lee.daly@intel.com> References: <1524872313-196340-2-git-send-email-lee.daly@intel.com> <1525782775-138647-1-git-send-email-lee.daly@intel.com> Subject: [dpdk-dev] [PATCH v5 01/10] compress/isal: add skeleton ISA-L compression PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 12:33:01 -0000 Adding basic skeleton of the ISA-L compression driver. No compression functionality, but lays the foundation for operations in the rest of the patchset. The ISA-L compression driver utilizes Intel's ISA-L compression library and compressdev API. It therefore has dependencies on both compressdev and the ISA-L library, v2.22.0. Signed-off-by: Lee Daly --- config/common_base | 5 +++++ doc/guides/rel_notes/release_18_05.rst | 3 +++ drivers/Makefile | 2 ++ drivers/compress/Makefile | 8 +++++++ drivers/compress/isal/Makefile | 30 ++++++++++++++++++++++++++ drivers/compress/isal/isal_compress_pmd.c | 29 +++++++++++++++++++++++++ drivers/compress/isal/meson.build | 14 ++++++++++++ drivers/compress/isal/rte_pmd_isal_version.map | 3 +++ drivers/compress/meson.build | 8 +++++++ drivers/meson.build | 1 + mk/rte.app.mk | 5 +++++ 11 files changed, 108 insertions(+) create mode 100644 drivers/compress/Makefile create mode 100644 drivers/compress/isal/Makefile create mode 100644 drivers/compress/isal/isal_compress_pmd.c create mode 100644 drivers/compress/isal/meson.build create mode 100644 drivers/compress/isal/rte_pmd_isal_version.map create mode 100644 drivers/compress/meson.build diff --git a/config/common_base b/config/common_base index dd836e8..a982570 100644 --- a/config/common_base +++ b/config/common_base @@ -562,6 +562,11 @@ CONFIG_RTE_COMPRESS_MAX_DEVS=64 CONFIG_RTE_COMPRESSDEV_TEST=y # +# Compile PMD for ISA-L compression device +# +CONFIG_RTE_LIBRTE_PMD_ISAL=n + +# # Compile generic event device library # CONFIG_RTE_LIBRTE_EVENTDEV=y diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst index 5193a62..ce70d1f 100644 --- a/doc/guides/rel_notes/release_18_05.rst +++ b/doc/guides/rel_notes/release_18_05.rst @@ -75,7 +75,10 @@ New Features The compressdev library provides an API for offload of compression and decompression operations to hardware or software accelerator devices. +* **Added a new compression poll mode driver using Intels ISA-L.** + Added the new ``ISA-L`` compression driver, for compression and decompression + operations in software. API Changes diff --git a/drivers/Makefile b/drivers/Makefile index 3d9f86b..c88638c 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -13,6 +13,8 @@ DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += baseband DEPDIRS-baseband := common bus mempool DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += crypto DEPDIRS-crypto := common bus mempool +DIRS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += compress +DEPDIRS-compress := bus mempool DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += event DEPDIRS-event := common bus mempool net DIRS-$(CONFIG_RTE_LIBRTE_RAWDEV) += raw diff --git a/drivers/compress/Makefile b/drivers/compress/Makefile new file mode 100644 index 0000000..592497f --- /dev/null +++ b/drivers/compress/Makefile @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Intel Corporation + +include $(RTE_SDK)/mk/rte.vars.mk + +DIRS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal + +include $(RTE_SDK)/mk/rte.subdir.mk diff --git a/drivers/compress/isal/Makefile b/drivers/compress/isal/Makefile new file mode 100644 index 0000000..9b1d866 --- /dev/null +++ b/drivers/compress/isal/Makefile @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Intel Corporation + +include $(RTE_SDK)/mk/rte.vars.mk + +# library name +LIB = librte_pmd_isal_comp.a + +# build flags +CFLAGS += -O3 +CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API + +# external library dependencies +LDLIBS += -lisal +LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring +LDLIBS += -lrte_compressdev +LDLIBS += -lrte_bus_vdev + +# library version +LIBABIVER := 1 + +# versioning export map +EXPORT_MAP := rte_pmd_isal_version.map + +# library source files +SRCS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal_compress_pmd.c + +# export include files +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/compress/isal/isal_compress_pmd.c b/drivers/compress/isal/isal_compress_pmd.c new file mode 100644 index 0000000..d7137fd --- /dev/null +++ b/drivers/compress/isal/isal_compress_pmd.c @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Intel Corporation + */ + +#include +#include + +/** Remove compression device */ +static int +compdev_isal_remove_dev(struct rte_vdev_device *vdev __rte_unused) +{ + return 0; +} + +/** Initialise ISA-L compression device */ +static int +compdev_isal_probe(struct rte_vdev_device *dev __rte_unused) +{ + return 0; +} + +static struct rte_vdev_driver compdev_isal_pmd_drv = { + .probe = compdev_isal_probe, + .remove = compdev_isal_remove_dev, +}; + +RTE_PMD_REGISTER_VDEV(COMPDEV_NAME_ISAL_PMD, compdev_isal_pmd_drv); +RTE_PMD_REGISTER_PARAM_STRING(COMPDEV_NAME_ISAL_PMD, + "socket_id="); diff --git a/drivers/compress/isal/meson.build b/drivers/compress/isal/meson.build new file mode 100644 index 0000000..4447e20 --- /dev/null +++ b/drivers/compress/isal/meson.build @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright 2018 Intel Corporation + +dep = dependency('libisal', required: false) +if not dep.found() + build =false +endif + +deps += 'bus_vdev' +sources = files('isal_compress_pmd.c') +ext_deps += dep +pkgconfig_extra_libs += '-lisal' + +allow_experimental_apis = true diff --git a/drivers/compress/isal/rte_pmd_isal_version.map b/drivers/compress/isal/rte_pmd_isal_version.map new file mode 100644 index 0000000..de8e412 --- /dev/null +++ b/drivers/compress/isal/rte_pmd_isal_version.map @@ -0,0 +1,3 @@ +DPDK_18.05 { + local: *; +}; diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build new file mode 100644 index 0000000..fb136e1 --- /dev/null +++ b/drivers/compress/meson.build @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Intel Corporation + +drivers = ['isal'] + +std_deps = ['compressdev'] # compressdev pulls in all other needed deps +config_flag_fmt = 'RTE_LIBRTE_@0@_PMD' +driver_name_fmt = 'rte_pmd_@0@' diff --git a/drivers/meson.build b/drivers/meson.build index b146f09..ac7ba5e 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -7,6 +7,7 @@ driver_classes = ['common', 'mempool', # depends on common and bus. 'net', # depends on common, bus and mempool. 'crypto', # depends on common, bus and mempool (net in future). + 'compress', # depends on bus, mempool. 'event'] # depends on common, bus, mempool and net. foreach class:driver_classes diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 8530ac5..7a6739c 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -228,6 +228,11 @@ endif # CONFIG_RTE_LIBRTE_DPAA_BUS endif # CONFIG_RTE_LIBRTE_CRYPTODEV +ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y) +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lrte_pmd_isal_comp +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lisal +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 -- 2.7.4