Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/45650/?format=api
http://patches.dpdk.org/api/patches/45650/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1538208822-9726-12-git-send-email-rasesh.mody@cavium.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1538208822-9726-12-git-send-email-rasesh.mody@cavium.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1538208822-9726-12-git-send-email-rasesh.mody@cavium.com", "date": "2018-09-29T08:14:33", "name": "[11/18] net/qede/base: add periodic Doorbell Recovery support", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "c0a8e00408d26b0b689bca2f4424349e94e097b4", "submitter": { "id": 569, "url": "http://patches.dpdk.org/api/people/569/?format=api", "name": "Mody, Rasesh", "email": "rasesh.mody@cavium.com" }, "delegate": { "id": 319, "url": "http://patches.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1538208822-9726-12-git-send-email-rasesh.mody@cavium.com/mbox/", "series": [ { "id": 1596, "url": "http://patches.dpdk.org/api/series/1596/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1596", "date": "2018-09-29T08:13:57", "name": "net/qede: base driver update", "version": 1, "mbox": "http://patches.dpdk.org/series/1596/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/45650/comments/", "check": "fail", "checks": "http://patches.dpdk.org/api/patches/45650/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 217681B117;\n\tSat, 29 Sep 2018 10:14:49 +0200 (CEST)", "from NAM02-CY1-obe.outbound.protection.outlook.com\n\t(mail-cys01nam02on0063.outbound.protection.outlook.com\n\t[104.47.37.63]) by dpdk.org (Postfix) with ESMTP id 323852C37\n\tfor <dev@dpdk.org>; Sat, 29 Sep 2018 10:14:36 +0200 (CEST)", "from BYAPR07MB5365.namprd07.prod.outlook.com (20.177.125.18) by\n\tBYAPR07MB4806.namprd07.prod.outlook.com (20.176.248.157) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1164.20; Sat, 29 Sep 2018 08:14:33 +0000", "from BYAPR07MB5365.namprd07.prod.outlook.com\n\t([fe80::2047:9647:f196:bde0]) by\n\tBYAPR07MB5365.namprd07.prod.outlook.com\n\t([fe80::2047:9647:f196:bde0%6]) with mapi id 15.20.1143.022;\n\tSat, 29 Sep 2018 08:14:33 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=mclXljZnzbz/C6qCg8i6SJ0ZSBFMY4HDCZaYLEax3VI=;\n\tb=JpNVPJoXrhpF0kbR85ftJJuumPaOmhV2/9/peqEkgAVpGdSxYhWIMXCtoVapVqsHtP2qDo1vuWT0wlL4TeToF7Q+s14iakiqCMbMPsllmTigapMGD4J0tZ9yZIVUsro8iQ4+jOd66iRBSRLpTrb52dcCXp97yPfJKpyzKXqr9qk=", "From": "\"Mody, Rasesh\" <Rasesh.Mody@cavium.com>", "To": "\"dev@dpdk.org\" <dev@dpdk.org>", "CC": "\"Mody, Rasesh\" <Rasesh.Mody@cavium.com>, \"ferruh.yigit@intel.com\"\n\t<ferruh.yigit@intel.com>, Dept-Eng DPDK Dev <Dept-EngDPDKDev@cavium.com>", "Thread-Topic": "[PATCH 11/18] net/qede/base: add periodic Doorbell Recovery\n\tsupport", "Thread-Index": "AQHUV8x0Bf69XvAfqEuhZLtDy3tGFw==", "Date": "Sat, 29 Sep 2018 08:14:33 +0000", "Message-ID": "<1538208822-9726-12-git-send-email-rasesh.mody@cavium.com>", "References": "<1538208822-9726-1-git-send-email-rasesh.mody@cavium.com>", "In-Reply-To": "<1538208822-9726-1-git-send-email-rasesh.mody@cavium.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-clientproxiedby": "BYAPR11CA0059.namprd11.prod.outlook.com\n\t(2603:10b6:a03:80::36) To BYAPR07MB5365.namprd07.prod.outlook.com\n\t(2603:10b6:a03:64::18)", "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Rasesh.Mody@cavium.com; ", "x-ms-exchange-messagesentrepresentingtype": "1", "x-originating-ip": "[198.186.1.5]", "x-ms-publictraffictype": "Email", "x-microsoft-exchange-diagnostics": "1; BYAPR07MB4806;\n\t6:6vgCrs88l53z7JZJBJ7+g6l+JDkwH4QSxoLZJseu3dCBIOtWh4QPT8udWKELjITSgLztqEbWGT/8+m5wkLPx1wPL4jDtAUBcrNbplO0iAQUMVrSMJy/it2LZynlf3isRvYujv0vgZX9UGiiTAt/SVzU6AAOKsCs20+yABgTqAbbZi27WoQU7OXz0/CKcBd+wqRzRakhegdgbQnW6yVnTN5mtuzKNwhyqz1tXN2L/1KYkTSpnQSZWWNQuiFByDoIwgiNV+tOHwabZCJDvRiS9iw+u8YVEJD7qDMqlc8/eCD70bPq3HafE8Hm5uqsYhXiCd+p99agsBnYYWtQ5e97D29BGpZGK/td1eUkr6v7rj5D30EY6jAMZQMhTQXE0Xm7f2PEs5AyqN0RsJxQQqdQifQ8zSudzeApTh69Sr+uazmJo5lD2SpCUVqLqzdwEIacZ3mVViGHHJzM12t0p+m3BWQ==;\n\t5:oklq0v87Vo6ejnRnCaZZJfpGdAeYkVw1VBnh2OGLPhvP5hdnFxHEJeZM8YKohGhE/4hPNqPTn8SPCARNBSyWjV7TmOAEwMGA8s5af4ldsq1B8S8cu8RxXBopgOfnKIl0SBH9ZV1BSJIAzMXLaEHleQPpOEaCQboQneGe2XNV6ek=;\n\t7:0N+9WSQvVoDe3bSOabM3I8r2ZW9RyC0SpDXYCeJqpFDpMOUw2iqQp9UipMglOFwp7neonDQSCYXIzG1RFXYEeJi/be64lG69BF0vWuVsaEA+EvjHVgCYEVtpfNtRffks7qBsE/WAnX4TpNivUnVxqaWFiBOQ343jLRVMUqlm0XzHkb4qDo1PfVFYzanuxBSaY/B3c3cqpHOnbdW/+4POr1+enae/wj9FVPnycbn89V1uNn3CTzYOayjnFS74EyYE", "x-ms-office365-filtering-correlation-id": "d30219d3-f417-4813-f4da-08d625e3967b", "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BYAPR07MB4806; ", "x-ms-traffictypediagnostic": "BYAPR07MB4806:", "x-microsoft-antispam-prvs": "<BYAPR07MB4806608C33372DC93AE31DA59FED0@BYAPR07MB4806.namprd07.prod.outlook.com>", "x-exchange-antispam-report-test": "UriScan:;", "x-ms-exchange-senderadcheck": "1", "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(10201501046)(149066)(150057)(6041310)(20161123560045)(20161123562045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051);\n\tSRVR:BYAPR07MB4806; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB4806; ", "x-forefront-prvs": "0810818DA0", "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(346002)(376002)(396003)(366004)(136003)(39860400002)(199004)(189003)(26005)(4326008)(102836004)(14444005)(256004)(2616005)(66066001)(446003)(476003)(71190400001)(71200400001)(6116002)(11346002)(3846002)(316002)(5660300001)(36756003)(486006)(2906002)(107886003)(25786009)(8936002)(68736007)(6512007)(8676002)(106356001)(14454004)(5640700003)(81156014)(81166006)(105586002)(1730700003)(6436002)(6486002)(52116002)(76176011)(53936002)(72206003)(2351001)(7736002)(305945005)(478600001)(54906003)(6916009)(2501003)(186003)(575784001)(86362001)(6506007)(386003)(5250100002)(2900100001)(34290500001)(99286004)(97736004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB4806;\n\tH:BYAPR07MB5365.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; A:1; MX:1; ", "received-spf": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)", "x-microsoft-antispam-message-info": "pLXhDUDkg0NGDVNxKNE1fhVY0jrt57nMf2K/KlIeFBD7dQUGns7iBYQaPorY7VUWV/mV0TQsR6VbAiLUFUy7xvxYmK6JbR6xqIMeAvXqaMJHB4sMc3Zn+EqXQ1zoen7iK/B1KOp/cXgczmGgi5PV/ywPTwv327IiID4W5aP9L0AFWO11EUpl7AqYI39xnbouu11jyBTRf3TNnj6qnRZOa2pQNl4OOEjvFMKa7+oI+CVOvBDe9qMWfXAjxaEIewQQ199BQhzhPCZwZ2X2QnCVPZgpEp5P0BVJxxWKqtpfN+pd8/MKHvgAVFtoUspcADf57Fo8wwfzOVLf1ERQE/RwRJ3gLAL3UiUE45qWKrR0wgM=", "spamdiagnosticoutput": "1:99", "spamdiagnosticmetadata": "NSPM", "Content-Type": "text/plain; charset=\"iso-8859-1\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-OriginatorOrg": "cavium.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "d30219d3-f417-4813-f4da-08d625e3967b", "X-MS-Exchange-CrossTenant-originalarrivaltime": "29 Sep 2018 08:14:33.5146\n\t(UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "711e4ccf-2e9b-4bcf-a551-4094005b6194", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BYAPR07MB4806", "Subject": "[dpdk-dev] [PATCH 11/18] net/qede/base: add periodic Doorbell\n\tRecovery support", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Add support for periodic Doorbell Recovery.\n\nSigned-off-by: Rasesh Mody <rasesh.mody@cavium.com>\n---\n drivers/net/qede/base/bcm_osal.h | 1 +\n drivers/net/qede/base/ecore_int.c | 37 +++++++++++++++++----------------\n drivers/net/qede/base/ecore_int_api.h | 11 ++++++++++\n 3 files changed, 31 insertions(+), 18 deletions(-)", "diff": "diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h\nindex 70805f6..1abf44f 100644\n--- a/drivers/net/qede/base/bcm_osal.h\n+++ b/drivers/net/qede/base/bcm_osal.h\n@@ -454,5 +454,6 @@ void qede_get_mcp_proto_stats(struct ecore_dev *, enum ecore_mcp_protocol_type,\n #define OSAL_DIV_S64(a, b)\t((a) / (b))\n #define OSAL_LLDP_RX_TLVS(p_hwfn, tlv_buf, tlv_size) nothing\n #define OSAL_DBG_ALLOC_USER_DATA(p_hwfn, user_data_ptr) (0)\n+#define OSAL_DB_REC_OCCURRED(p_hwfn) nothing\n \n #endif /* __BCM_OSAL_H */\ndiff --git a/drivers/net/qede/base/ecore_int.c b/drivers/net/qede/base/ecore_int.c\nindex c9acc72..fd8f657 100644\n--- a/drivers/net/qede/base/ecore_int.c\n+++ b/drivers/net/qede/base/ecore_int.c\n@@ -428,13 +428,13 @@ static enum _ecore_status_t ecore_fw_assertion(struct ecore_hwfn *p_hwfn)\n #define ECORE_DORQ_ATTENTION_SIZE_MASK\t\t(0x7f)\n #define ECORE_DORQ_ATTENTION_SIZE_SHIFT\t\t(16)\n \n-#define ECORE_DB_REC_COUNT\t\t\t10\n+#define ECORE_DB_REC_COUNT\t\t\t1000\n #define ECORE_DB_REC_INTERVAL\t\t\t100\n \n static enum _ecore_status_t ecore_db_rec_flush_queue(struct ecore_hwfn *p_hwfn,\n \t\t\t\t\t\t struct ecore_ptt *p_ptt)\n {\n-\tu8 count = ECORE_DB_REC_COUNT;\n+\tu32 count = ECORE_DB_REC_COUNT;\n \tu32 usage = 1;\n \n \t/* wait for usage to zero or count to run out. This is necessary since\n@@ -463,12 +463,19 @@ static enum _ecore_status_t ecore_db_rec_flush_queue(struct ecore_hwfn *p_hwfn,\n \treturn ECORE_SUCCESS;\n }\n \n-/* assumes sticky overflow indication was set for this PF */\n-static enum _ecore_status_t ecore_db_rec_attn(struct ecore_hwfn *p_hwfn,\n-\t\t\t\t\t struct ecore_ptt *p_ptt)\n+enum _ecore_status_t ecore_db_rec_handler(struct ecore_hwfn *p_hwfn,\n+\t\t\t\t\t struct ecore_ptt *p_ptt)\n {\n+\tu32 overflow;\n \tenum _ecore_status_t rc;\n \n+\toverflow = ecore_rd(p_hwfn, p_ptt, DORQ_REG_PF_OVFL_STICKY);\n+\tDP_NOTICE(p_hwfn, false, \"PF Overflow sticky 0x%x\\n\", overflow);\n+\tif (!overflow) {\n+\t\tecore_db_recovery_execute(p_hwfn, DB_REC_ONCE);\n+\t\treturn ECORE_SUCCESS;\n+\t}\n+\n \tif (ecore_edpm_enabled(p_hwfn)) {\n \t\trc = ecore_db_rec_flush_queue(p_hwfn, p_ptt);\n \t\tif (rc != ECORE_SUCCESS)\n@@ -491,8 +498,7 @@ static enum _ecore_status_t ecore_db_rec_attn(struct ecore_hwfn *p_hwfn,\n \n static enum _ecore_status_t ecore_dorq_attn_cb(struct ecore_hwfn *p_hwfn)\n {\n-\tu32 int_sts, first_drop_reason, details, address, overflow,\n-\t\tall_drops_reason;\n+\tu32 int_sts, first_drop_reason, details, address, all_drops_reason;\n \tstruct ecore_ptt *p_ptt = p_hwfn->p_dpc_ptt;\n \tenum _ecore_status_t rc;\n \n@@ -518,8 +524,6 @@ static enum _ecore_status_t ecore_dorq_attn_cb(struct ecore_hwfn *p_hwfn)\n \t\t\t\t DORQ_REG_DB_DROP_DETAILS);\n \t\taddress = ecore_rd(p_hwfn, p_ptt,\n \t\t\t\t DORQ_REG_DB_DROP_DETAILS_ADDRESS);\n-\t\toverflow = ecore_rd(p_hwfn, p_ptt,\n-\t\t\t\t DORQ_REG_PF_OVFL_STICKY);\n \t\tall_drops_reason = ecore_rd(p_hwfn, p_ptt,\n \t\t\t\t\t DORQ_REG_DB_DROP_DETAILS_REASON);\n \n@@ -530,19 +534,16 @@ static enum _ecore_status_t ecore_dorq_attn_cb(struct ecore_hwfn *p_hwfn)\n \t\t\t \"FID\\t\\t0x%04x\\t\\t(Opaque FID)\\n\"\n \t\t\t \"Size\\t\\t0x%04x\\t\\t(in bytes)\\n\"\n \t\t\t \"1st drop reason\\t0x%08x\\t(details on first drop since last handling)\\n\"\n-\t\t\t \"Sticky reasons\\t0x%08x\\t(all drop reasons since last handling)\\n\"\n-\t\t\t \"Overflow\\t0x%x\\t\\t(a per PF indication)\\n\",\n+\t\t\t \"Sticky reasons\\t0x%08x\\t(all drop reasons since last handling)\\n\",\n \t\t\t address,\n \t\t\t GET_FIELD(details, ECORE_DORQ_ATTENTION_OPAQUE),\n \t\t\t GET_FIELD(details, ECORE_DORQ_ATTENTION_SIZE) * 4,\n-\t\t\t first_drop_reason, all_drops_reason, overflow);\n+\t\t\t first_drop_reason, all_drops_reason);\n \n-\t\t/* if this PF caused overflow, initiate recovery */\n-\t\tif (overflow) {\n-\t\t\trc = ecore_db_rec_attn(p_hwfn, p_ptt);\n-\t\t\tif (rc != ECORE_SUCCESS)\n-\t\t\t\treturn rc;\n-\t\t}\n+\t\trc = ecore_db_rec_handler(p_hwfn, p_ptt);\n+\t\tOSAL_DB_REC_OCCURRED(p_hwfn);\n+\t\tif (rc != ECORE_SUCCESS)\n+\t\t\treturn rc;\n \n \t\t/* clear the doorbell drop details and prepare for next drop */\n \t\tecore_wr(p_hwfn, p_ptt, DORQ_REG_DB_DROP_DETAILS_REL, 0);\ndiff --git a/drivers/net/qede/base/ecore_int_api.h b/drivers/net/qede/base/ecore_int_api.h\nindex aeaf469..5b9c31d 100644\n--- a/drivers/net/qede/base/ecore_int_api.h\n+++ b/drivers/net/qede/base/ecore_int_api.h\n@@ -343,4 +343,15 @@ enum _ecore_status_t ecore_int_get_sb_dbg(struct ecore_hwfn *p_hwfn,\n enum _ecore_status_t\n ecore_int_igu_relocate_sb(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt,\n \t\t\t u16 sb_id, bool b_to_vf);\n+\n+/**\n+ * @brief - Doorbell Recovery handler.\n+ * Run DB_REAL_DEAL doorbell recovery in case of PF overflow\n+ * (and flush DORQ if needed), otherwise run DB_REC_ONCE.\n+ *\n+ * @param p_hwfn\n+ * @param p_ptt\n+ */\n+enum _ecore_status_t ecore_db_rec_handler(struct ecore_hwfn *p_hwfn,\n+\t\t\t\t\t struct ecore_ptt *p_ptt);\n #endif\n", "prefixes": [ "11/18" ] }{ "id": 45650, "url": "