From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0046.outbound.protection.outlook.com [104.47.33.46]) by dpdk.org (Postfix) with ESMTP id 8BDB61B987 for ; Tue, 15 May 2018 12:33:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HR7emTxzJ33/cCo4AW6KV8lOoUtBT+hRLt9hGqetyVo=; b=lk1CjSjg5t85P1wlL1rtsroTyiNL0cmEG/WRnoVSkVZdxqkfLvwAARAUzuHaaUHA6zOmig4O1iVIIjNRjks2auwZpYo+q3Me5NbUIBBN/wSljsMUsYGc+vrdu8vl8ChQjfqIc1S3cO2XKHjMSZuVMRFmyEhYd0VjeoiOXxWX9I8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Shally.Verma@cavium.com; Received: from hyd1sverma-dt.caveonetworks.com (115.113.156.2) by SN4PR0701MB3646.namprd07.prod.outlook.com (2603:10b6:803:4d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Tue, 15 May 2018 10:32:56 +0000 From: Shally Verma To: pablo.de.lara.guarch@intel.com Cc: fiona.trahe@intel.com, dev@dpdk.org, pathreay@caviumnetworks.com, Sunila Sahu , Ashish Gupta Date: Tue, 15 May 2018 16:02:21 +0530 Message-Id: <1526380346-7386-2-git-send-email-shally.verma@caviumnetworks.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1526380346-7386-1-git-send-email-shally.verma@caviumnetworks.com> References: <1526380346-7386-1-git-send-email-shally.verma@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: BMXPR01CA0033.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::19) To SN4PR0701MB3646.namprd07.prod.outlook.com (2603:10b6:803:4d::12) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(2017052603328)(7153060)(7193020); SRVR:SN4PR0701MB3646; X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3646; 3:xYdrlYG2cRKKk2Tx69xZYV61nxGEoWEJMNyHprcUnMr0JxrWlHclATxHIEbDX0pel4TvcknmByWze7omheTVcRulh0VcRmVMwVuJccemgUgT4Rkb1WM0RL7nISNESESvS/Ny9R++BqnkJekKsTWnVSutfryFrX8E1moaWldLFuu5A1wnqPxikeMeaMWPxwqbX6UsWuTSmQvqtLJ1ZWimOH1WRBG1nw38DmwGRMnejO8Yk6ibfd1WjZSeYQyMD47R; 25:aWrOcf7yGyt8+wJhJsesFgOrq3o2xOLe/g+i3jsep8ysFaGN8ZAjOpj1ExJEXNikRMOJokoN+swe3b61J73pl+TTooCkPZJdvpJMWPZwFtAs4ko0KmyNhG+AQ/X37GJQ8Kfuhq0eZa6+Q39vsWVOwVubV4mqONR9S6vkMHdGCcnLQ2JhFRqASCwKINJ5wGJZs/wvP/m1kh/PYDTinhlCYHpo4lRKFyQeaF2bLICQaj1KFHcqB3PqIgB9z67vcw/08EfCYLbhoJNjtNwj539QDtC3GYmGrzHxhFGl6UAXdrPLOtlpB4vRcKypv8u4lLznKpQwyCUOIgF31UpuzGPsIA==; 31:sY6VvEWLTPW5KpjOXY0n2ICRMwsRMZQNOSRHjknbcKB19yKHAZLHwL2xnykaH2ZXeOyXBx5KsuC1a310PxEZqF1x8YnKbHttGbv1PkyjvxBMXv9mB9odQevnHkEFl9nmdRaH6NTlx2HKw6JReIOWwVn5yEJpUF0KMeBe2XUPY55s5JkvRPosn/vLJvZiHykM7+SYP8YEog8JPmlTYzpV5JZ6rGwX/hyF91zXltucTog= X-MS-TrafficTypeDiagnostic: SN4PR0701MB3646: X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3646; 20:0qgJB/1eJcsjLNcbuWhE9tPGkoMcqCAABai6le+lOfNLOZpuvBKQs5A38ysnfAijtWudWk1q2c0UNY9yTZE8YQgxFuS7KmtFBpKTe9KvDh2WHJOq+Yp+JjaPn3wr9GjoHzB5DGOlJ4BxNZQjXrg3FVVQiLRqpd53BBpjVv2LiLCXX65kTDTvwZcQ00PVcftEnRgtzSJjkr/0+uX2TFswV9E8H9berVntep8K30vodj9aOF/hCoe/SQpMLM0lM4WVUngkJnXWwGouLsdgiCq4ya1MB30Ss6uitz2A/lyQu0I9sVsKxlqXbKr/r+bFP0pHZmLoT2JqtiMIyB/rIUA7qFo36Nvf2Stw87j+7o4yp1nGW1M021U/LjsQisfWUHQgaUDrd4dkQDsEcvZlRGzBYC1yvYhJBS9GEIp173Zcp9YgVNjCb4yCqp7JAahNvfiO0lSiYCuDbcjC680xkvPEzJh33y94I2R83m9TVna/csKyYQPhBnrhgjVOOxwYqBWCR4WmGnD55K14bKGpQ1j75SQrZIzW7snuVqgvmlLSS8W1bD+W+PkQQZ8ckhNF/37mxwZvqvr2TFtPb8rSazzGg7LDmjNk06AUyaauXqDfGFM=; 4:lDWrlhSArdvJtr87z96X/7Z/jPMNGRpccx0NSONy9W5qNVAt2GZ3T9tPwrTp3hI6KFtF3CdUbmFOCtUkFL0Rm4pAq9mCmI0XZzdyt9TUHdlWybs9+MNBPT0wGv07kh895W+MfR8p8/sA5yF6WVQq3L6GyychZaaczFnHXYy/PmN1T+X4brlFMf6aAh2Wrn95+mvJWG+UB93oF0YcCKYipI2c1ftkgX/vahxbjb36DZo6n9vJgSZuB27ZzKgdamH8iKJmDVHXqFsiE6F8TGleTg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(3002001)(10201501046)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:SN4PR0701MB3646; BCL:0; PCL:0; RULEID:; SRVR:SN4PR0701MB3646; X-Forefront-PRVS: 0673F5BE31 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(376002)(366004)(396003)(346002)(189003)(199004)(478600001)(486006)(55236004)(44832011)(16586007)(54906003)(316002)(47776003)(2906002)(59450400001)(6506007)(386003)(8936002)(66066001)(6486002)(72206003)(6116002)(3846002)(25786009)(97736004)(5660300001)(42882007)(50226002)(36756003)(8676002)(48376002)(53416004)(52116002)(107886003)(26005)(50466002)(2616005)(81156014)(105586002)(81166006)(2361001)(53936002)(6666003)(6916009)(4326008)(16526019)(68736007)(476003)(446003)(956004)(106356001)(76176011)(186003)(7736002)(2351001)(69596002)(6512007)(305945005)(51416003)(11346002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN4PR0701MB3646; H:hyd1sverma-dt.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN4PR0701MB3646; 23:zBNH6wevcP3KpEfd8Tp3CqB0DEPcKL+nmzFmEo9?= =?us-ascii?Q?nivIqIxRT2KmKAE7eSA7SwhDEN/0OprEQQsyvKV30ASygMSVlv/bTo1Ia9l0?= =?us-ascii?Q?qF2+IRVR/Gmca8O2mP3lWLCDYiQz+5aRwm0/DsqQQvylRW+pJ5CP50nK7Psq?= =?us-ascii?Q?VPXD8wxcmK0fzQ4w2AydXt/mBuilQ0bxdeo02h6MWOrkH7VOSI6m85yzZWJ2?= =?us-ascii?Q?6KMFHXGcejSK49lyP4P94NS4aWnHvmoIsMaojGYQrWJ0C8VJBEBpX2JY6hpJ?= =?us-ascii?Q?cUcwvmOxHRp06Z/X69KoTCOKpUhISISrdqPJzK/RoYyorZ82jWnMArE0/OYO?= =?us-ascii?Q?hrsvshmRmQ33zm2JS8PBHhN4s645lKji7nVZb/kZI2zvkSbuzIRSFJY4LWiZ?= =?us-ascii?Q?K7mPUaETto4WzOGsKMfX7beQSxWQ6wgRTNJoptUnDLTdUi8f0rkECU2YO4fW?= =?us-ascii?Q?j9wp4HWArEDsKxEq94ELSqYesksdQZFGTS2I3YKd64GDDywg9CAyNJfp9eiT?= =?us-ascii?Q?MmqSgAMN+zbAFyoFzDHzndVagbpNtEq68qgZRB78FwptvPiZ5pXySWZkkOsE?= =?us-ascii?Q?yGfTxKaNZ6jqOnXVKXDk61EKiYomQahCXTO0v+LyIg0xj5Nd5ZmPS/An3LAS?= =?us-ascii?Q?mU6VZK4uDJWJn/i1dR8e8sApigTvOGE4IAl+ie4hXUXZq/GfH0BIo4slRuay?= =?us-ascii?Q?oGkIK5wY+bEesQzmSeQAXkWCH23m+AV8HIQVCtdRUY25nL5M5dWjtshInG/u?= =?us-ascii?Q?fs4/jev4bhxkNaSld4tnTiRDK2hXUyTwS6a0j2LHfNwC8JVAfJjIOr8UEvZy?= =?us-ascii?Q?fk1/0LCPxNeCL+/YvtJUCkjCyhgUbtQTS/e/MD38BQXO7kKtxufU+qm+R9Ql?= =?us-ascii?Q?BCCpPSs1O0FT3iTe+MdLH4SoWEbH0a7MKV/wvDsQbB5Hoxgi5dsWS6Wwx9p4?= =?us-ascii?Q?k4PBq49HaVCAEJmz3gL5uwvzG/m0h79RXu3AMkRo3hxF1FNBDp6I04i/V1/f?= =?us-ascii?Q?8CAzR0+ZV40sPOTv/npaS7yD4/OIDtXJgTfX5EtaeE+VxTyKRjRjFMw+ge7C?= =?us-ascii?Q?WYh408+zMtPQViQyvrNABZEY4FT+xOeFYFLFVcNepzORROJ+a05kJIH0fQUe?= =?us-ascii?Q?CF+EKjKc2yhuUxNwPElF4sqGzTsvvaNNWPtpRulM9c3vSkxmWcts7+c2K0/S?= =?us-ascii?Q?EQvhsziA0rjIDlpRbMDd4O6TQxNIaHmKaPEjz65MFpotC9WEqBeuEfVnEZ79?= =?us-ascii?Q?oMjBl9UcsGii2MW/KPE+LJIua5o1bm1Lt33YzXPfYCPU4nboI4YG7vmoMRA5?= =?us-ascii?Q?X6GIWzwlU1+j5OsUtAmRBr+GG3sJMr002f4vFbYoHH9b3rhh9mcKAYqKRwrj?= =?us-ascii?Q?DCfuCvkaa8vdf08LuvVs71BUmYz2kLnxSw5v0SQIkL+0a9lVQYNS5zLThoxV?= =?us-ascii?Q?j19q7/hSYiQ=3D=3D?= X-Microsoft-Antispam-Message-Info: CE6IEHt8CsJksckw8PhUovQ8LZO0y2z+3fyNAw3NWiWC5xOR7b7ntTETWfYuoa3bOmXH/WR/CuQEu3HIwVrWYEso3nlwNGgICXr127pWhcHV+2o/fpYM3elGkKMGhV5jgfThe1/OzmbkzDgbmMjPNYqy+xw9tuSDWSJnk4QCxejHLIvHwOaw57xJ9Q1IJUtf X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3646; 6:h4NbyJgY9aSWZVov52nOiIG8znqRVRpJhrH8KkLaXrK7f3ksD45rgzKG0z1OucKeuu2ohc2y5WDciToJMw4gXATTLbEgLGhVIwHuvMLMDN3lqOaPVnaD3kiJ/jNncN7W5Vkfy7bnr7ymgsMibYA0xZM+CDZDiBIyzBK9dAaKUvIGVVVFR4Q3M/JB8uyZsTySYLSzbo7NkRCtGLqK6kvSCdsDDibpy889q5QMuw4pR3+VgmHrbl39ZvtwbRWe6mGIyKwTrfgJWa29bosZM/Kp0pU/kc2p+9byEkkN2IY35apOjBnAv/PZxwRVevSUm8vUgZmTBmRoXOmUr2G7rJE6LK48oavk0Wb3myY0TQ7qJ8feAMuTlzmHjI/dxcIWTRLgHD0PNOa5CUD3nWfBIU4QfLk9iKOJr+g7wlCqBEn4iGwbUqCWtYy4VZ0WHLBKg9yYQ61Hqoml2M3FBEJIrrnTwQ==; 5:HrLlZDE6GlgqndqVcGxw/TIDqKXBzoxuUdxUDiofmGyPaigWFGkCUXIo99sBZTOaYA0iBe7VWs8GckPfm10TMkj0yURkkJOPzV08ghoTJDbG6u/MUSlsHvTDCmW3mwNSSxPVpvY5OayyM1sDNm+a+ZvPJdkuYbCfKtu5LHs2u+w=; 24:IV907q7O3lbV0UzH/LOUHkFu3gs6wWIdJwEzrUK5WmIJNXXN1PpvdwmHYAM4oy+I2jtVw7cgTKtgnZAVmDqiZl5aHhswet0hZHyr/9RFp7Q= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3646; 7:1ZUZXSQSBix3ElrEpzZ9wIfiJ4T8O8+QOLifeTrJDfjdGEVuTqyAYIRZ8gPfaKRtUr1WXqu8Fvc7AGmSxbX1lNcRP4H+vz6ybzCq66uwpPXAzmrWyNu1ZoM//4xhJ9lga7OfREm3Gbv7mgBNFtpeNzjRCDYcbOsFXTvR8dYIgWbj34CS/Lh3E7p6HoRCfI4OD5q+50QUpfkve+lAJPiE/OgnEYx2SsquABq1Nwm6kKjptnOkFl9tXbiXKdMAStj9 X-MS-Office365-Filtering-Correlation-Id: 90b41fb5-fa12-42e7-a032-08d5ba4f3a59 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2018 10:32:56.4740 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 90b41fb5-fa12-42e7-a032-08d5ba4f3a59 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR0701MB3646 Subject: [dpdk-dev] [PATCH v1 1/6] compress/zlib: add ZLIB PMD support 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, 15 May 2018 10:33:01 -0000 Add sw zlib pmd support in compressdev driver. Add device probe and remove support. Update makefile to build zlib. Signed-off-by: Sunila Sahu Signed-off-by: Shally Verma Signed-off-by: Ashish Gupta --- config/common_base | 6 ++ drivers/compress/Makefile | 1 + drivers/compress/zlib/Makefile | 32 ++++++++ drivers/compress/zlib/rte_pmd_zlib_version.map | 3 + drivers/compress/zlib/zlib_pmd.c | 106 +++++++++++++++++++++++++ 5 files changed, 148 insertions(+) diff --git a/config/common_base b/config/common_base index 28557ed..537e9e4 100644 --- a/config/common_base +++ b/config/common_base @@ -586,6 +586,12 @@ CONFIG_RTE_COMPRESSDEV_TEST=n CONFIG_RTE_LIBRTE_PMD_ISAL=n # +# Compile PMD for ZLIB compression device +# +CONFIG_RTE_LIBRTE_PMD_ZLIB=n +CONFIG_RTE_LIBRTE_PMD_ZLIB_DEBUG=n + +# # Compile generic event device library # CONFIG_RTE_LIBRTE_EVENTDEV=y diff --git a/drivers/compress/Makefile b/drivers/compress/Makefile index 592497f..1f159a5 100644 --- a/drivers/compress/Makefile +++ b/drivers/compress/Makefile @@ -4,5 +4,6 @@ include $(RTE_SDK)/mk/rte.vars.mk DIRS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += isal +DIRS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib include $(RTE_SDK)/mk/rte.subdir.mk diff --git a/drivers/compress/zlib/Makefile b/drivers/compress/zlib/Makefile new file mode 100644 index 0000000..e613960 --- /dev/null +++ b/drivers/compress/zlib/Makefile @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Cavium Networks + +include $(RTE_SDK)/mk/rte.vars.mk + +# library name +LIB = librte_pmd_zlib.a + +# build flags +CFLAGS += -O3 +CFLAGS += $(WERROR_FLAGS) +CFLAGS += -DALLOW_EXPERIMENTAL_API + +# library version +LIBABIVER := 1 + +# versioning export map +EXPORT_MAP := rte_pmd_zlib_version.map + +# external library dependencies +LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lz +LDLIBS += -lrte_compressdev +LDLIBS += -lrte_bus_vdev + +# library source files +SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib_pmd.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_ZLIB) += zlib_pmd_ops.c + +# export include files +SYMLINK-y-include += + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/compress/zlib/rte_pmd_zlib_version.map b/drivers/compress/zlib/rte_pmd_zlib_version.map new file mode 100644 index 0000000..33c1b97 --- /dev/null +++ b/drivers/compress/zlib/rte_pmd_zlib_version.map @@ -0,0 +1,3 @@ +EXPERIMENTAL { + local: *; +}; diff --git a/drivers/compress/zlib/zlib_pmd.c b/drivers/compress/zlib/zlib_pmd.c new file mode 100644 index 0000000..bbf49f1 --- /dev/null +++ b/drivers/compress/zlib/zlib_pmd.c @@ -0,0 +1,106 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2017-2018 Cavium Networks + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "zlib_pmd_private.h" + +static uint8_t compressdev_driver_id; +int zlib_logtype_driver; + +static int zlib_remove(struct rte_vdev_device *vdev); + +static int +zlib_create(const char *name, + struct rte_vdev_device *vdev, + struct rte_compressdev_pmd_init_params *init_params) +{ + struct rte_compressdev *dev; + struct zlib_private *internals; + + dev = rte_compressdev_pmd_create(name, &vdev->device, + sizeof(struct zlib_private), init_params); + if (dev == NULL) { + ZLIB_LOG_ERR("driver %s: create failed", init_params->name); + return -ENODEV; + } + + dev->driver_id = compressdev_driver_id; + dev->dev_ops = rte_zlib_pmd_ops; + + dev->feature_flags = 0; + dev->feature_flags |= RTE_COMP_FF_SHAREABLE_PRIV_XFORM | + RTE_COMP_FF_NONCOMPRESSED_BLOCKS | + RTE_COMP_FF_ADLER32_CHECKSUM; + + internals = dev->data->dev_private; + internals->max_nb_queue_pairs = ZLIB_PMD_MAX_NB_QUEUE_PAIRS; + + return 0; +} + +static int +zlib_probe(struct rte_vdev_device *vdev) +{ + struct rte_compressdev_pmd_init_params init_params = { + "", + rte_socket_id() + }; + const char *name; + const char *input_args; + + name = rte_vdev_device_name(vdev); + + if (name == NULL) + return -EINVAL; + input_args = rte_vdev_device_args(vdev); + rte_compressdev_pmd_parse_input_args(&init_params, input_args); + + return zlib_create(name, vdev, &init_params); +} + +static int +zlib_remove(struct rte_vdev_device *vdev) +{ + struct rte_compressdev *compressdev; + const char *name; + + name = rte_vdev_device_name(vdev); + if (name == NULL) + return -EINVAL; + + compressdev = rte_compressdev_pmd_get_named_dev(name); + if (compressdev == NULL) + return -ENODEV; + + return rte_compressdev_pmd_destroy(compressdev); +} + +static struct rte_vdev_driver zlib_pmd_drv = { + .probe = zlib_probe, + .remove = zlib_remove +}; + +RTE_PMD_REGISTER_VDEV(COMPRESSDEV_NAME_ZLIB_PMD, zlib_pmd_drv); +RTE_PMD_REGISTER_ALIAS(COMPRESSDEV_NAME_ZLIB_PMD, compressdev_zlib_pmd); + +RTE_INIT(zlib_init_log); + +static void +zlib_init_log(void) +{ + zlib_logtype_driver = rte_log_register("compress_zlib"); + if (zlib_logtype_driver >= 0) + rte_log_set_level(zlib_logtype_driver, RTE_LOG_INFO); +} -- 2.9.5