get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/45650/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 45650,
    "url": "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"
    ]
}