get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 109386,
    "url": "http://patches.dpdk.org/api/patches/109386/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220407105706.18889-35-kevinx.liu@intel.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": "<20220407105706.18889-35-kevinx.liu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220407105706.18889-35-kevinx.liu@intel.com",
    "date": "2022-04-07T10:57:01",
    "name": "[34/39] net/ice: enable multiple queues configurations for large VF",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "e50aca62689ddff5647ca036f26f2c1332bd36c5",
    "submitter": {
        "id": 2440,
        "url": "http://patches.dpdk.org/api/people/2440/?format=api",
        "name": "Kevin Liu",
        "email": "kevinx.liu@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patches.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220407105706.18889-35-kevinx.liu@intel.com/mbox/",
    "series": [
        {
            "id": 22387,
            "url": "http://patches.dpdk.org/api/series/22387/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=22387",
            "date": "2022-04-07T10:56:27",
            "name": "support full function of DCF",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/22387/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/109386/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/109386/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 615E5A0508;\n\tThu,  7 Apr 2022 05:01:32 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C3822428D4;\n\tThu,  7 Apr 2022 04:59:51 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id D674A428D1\n for <dev@dpdk.org>; Thu,  7 Apr 2022 04:59:49 +0200 (CEST)",
            "from orsmga008.jf.intel.com ([10.7.209.65])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Apr 2022 19:59:49 -0700",
            "from intel-cd-odc-kevin.cd.intel.com ([10.240.178.195])\n by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Apr 2022 19:59:47 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1649300390; x=1680836390;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=BXykvfiigE4sMKMZH2fNyM24dHMztkFA7gCGMyrg/jQ=;\n b=NX1TvtOfj2j5f8RfT2zvq9QMuVoGEYCrCA8U5dl8X1rxW8Y3EucezCzc\n DipeLSfsSE0kkl9ULXji8fKnGcG1RJAbop/u95BjGiCjFiwjQoQQ6gblJ\n knCiUoYPSn9iN1OR86W+zSGjIOjD+MK8m2cDF00PcOrc55RTUtegJ8ioB\n NtNuDC7IBeIBNokGcHC0CDR5ZAWf/xuCKGghfX5zFfZz3dt0ByX+jxlg3\n 0m/vkctK2+l1CK3/F2ZN1O/kJx1rGC0tddt+FuCH8vocFhivWuCHJEzau\n 1C1KJzCGwvxGPHxpec8dLY/1zTwe3J6VekqN3nB5xefcokYT4d84nD5Hm w==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10309\"; a=\"248738500\"",
            "E=Sophos;i=\"5.90,241,1643702400\"; d=\"scan'208\";a=\"248738500\"",
            "E=Sophos;i=\"5.90,241,1643702400\"; d=\"scan'208\";a=\"570850822\""
        ],
        "From": "Kevin Liu <kevinx.liu@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "qiming.yang@intel.com, qi.z.zhang@intel.com, stevex.yang@intel.com,\n Kevin Liu <kevinx.liu@intel.com>",
        "Subject": "[PATCH 34/39] net/ice: enable multiple queues configurations for\n large VF",
        "Date": "Thu,  7 Apr 2022 10:57:01 +0000",
        "Message-Id": "<20220407105706.18889-35-kevinx.liu@intel.com>",
        "X-Mailer": "git-send-email 2.33.1",
        "In-Reply-To": "<20220407105706.18889-1-kevinx.liu@intel.com>",
        "References": "<20220407105706.18889-1-kevinx.liu@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "From: Steve Yang <stevex.yang@intel.com>\n\nSince the adminq buffer size has a 4K limitation, the current virtchnl\ncommand VIRTCHNL_OP_CONFIG_VSI_QUEUES cannot send the message only once to\nconfigure up to 256 queues. In this patch, we send the messages multiple\ntimes to make sure that the buffer size is less than 4K each time.\n\nSigned-off-by: Steve Yang <stevex.yang@intel.com>\nSigned-off-by: Kevin Liu <kevinx.liu@intel.com>\n---\n drivers/net/ice/ice_dcf.c        | 11 ++++++-----\n drivers/net/ice/ice_dcf.h        |  3 ++-\n drivers/net/ice/ice_dcf_ethdev.c | 20 ++++++++++++++++++--\n drivers/net/ice/ice_dcf_ethdev.h |  1 +\n 4 files changed, 27 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c\nindex 8807308bb2..7a0a9a3534 100644\n--- a/drivers/net/ice/ice_dcf.c\n+++ b/drivers/net/ice/ice_dcf.c\n@@ -950,7 +950,8 @@ ice_dcf_init_rss(struct ice_dcf_hw *hw)\n #define IAVF_RXDID_COMMS_OVS_1 22\n \n int\n-ice_dcf_configure_queues(struct ice_dcf_hw *hw)\n+ice_dcf_configure_queues(struct ice_dcf_hw *hw,\n+\t\t\t uint16_t num_queue_pairs, uint16_t index)\n {\n \tstruct ice_rx_queue **rxq =\n \t\t(struct ice_rx_queue **)hw->eth_dev->data->rx_queues;\n@@ -963,16 +964,16 @@ ice_dcf_configure_queues(struct ice_dcf_hw *hw)\n \tint err;\n \n \tsize = sizeof(*vc_config) +\n-\t       sizeof(vc_config->qpair[0]) * hw->num_queue_pairs;\n+\t       sizeof(vc_config->qpair[0]) * num_queue_pairs;\n \tvc_config = rte_zmalloc(\"cfg_queue\", size, 0);\n \tif (!vc_config)\n \t\treturn -ENOMEM;\n \n \tvc_config->vsi_id = hw->vsi_res->vsi_id;\n-\tvc_config->num_queue_pairs = hw->num_queue_pairs;\n+\tvc_config->num_queue_pairs = num_queue_pairs;\n \n-\tfor (i = 0, vc_qp = vc_config->qpair;\n-\t     i < hw->num_queue_pairs;\n+\tfor (i = index, vc_qp = vc_config->qpair;\n+\t     i < index + num_queue_pairs;\n \t     i++, vc_qp++) {\n \t\tvc_qp->txq.vsi_id = hw->vsi_res->vsi_id;\n \t\tvc_qp->txq.queue_id = i;\ndiff --git a/drivers/net/ice/ice_dcf.h b/drivers/net/ice/ice_dcf.h\nindex 8efa3e5b23..1f45881315 100644\n--- a/drivers/net/ice/ice_dcf.h\n+++ b/drivers/net/ice/ice_dcf.h\n@@ -131,7 +131,8 @@ void ice_dcf_uninit_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw);\n int ice_dcf_configure_rss_key(struct ice_dcf_hw *hw);\n int ice_dcf_configure_rss_lut(struct ice_dcf_hw *hw);\n int ice_dcf_init_rss(struct ice_dcf_hw *hw);\n-int ice_dcf_configure_queues(struct ice_dcf_hw *hw);\n+int ice_dcf_configure_queues(struct ice_dcf_hw *hw,\n+\t\t\t     uint16_t num_queue_pairs, uint16_t index);\n int ice_dcf_request_queues(struct ice_dcf_hw *hw, uint16_t num);\n int ice_dcf_get_max_rss_queue_region(struct ice_dcf_hw *hw);\n int ice_dcf_config_irq_map(struct ice_dcf_hw *hw);\ndiff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c\nindex 4ffc10b0de..211a2510fa 100644\n--- a/drivers/net/ice/ice_dcf_ethdev.c\n+++ b/drivers/net/ice/ice_dcf_ethdev.c\n@@ -514,6 +514,8 @@ ice_dcf_dev_start(struct rte_eth_dev *dev)\n \tstruct rte_intr_handle *intr_handle = dev->intr_handle;\n \tstruct ice_adapter *ad = &dcf_ad->parent;\n \tstruct ice_dcf_hw *hw = &dcf_ad->real_hw;\n+\tuint16_t num_queue_pairs;\n+\tuint16_t index = 0;\n \tint ret;\n \n \tif (hw->resetting) {\n@@ -532,6 +534,7 @@ ice_dcf_dev_start(struct rte_eth_dev *dev)\n \n \thw->num_queue_pairs = RTE_MAX(dev->data->nb_rx_queues,\n \t\t\t\t      dev->data->nb_tx_queues);\n+\tnum_queue_pairs = hw->num_queue_pairs;\n \n \tret = ice_dcf_init_rx_queues(dev);\n \tif (ret) {\n@@ -547,7 +550,20 @@ ice_dcf_dev_start(struct rte_eth_dev *dev)\n \t\t}\n \t}\n \n-\tret = ice_dcf_configure_queues(hw);\n+\t/* If needed, send configure queues msg multiple times to make the\n+\t * adminq buffer length smaller than the 4K limitation.\n+\t */\n+\twhile (num_queue_pairs > ICE_DCF_CFG_Q_NUM_PER_BUF) {\n+\t\tif (ice_dcf_configure_queues(hw,\n+\t\t\t\tICE_DCF_CFG_Q_NUM_PER_BUF, index) != 0) {\n+\t\t\tPMD_DRV_LOG(ERR, \"configure queues failed\");\n+\t\t\tgoto err_queue;\n+\t\t}\n+\t\tnum_queue_pairs -= ICE_DCF_CFG_Q_NUM_PER_BUF;\n+\t\tindex += ICE_DCF_CFG_Q_NUM_PER_BUF;\n+\t}\n+\n+\tret = ice_dcf_configure_queues(hw, num_queue_pairs, index);\n \tif (ret) {\n \t\tPMD_DRV_LOG(ERR, \"Fail to config queues\");\n \t\treturn ret;\n@@ -587,7 +603,7 @@ ice_dcf_dev_start(struct rte_eth_dev *dev)\n \n \n \tdev->data->dev_link.link_status = RTE_ETH_LINK_UP;\n-\n+err_queue:\n \treturn 0;\n }\n \ndiff --git a/drivers/net/ice/ice_dcf_ethdev.h b/drivers/net/ice/ice_dcf_ethdev.h\nindex 4a08d32e0c..2fac1e5b21 100644\n--- a/drivers/net/ice/ice_dcf_ethdev.h\n+++ b/drivers/net/ice/ice_dcf_ethdev.h\n@@ -22,6 +22,7 @@\n #define ICE_DCF_ETH_MAX_LEN (RTE_ETHER_MTU + ICE_DCF_ETH_OVERHEAD)\n #define ICE_DCF_MAX_NUM_QUEUES_DFLT 16\n #define ICE_DCF_MAX_NUM_QUEUES_LV   256\n+#define ICE_DCF_CFG_Q_NUM_PER_BUF   32\n \n struct ice_dcf_queue {\n \tuint64_t dummy;\n",
    "prefixes": [
        "34/39"
    ]
}