From patchwork Tue Dec 28 09:10:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 105458 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 33917A034F; Tue, 28 Dec 2021 10:12:05 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4E8B94114F; Tue, 28 Dec 2021 10:11:43 +0100 (CET) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00044.outbound.protection.outlook.com [40.107.0.44]) by mails.dpdk.org (Postfix) with ESMTP id A38234114F for ; Tue, 28 Dec 2021 10:11:41 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tb4z1R9Jk9RLDOe2sFKtyVqVOW45FHGPP9pP66vq3B8fIiC8bfGBbEw+PXxh9Iz2gd1BR1lzuxbCugwPuyqQBK9/KtDIhHdu6cfNkeF44+q47PBxHnltieCVxhR6c3wMENhGTaxdXp8yUfnTngb/YkjktRO2dhq972QbVNSkLQLb27mCZvtSw7fLHCKVKbNkd4udhnDGinwChwKLSWsYvVtIOVwU9UwnMJmXSOvhrTzQmiQvuHBq5aXXET1IIDyHk4nEyOZB5sRI1KpxxGxom8okyXUhHJOp+wXhkc6SLgiFJYCyIQ229Ob0mtlNKt5UzHxkX/cftt7bP3+73IF34w== 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=V7cEuJQXjU0srJ6cYd8/Qt74TY6AFMJOAW75aHcqTMY=; b=S7uvbYCDPX8nRqLiczvwCQf8DOfRGAOJeNK6PifSAZM5pCLruyToudC7pkYXIhvq3VRjLKo3MdxoNnuQCYs+qCOPJwbNUyf8mEG7+sVPFGRsNkLS8bfxzgaNbrQGpHL1N3CZY0EtH4gO4D+3tBeZypX3/Lm9J8pkWtVrJsXhKmtC+dp/WtZApK7ngxl2t5UDEsj4hGR8ktZHMRv/jRc2mnM1VDVwIRqXX6+a023AXH9yfyJJ7thj8HGmBv1lnd42fLLPZ9XS849Mp5tlGkL2kUSpGy50jWvazQ3w/GuBpAOetFxdhRZtZU7bWz35gVnM5CKXuC/MEKev+HlUJpfW+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; 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=V7cEuJQXjU0srJ6cYd8/Qt74TY6AFMJOAW75aHcqTMY=; b=O2WCe53bR/3CuEyGNGMq0WO6HsueLzOvMl7OCDC6AM7fJx8RZ02j0sCzZ+DQHVvCfZv95ktT2cJA/Nrgq8bokjiJlQu5HbAdXTuj1grerdei147eZz/EjPZDxor1zrWpradbbeCjhwzRZkzpjo3snZbTfN7j+KkA8ZzsMpyPq1Y= 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 AM6PR04MB6135.eurprd04.prod.outlook.com (2603:10a6:20b:bf::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.21; Tue, 28 Dec 2021 09:11:35 +0000 Received: from AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::4c23:c171:682e:9085]) by AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::4c23:c171:682e:9085%4]) with mapi id 15.20.4823.023; Tue, 28 Dec 2021 09:11:35 +0000 From: Gagandeep Singh To: gakhil@marvell.com, dev@dpdk.org Cc: Gagandeep Singh Subject: [PATCH v2 6/8] crypto/dpaa2_sec: add useful debug prints in sec dequeue Date: Tue, 28 Dec 2021 14:40:56 +0530 Message-Id: <20211228091058.3620177-7-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211228091058.3620177-1-g.singh@nxp.com> References: <20211220102710.3083370-1-g.singh@nxp.com> <20211228091058.3620177-1-g.singh@nxp.com> X-ClientProxiedBy: SG2PR06CA0118.apcprd06.prod.outlook.com (2603:1096:1:1d::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: 6bc434e7-789d-48cb-a38a-08d9c9e20be4 X-MS-TrafficTypeDiagnostic: AM6PR04MB6135: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: CShRGox3wyod9gmjBjKJ29Nk5tOwbuWPEtXWAsHahOJFYNVr9/IcTdSISZSkZ//BWcltIBlI7fmXn5ZrfdF0a8YKoVOVM0J/hDI6KRa47pIuv5YHpIODvpuGqmkjMVQpXy+Qd1T5xCMvCCx9zz7yb047Ewc67L6JVB4CGc3HCM214M5LiAnV6SxswgHFblF4jW1oQFmAXktKycPM9lib5OrXhloiezHz9EWSAqu2VR4Y4uMMTHhY82TKJNfjyDSugLy9HM87eq7+A+g1PF3fb7gmKHzugrqDI7OGbuLQbY5KQw6BycY/5JfSjxKvEmUvtFKq0jkUTV7cbV2M8CkdWB2bMaNUdAg7lFoW8zJS7olksdM3Oqnx+1GtKC9N3pjpAgNbTh+6a47OQW4Ey2ltHo4Cj/zVanueyyZrR0tWTM4fYOXhIQ3YXNaipcsqAeMbMXHDw9w5XiKjwBXk+YmfAaRzAQQBy0a4zHjgz+SCpsWjElgMY2cdJ+Bf9BGdbzGCX2H1g595y2CcvHCvXQ+ZqTjU9gjnsDVC+NpquW1UEWGyWdybhRT/qoNonMCanAEWjKsle2QEQpj7vigG8XhRk7kEmUaSwiMavMYMlcEeTzZuI3dOAdi5xaNNS+q+BSFhavfL1SL3CRAEUuU9DfCiPl2nn7jNdh/6bHVzUpJCpJHU+sIFN9Py1Pn71ur2aaCFK4HepPeKtu6LEIHWe1s6Bw== 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:(4636009)(366004)(316002)(8676002)(2616005)(6486002)(4326008)(6506007)(66556008)(66476007)(6512007)(6666004)(55236004)(38100700002)(38350700002)(36756003)(52116002)(83380400001)(2906002)(1076003)(66946007)(86362001)(26005)(5660300002)(8936002)(186003)(508600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: h6oMMcXldHMRU65F51An8AY6EFWOexeBvPx1BvcodKCJ6ssr4ClzWaupJu4R/xy1vDL2zDwYitxi8qQUurrGIzXoFzUjGKcPsePO5KRDYGzXce8g5O45PVLgB0GToNrz62hODn2Xk103mPuyrJf6LWg/oHuJn6oKBgh1ztXP+a/kN/YK7zxeoinA8o/LhVKWEx7M8bBQ0gRQ3kq9m2mMhUalEuZOkbw+2ZF5zZu9L+jiBJkYkPSW1N2IRYIPvOKMBng1jgAKJC37xDjilsqhPG+oc8Nv6Vl3iW4YhkXNgUqe2QiIcjgfO42DgPi+GVMmcqpra2z/BJOjpVpNcDYFfKTVLA8pjalySbNUXnCodW7qKV/LVmWYyCfD/ApzIhkFV8UCABZKLqYl9JKzUMcAhXmz18UacRW5GKcvurBGYT4vWsvYHkklwFbJTgVbKiKEQjzFfvEsnxovkHtJZ8J+8aQJ/9oKGar2Lwhgua+HVcOz9jnGq2UjsUtDThmNjI2KopuRC4lIBUbx0rLuFHbkAYl6MzCPY/t+zzG4amPVVcOYbETlG1Od9mpksDdaK6HqF0/0OINsDYxJv1Gb8lnukI1FAAugMNYE9pHsPXxK8jqYCD1uqfNFyfitEJF5SEy5pC3IIPC3BFK3ZOGxRyBMCb7huVlj7pH4zT5OTr1DE1q5ZNIlok6fH+3gMfMyYKWCHrfsK0l17+ExnafxyBCcOsKynwjWM3nL2fTZT03v7cARkr7mbJlmIpbihv4Tf9V5ShZxI1lMF8iWmZYJJXwPHp+p9JZwmBL3hImuEAPplEQZXU/JudTslUvjLxz7x1kQGpe5WyPRqbP7C35EN/xTi1Hx5om5Mlx2xawx6Ih4MI4FfzELImaF/8qCJ1tVc6H2atwKznJQ5lGXdxetAzvIwg1mqKspAvLkz1YJyNd4lae0V6Q2RlnBRGSxkc7MhcmaLrNx9+0oIPHep20MSREzSywxrtHUPx2R5JEHyayDjamzhdFTfZlUgM1KPJnvsPwRwqE/sXIAZsaV4JfFDiaP9Oy3X4nSBJbed1SCbsdy75sRghNvbgYYXHdR1rNZE8CmAu+nA/YR101256gE9x8i2MaK5+HU6LqORkz5uytwDzwkAE9icDrzw5c+NCR8BXzjKpJxOj07KdOZ1c3bkelMroG4wtid0sLQusUEFwjyK01xL1dPmWBCsETIOc83vJCCCqgmfr+QL/HIdpKixFtu2mR5hLtm+IkhtP2AKulYUWkQh7RTf2JQii0924DfLhAdh6LQKkWXbYP/YhrZDsZbTYO2qseX/fsBJhx2uc8mHvJQWpUJZG42UGMQKKl0SipmNNORzr8jD2xeWzDxgvmfVR87BzTnAv3+ZkHglxcJOlfPBolqAdnPkf4diwlXbKaRV1wEy7jTTy9HoIANtWNZuYAOW56E/LSJBKCYMMXuPr+6qL0ozQqu2FzqxAGKxcOY/GGKT5LrPTaYi7v4DONDgLTPc4QMHz/xfWsP/CSmiEILoG4IGIElRYUxoZgegIbZyNbKqvrVaDSUniIQZms9EbSHKJYfkoAJEikrrpsJX6w= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6bc434e7-789d-48cb-a38a-08d9c9e20be4 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8198.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2021 09:11:35.1773 (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: Q+z2eGCgwYLGsp9yAAAHbSKM2ntJaSJYc4QLwJftumapwPIHEnlomJYmSQcQT7bk X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB6135 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 99f5157abe..b65416097c 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 @@ -1784,6 +1795,83 @@ dpaa2_sec_enqueue_burst_ordered(void *qp, struct rte_crypto_op **ops, return num_tx; } +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) @@ -1865,8 +1953,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 { @@ -4132,6 +4225,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) { @@ -4233,6 +4362,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; @@ -4331,4 +4461,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);