From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 61093A00C2; Thu, 10 Feb 2022 11:59:38 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7720D426D6; Thu, 10 Feb 2022 11:59:20 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60057.outbound.protection.outlook.com [40.107.6.57]) by mails.dpdk.org (Postfix) with ESMTP id 77FED426D6 for ; Thu, 10 Feb 2022 11:59:19 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bD0my9FGrEmSEao5/NR96LHBW3wQnGFgVOA26ry7LQ/PBI73hYonqxwrxFpKZa4veF3r6jaKENKizZqTjos7RI/g0OVC9lWlCe6D6NodNgikEYZzgtSCpJu9w1vZwbfcvl6DIVrvK7QbsKjbkDimz9XxXG1OxQ82j1tglmq7AqH7rd1OzMr4acdFzp6TIiS9nJPUjJu1wD3vlDbhR2STVjWc+C4/GTdX5lDbnlnnXDuFNqD85tYyNgV1qJXo82RlcEoTXDl8/gLPv6C+lqCqsqsqHoZoHgUcaSPJS6L/h+fOzyUYKYTTO5fbY6LTyIbBbbUaf5TAKKp6ceMQKYtSMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=b3t43XXJaHG1q/2ws9FZ2A4xaOzkV7ZIUArlwotl/ag=; b=ELyqRcVAcWGvOilRbkCg4/vEvK8N/EpLm8n9eJMvSDyrDnQMJGnm4VAE0yL+aUmwZMPjw1FPnRzYeB0V8muqJ3+UJcjz0WWf50DRpzCAWIz1ijq5IIqk6vGLqi9P6RMvy1PT9KRfjzXqAnscUogfyWOFBMQPKW5e95kd3vbHC6GxxkW5FOwjo1RsTtRWfKzGzwDxI/brX/La6miG8JN9FoHNabh+rnq4P+a265lDm9nSTC+ew/TmWr0DZoCp23XTACldcEUJACK3bWvI5JOMPjYTAaXpevBjj+SGejEK6JOcWufDSrarNGs9Ddy7OgkEwOqjI03QwPmZD/2P8ryIDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b3t43XXJaHG1q/2ws9FZ2A4xaOzkV7ZIUArlwotl/ag=; b=IfV17iHk9gfdi42Y6B1jtawxP3XvWBh9IIcvDU7rzY5lQe6hCHMgJuOWxp270zWoefk/mGpBHreKptNVva9xfjIJN4gnfEqpau8jp/RjNHpKRgyl8E1CNchm6fg1laZdQQaZkf97CdoFPEu7dw2PfIGn8HbfspiXiSyUVLEZ62c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14) by AM6PR04MB4294.eurprd04.prod.outlook.com (2603:10a6:209:4a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Thu, 10 Feb 2022 10:59:18 +0000 Received: from AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::4146:965b:5645:9269]) by AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::4146:965b:5645:9269%4]) with mapi id 15.20.4975.011; Thu, 10 Feb 2022 10:59:18 +0000 From: Gagandeep Singh To: gakhil@marvell.com, dev@dpdk.org Cc: Gagandeep Singh Subject: [PATCH v4 4/7] crypto/dpaa2_sec: add useful debug prints in sec dequeue Date: Thu, 10 Feb 2022 16:28:49 +0530 Message-Id: <20220210105852.1268506-5-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220210105852.1268506-1-g.singh@nxp.com> References: <20220210043136.304845-2-g.singh@nxp.com> <20220210105852.1268506-1-g.singh@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR03CA0092.apcprd03.prod.outlook.com (2603:1096:4:7c::20) To AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 73fabcba-500d-40ec-2619-08d9ec846291 X-MS-TrafficTypeDiagnostic: AM6PR04MB4294:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1824; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oBqJM15onFiE6R5vO58PIh+pGllqAReiW3ZZZ9XJGvR7NPLslL3KPeS05JbIiCw2nYbPRfDcqkbamXTpmrjZUPQahKep27Nrgukay7Gsyc3t2Q9sOiJLr0H75+VvHc9ehshR8sliH5U37P5RFdowYUD8lpn8We4IrEDjALhOaDo1NxHzcoAWKtKIkCzobLahinpQu/zyuSJ6A7zYSpbbmRWCVhRzMrLAeIkKZ/rPcQRB0/4kQWQWFt2lkSETie0kB3IrTgr0IY2eZ/d+OMcGjSLfgWirntaUycAIz5v65r/VKoveuFQhuQaQpRvsYo1U1rBcmWUJU/kadFpV8pwr6z9IRbrtcHSKawem529arlBBgfyttOsDvrfeT23+uuSRKKndl0R3H1lEDEy0k85LR4OTZjDtWctLIswGnJTUKlwrMORGtFA7pmCNY94hF+8CTCHPtob5fgA5Z/sb03hJhMAnYTg/DcSkvu2FjwahIfBesGt1Ok4q7ofwZSusVYYzNBk42TyFVDn5Bc610mL1zfrKZPZxfYjO/dHuoiMf7JG4ZxPXOWGxnWz22RtiDAcHFOVh5iMmHv29EfFId53ecEWJUD2Aa4+lC/YPhU1/J+IgVY09AvteMi/XNndsrxknxQ3OMvbBv5e3Uucc1b/OHOzxIRKAsG6QQ3cr31l5ZXW29HBGj61P0zJ2U2Ol0vpxzeHEWUAjFgBN/3QxkAQ0SQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR04MB8198.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6666004)(1076003)(186003)(86362001)(6486002)(26005)(316002)(508600001)(66556008)(4326008)(66476007)(8676002)(66946007)(2906002)(5660300002)(2616005)(8936002)(6512007)(55236004)(36756003)(83380400001)(38350700002)(38100700002)(52116002)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gjfG98TKoXuZ8AbPok9SeCnv4vch7f600o0lZdDLMwSeks9q2cBReJ6c1H3k?= =?us-ascii?Q?EiKKxR4tYoMaCL0TDl+iFJWFRhZDCY7LQbq2JDSn0/1wUjwIXi1CqIZrCrV8?= =?us-ascii?Q?gh5qy7+m1W28QRN0160pmvrQmYJLjFA1OdUigggNY0+nXhCdck9jtU8tqN73?= =?us-ascii?Q?dQGD509HtBTxoM9O+Y48AGyZUlis378vsTHcud+6NgMUx1ERUp6BJQTcN1fO?= =?us-ascii?Q?XvxxyN09mTdfc85xC/vhO6OufwI8lm6VyoveoTDt+rjyve3dhi7OfB0VVmJd?= =?us-ascii?Q?DD2Gv1k1H3ysjF+muS63R5ZNemeSdNveg3BGYCv60FULQ6zAZNlUH8GGxVb8?= =?us-ascii?Q?SXL9YDhtva1LHnXz4o0UAGgVIfb8n5qbPKMJ4GLW+nfsarAQekd2CuZ1Bgc6?= =?us-ascii?Q?Ey3dNRfTsyLhmv58Xh9nDFYvDBXNYugFG0XaFeC01qFBl3jxXUWb4lvBmntm?= =?us-ascii?Q?Nez4VOFFXgLPq+y0RMeE4D75Lp7iqreTDbV0hu/ASta/7//qam0KEwpLpvO5?= =?us-ascii?Q?8iLYtPiCpq/VV/I/txd4ZPklyy+5wit3IyksMbpdW5ZjqYhozfOj/2bLQorl?= =?us-ascii?Q?M7015EEMnvuzE58UOCa6RvmRx88VANd2IOLhy+jdScd9YJM5FmECpdlV3hZl?= =?us-ascii?Q?OnimdSVTLIvAtjraUcoAOasT7iau/vQnEYyWOD2eB2RhE0GuG975bN94nA4K?= =?us-ascii?Q?lkEivVjUMqdQ/MZzCZCME0iYwB1fD+EtsNM61abjUE9WVVz6D8OLjUVlrLw5?= =?us-ascii?Q?iv65S3JCDmQyB9Gdh9jVsQObbhfJVG2cbmN55zEWdFTMUBchr/cYmJbl++vx?= =?us-ascii?Q?MdUOPvV/SPcZ9xiIMpwi0SXzDV7/lGJ97+8KLCQzXmp469hW3V3sNQO4CfVt?= =?us-ascii?Q?0YxfG5skHLWMTfhOzHXVXhVNJHwBRZxRIvrbuVfsaeyoZHjI24vGmpHEhouP?= =?us-ascii?Q?ncrsW4AivNn8pnIPkxqiUfsUIxz5TwF7Wc8Eejn85VOiL75C09ZFBHmWjC/j?= =?us-ascii?Q?osWwYqOShY/JOwkJ5vZQw4A6rgfaYh4KdbwZZBm6/MHsylMbb+WkUTc2+MUm?= =?us-ascii?Q?6ZmIIb7+GI9Mw9mj+OyR1p3WEfVqYHSO2nzbOvAJC8ehzJkCuI8HjcaWM7dU?= =?us-ascii?Q?5Ma81V1RTnGY11BI+H2p0IJzUjUkT344YVoqcwYJlHVWSAE/gh7Wzsszo7YT?= =?us-ascii?Q?KN/4NWETLgH5S14BQVw/YaWC+5Ru6CJo1Y/CjXL14kxL0Dab5qznzlamP5re?= =?us-ascii?Q?+O+Rnv0nbS9Ms7aOPwkaqrTsYixyH2cdgEnYZmLOWh7JNfAyKDcB1bRinoHz?= =?us-ascii?Q?kBGx33yRhFclCKhGay93Psjm0wGl/BPjJ8IuPb5Vo5daopZ07hl7EGtR7zxB?= =?us-ascii?Q?VqGG0u2xVI9yla4MY7bIF4shT1eMvYQxuZceEA/OPS17A0PAJ+5thLhLrKWQ?= =?us-ascii?Q?gfAoX2FVgOigaO5thJOCtqw879SqlPSULO303gWhLC+GZNE7I36DLfSm48c6?= =?us-ascii?Q?nxb/YUYJ8+trQ0pr9xxcIMr3wLgeMWA3hM18oDXY4ixev7Wd1Qs6F+YwQob4?= =?us-ascii?Q?MUNHgO+23T8c1uCdDRU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73fabcba-500d-40ec-2619-08d9ec846291 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8198.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2022 10:59:18.5965 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ii1WlhnoFIhpYUe/DGe9HWXmnQp1aPS//JzzU4GksRbco71KtPve6exmWSt9PuXj X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4294 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Few useful debug prints added in dequeue function. Signed-off-by: Gagandeep Singh --- doc/guides/cryptodevs/dpaa2_sec.rst | 10 ++ drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 136 +++++++++++++++++++- 2 files changed, 144 insertions(+), 2 deletions(-) diff --git a/doc/guides/cryptodevs/dpaa2_sec.rst b/doc/guides/cryptodevs/dpaa2_sec.rst index 06de988d51..875d918068 100644 --- a/doc/guides/cryptodevs/dpaa2_sec.rst +++ b/doc/guides/cryptodevs/dpaa2_sec.rst @@ -175,3 +175,13 @@ For enabling logs, use the following EAL parameter: Using ``crypto.dpaa2`` as log matching criteria, all Crypto PMD logs can be enabled which are lower than logging ``level``. + +Enabling debug prints +--------------------- + +Use dev arg option ``drv_dump_mode=x`` to dump useful debug prints on HW sec +error. There are 3 dump modes available 0, 1 and 2. Mode 0 means no dump print +on error, mode 1 means dump HW error code and mode 2 means dump HW error code +along with other useful debugging information like session, queue, descriptor +data. +e.g. ``fslmc:dpseci.1,drv_dump_mode=1`` diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 1e6b3e548a..444e1f0043 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "dpaa2_sec_priv.h" #include "dpaa2_sec_event.h" @@ -50,7 +51,17 @@ #define NO_PREFETCH 0 +#define DRIVER_DUMP_MODE "drv_dump_mode" + +/* DPAA2_SEC_DP_DUMP levels */ +enum dpaa2_sec_dump_levels { + DPAA2_SEC_DP_NO_DUMP, + DPAA2_SEC_DP_ERR_DUMP, + DPAA2_SEC_DP_FULL_DUMP +}; + uint8_t cryptodev_driver_id; +uint8_t dpaa2_sec_dp_dump = DPAA2_SEC_DP_ERR_DUMP; #ifdef RTE_LIB_SECURITY static inline int @@ -1621,6 +1632,83 @@ sec_fd_to_mbuf(const struct qbman_fd *fd) return op; } +static void +dpaa2_sec_dump(struct rte_crypto_op *op) +{ + int i; + dpaa2_sec_session *sess = NULL; + struct ctxt_priv *priv; + uint8_t bufsize; + struct rte_crypto_sym_op *sym_op; + + if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION) + sess = (dpaa2_sec_session *)get_sym_session_private_data( + op->sym->session, cryptodev_driver_id); +#ifdef RTE_LIBRTE_SECURITY + else if (op->sess_type == RTE_CRYPTO_OP_SECURITY_SESSION) + sess = (dpaa2_sec_session *)get_sec_session_private_data( + op->sym->sec_session); +#endif + + if (sess == NULL) + goto mbuf_dump; + + priv = (struct ctxt_priv *)sess->ctxt; + printf("\n****************************************\n" + "session params:\n\tContext type:\t%d\n\tDirection:\t%s\n" + "\tCipher alg:\t%d\n\tAuth alg:\t%d\n\tAead alg:\t%d\n" + "\tCipher key len:\t%zd\n", sess->ctxt_type, + (sess->dir == DIR_ENC) ? "DIR_ENC" : "DIR_DEC", + sess->cipher_alg, sess->auth_alg, sess->aead_alg, + sess->cipher_key.length); + rte_hexdump(stdout, "cipher key", sess->cipher_key.data, + sess->cipher_key.length); + rte_hexdump(stdout, "auth key", sess->auth_key.data, + sess->auth_key.length); + printf("\tAuth key len:\t%zd\n\tIV len:\t\t%d\n\tIV offset:\t%d\n" + "\tdigest length:\t%d\n\tstatus:\t\t%d\n\taead auth only" + " len:\t%d\n\taead cipher text:\t%d\n", + sess->auth_key.length, sess->iv.length, sess->iv.offset, + sess->digest_length, sess->status, + sess->ext_params.aead_ctxt.auth_only_len, + sess->ext_params.aead_ctxt.auth_cipher_text); +#ifdef RTE_LIBRTE_SECURITY + printf("PDCP session params:\n" + "\tDomain:\t\t%d\n\tBearer:\t\t%d\n\tpkt_dir:\t%d\n\thfn_ovd:" + "\t%d\n\tsn_size:\t%d\n\thfn_ovd_offset:\t%d\n\thfn:\t\t%d\n" + "\thfn_threshold:\t0x%x\n", sess->pdcp.domain, + sess->pdcp.bearer, sess->pdcp.pkt_dir, sess->pdcp.hfn_ovd, + sess->pdcp.sn_size, sess->pdcp.hfn_ovd_offset, sess->pdcp.hfn, + sess->pdcp.hfn_threshold); + +#endif + bufsize = (uint8_t)priv->flc_desc[0].flc.word1_sdl; + printf("Descriptor Dump:\n"); + for (i = 0; i < bufsize; i++) + printf("\tDESC[%d]:0x%x\n", i, priv->flc_desc[0].desc[i]); + + printf("\n"); +mbuf_dump: + sym_op = op->sym; + if (sym_op->m_src) { + printf("Source mbuf:\n"); + rte_pktmbuf_dump(stdout, sym_op->m_src, sym_op->m_src->data_len); + } + if (sym_op->m_dst) { + printf("Destination mbuf:\n"); + rte_pktmbuf_dump(stdout, sym_op->m_dst, sym_op->m_dst->data_len); + } + + printf("Session address = %p\ncipher offset: %d, length: %d\n" + "auth offset: %d, length: %d\n aead offset: %d, length: %d\n" + , sym_op->session, + sym_op->cipher.data.offset, sym_op->cipher.data.length, + sym_op->auth.data.offset, sym_op->auth.data.length, + sym_op->aead.data.offset, sym_op->aead.data.length); + printf("\n"); + +} + static uint16_t dpaa2_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops, uint16_t nb_ops) @@ -1702,8 +1790,13 @@ dpaa2_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops, if (unlikely(fd->simple.frc)) { /* TODO Parse SEC errors */ - DPAA2_SEC_DP_ERR("SEC returned Error - %x\n", - fd->simple.frc); + if (dpaa2_sec_dp_dump > DPAA2_SEC_DP_NO_DUMP) { + DPAA2_SEC_DP_ERR("SEC returned Error - %x\n", + fd->simple.frc); + if (dpaa2_sec_dp_dump > DPAA2_SEC_DP_ERR_DUMP) + dpaa2_sec_dump(ops[num_rx]); + } + dpaa2_qp->rx_vq.err_pkts += 1; ops[num_rx]->status = RTE_CRYPTO_OP_STATUS_ERROR; } else { @@ -3883,6 +3976,42 @@ dpaa2_sec_uninit(const struct rte_cryptodev *dev) return 0; } +static int +check_devargs_handler(__rte_unused const char *key, const char *value, + __rte_unused void *opaque) +{ + dpaa2_sec_dp_dump = atoi(value); + if (dpaa2_sec_dp_dump > DPAA2_SEC_DP_FULL_DUMP) { + DPAA2_SEC_WARN("WARN: DPAA2_SEC_DP_DUMP_LEVEL is not " + "supported, changing to FULL error prints\n"); + dpaa2_sec_dp_dump = DPAA2_SEC_DP_FULL_DUMP; + } + + return 0; +} + +static void +dpaa2_sec_get_devargs(struct rte_devargs *devargs, const char *key) +{ + struct rte_kvargs *kvlist; + + if (!devargs) + return; + + kvlist = rte_kvargs_parse(devargs->args, NULL); + if (!kvlist) + return; + + if (!rte_kvargs_count(kvlist, key)) { + rte_kvargs_free(kvlist); + return; + } + + rte_kvargs_process(kvlist, key, + check_devargs_handler, NULL); + rte_kvargs_free(kvlist); +} + static int dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev) { @@ -3984,6 +4113,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev) goto init_error; } + dpaa2_sec_get_devargs(cryptodev->device->devargs, DRIVER_DUMP_MODE); DPAA2_SEC_INFO("driver %s: created", cryptodev->data->name); return 0; @@ -4082,4 +4212,6 @@ static struct cryptodev_driver dpaa2_sec_crypto_drv; RTE_PMD_REGISTER_DPAA2(CRYPTODEV_NAME_DPAA2_SEC_PMD, rte_dpaa2_sec_driver); RTE_PMD_REGISTER_CRYPTO_DRIVER(dpaa2_sec_crypto_drv, rte_dpaa2_sec_driver.driver, cryptodev_driver_id); +RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_DPAA2_SEC_PMD, + DRIVER_DUMP_MODE "="); RTE_LOG_REGISTER(dpaa2_logtype_sec, pmd.crypto.dpaa2, NOTICE); -- 2.25.1