Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1291767/?format=api
{ "id": 1291767, "url": "http://patchwork.ozlabs.org/api/patches/1291767/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200516004226.4795-8-anthony.l.nguyen@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20200516004226.4795-8-anthony.l.nguyen@intel.com>", "list_archive_url": null, "date": "2020-05-16T00:42:20", "name": "[S44,08/14] ice: Check UMEM FQ size when allocating bufs", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "de7452d554636389b3b86c9dcbb2b5ee66e3e084", "submitter": { "id": 68875, "url": "http://patchwork.ozlabs.org/api/people/68875/?format=api", "name": "Tony Nguyen", "email": "anthony.l.nguyen@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200516004226.4795-8-anthony.l.nguyen@intel.com/mbox/", "series": [ { "id": 177328, "url": "http://patchwork.ozlabs.org/api/series/177328/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=177328", "date": "2020-05-16T00:42:13", "name": "[S44,01/14] ice: Don't allow VLAN stripping change when pvid set", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/177328/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1291767/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1291767/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.138; helo=whitealder.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=<UNKNOWN>)", "ozlabs.org;\n dmarc=fail (p=none dis=none) header.from=intel.com" ], "Received": [ "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 49P64m5CpDz9sTC\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 16 May 2020 10:45:12 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 01224890BD;\n\tSat, 16 May 2020 00:45:10 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id gaCSwWFLU1XT; Sat, 16 May 2020 00:45:08 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id C41E0890B8;\n\tSat, 16 May 2020 00:45:05 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by ash.osuosl.org (Postfix) with ESMTP id 9E2F61BF9C6\n for <intel-wired-lan@lists.osuosl.org>; Sat, 16 May 2020 00:45:02 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by fraxinus.osuosl.org (Postfix) with ESMTP id 9B5D787F93\n for <intel-wired-lan@lists.osuosl.org>; Sat, 16 May 2020 00:45:02 +0000 (UTC)", "from fraxinus.osuosl.org ([127.0.0.1])\n by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id eoUY3fzo5F-c for <intel-wired-lan@lists.osuosl.org>;\n Sat, 16 May 2020 00:45:01 +0000 (UTC)", "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by fraxinus.osuosl.org (Postfix) with ESMTPS id 7E1BB88018\n for <intel-wired-lan@lists.osuosl.org>; Sat, 16 May 2020 00:45:01 +0000 (UTC)", "from fmsmga004.fm.intel.com ([10.253.24.48])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 May 2020 17:45:00 -0700", "from unknown (HELO localhost.jf.intel.com) ([10.166.241.65])\n by fmsmga004.fm.intel.com with ESMTP; 15 May 2020 17:45:00 -0700" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "IronPort-SDR": [ "\n gp1XBP9dP8qMM9FLXuQVF1oZjoitArtvok/LoW6coU+1ET3e2Nl0My6vvjgbgG0ffFWEB0eqe/\n uyjzp/4P/6Rg==", "\n fUJjfZZ9VBlFvzl4WyNIShCXiKSrWb9+P5RlQQTI6AcVt9KnbLDLSsIofSPDTthloRxW89P+w2\n Ub9PSXlZgNLQ==" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.73,397,1583222400\"; d=\"scan'208\";a=\"287960351\"", "From": "Tony Nguyen <anthony.l.nguyen@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Fri, 15 May 2020 17:42:20 -0700", "Message-Id": "<20200516004226.4795-8-anthony.l.nguyen@intel.com>", "X-Mailer": "git-send-email 2.20.1", "In-Reply-To": "<20200516004226.4795-1-anthony.l.nguyen@intel.com>", "References": "<20200516004226.4795-1-anthony.l.nguyen@intel.com>", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH S44 08/14] ice: Check UMEM FQ size when\n allocating bufs", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "From: Krzysztof Kazimierczak <krzysztof.kazimierczak@intel.com>\n\nIf a UMEM is present on a queue when an interface/queue pair is being\nenabled, the driver will try to prepare the Rx buffers in advance to\nimprove performance. However, if fill queue is shorter than HW Rx ring,\nthe driver will report failure after getting the last address from the\nfill queue.\n\nThis still lets the driver process the packets correctly during the NAPI\npoll, but leads to a constant NAPI rescheduling. Not allocating the\nbuffers in advance would result in a potential performance decrease.\n\nCommit d57d76428ae9 (\"xsk: Add API to check for available entries in FQ\")\nprovides an API that lets drivers check the number of addresses that the\nfill queue holds.\n\nNotify the user if fill queue is not long enough to prepare all buffers\nbefore packet processing starts, and allocate the buffers during the\nNAPI poll. If the fill queue size is sufficient, prepare Rx buffers in\nadvance.\n\nSigned-off-by: Krzysztof Kazimierczak <krzysztof.kazimierczak@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice_base.c | 30 ++++++++++++++++-------\n 1 file changed, 21 insertions(+), 9 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_base.c b/drivers/net/ethernet/intel/ice/ice_base.c\nindex a964f5055f37..74fdd4296937 100644\n--- a/drivers/net/ethernet/intel/ice/ice_base.c\n+++ b/drivers/net/ethernet/intel/ice/ice_base.c\n@@ -280,7 +280,9 @@ ice_setup_tx_ctx(struct ice_ring *ring, struct ice_tlan_ctx *tlan_ctx, u16 pf_q)\n */\n int ice_setup_rx_ctx(struct ice_ring *ring)\n {\n+\tstruct device *dev = ice_pf_to_dev(ring->vsi->back);\n \tint chain_len = ICE_MAX_CHAINED_RX_BUFS;\n+\tu16 num_bufs = ICE_DESC_UNUSED(ring);\n \tstruct ice_vsi *vsi = ring->vsi;\n \tu32 rxdid = ICE_RXDID_FLEX_NIC;\n \tstruct ice_rlan_ctx rlan_ctx;\n@@ -323,7 +325,7 @@ int ice_setup_rx_ctx(struct ice_ring *ring)\n \t\t\tif (err)\n \t\t\t\treturn err;\n \n-\t\t\tdev_info(ice_pf_to_dev(vsi->back), \"Registered XDP mem model MEM_TYPE_ZERO_COPY on Rx ring %d\\n\",\n+\t\t\tdev_info(dev, \"Registered XDP mem model MEM_TYPE_ZERO_COPY on Rx ring %d\\n\",\n \t\t\t\t ring->q_index);\n \t\t} else {\n \t\t\tring->zca.free = NULL;\n@@ -408,7 +410,7 @@ int ice_setup_rx_ctx(struct ice_ring *ring)\n \t/* Absolute queue number out of 2K needs to be passed */\n \terr = ice_write_rxq_ctx(hw, &rlan_ctx, pf_q);\n \tif (err) {\n-\t\tdev_err(ice_pf_to_dev(vsi->back), \"Failed to set LAN Rx queue context for absolute Rx queue %d error: %d\\n\",\n+\t\tdev_err(dev, \"Failed to set LAN Rx queue context for absolute Rx queue %d error: %d\\n\",\n \t\t\tpf_q, err);\n \t\treturn -EIO;\n \t}\n@@ -426,13 +428,23 @@ int ice_setup_rx_ctx(struct ice_ring *ring)\n \tring->tail = hw->hw_addr + QRX_TAIL(pf_q);\n \twritel(0, ring->tail);\n \n-\terr = ring->xsk_umem ?\n-\t ice_alloc_rx_bufs_slow_zc(ring, ICE_DESC_UNUSED(ring)) :\n-\t ice_alloc_rx_bufs(ring, ICE_DESC_UNUSED(ring));\n-\tif (err)\n-\t\tdev_info(ice_pf_to_dev(vsi->back), \"Failed allocate some buffers on %sRx ring %d (pf_q %d)\\n\",\n-\t\t\t ring->xsk_umem ? \"UMEM enabled \" : \"\",\n-\t\t\t ring->q_index, pf_q);\n+\tif (ring->xsk_umem) {\n+\t\tif (!xsk_umem_has_addrs_rq(ring->xsk_umem, num_bufs)) {\n+\t\t\tdev_warn(dev, \"UMEM does not provide enough addresses to fill %d buffers on Rx ring %d\\n\",\n+\t\t\t\t num_bufs, ring->q_index);\n+\t\t\tdev_warn(dev, \"Change Rx ring/fill queue size to avoid performance issues\\n\");\n+\n+\t\t\treturn 0;\n+\t\t}\n+\n+\t\terr = ice_alloc_rx_bufs_slow_zc(ring, num_bufs);\n+\t\tif (err)\n+\t\t\tdev_info(dev, \"Failed to allocate some buffers on UMEM enabled Rx ring %d (pf_q %d)\\n\",\n+\t\t\t\t ring->q_index, pf_q);\n+\t\treturn 0;\n+\t}\n+\n+\tice_alloc_rx_bufs(ring, num_bufs);\n \n \treturn 0;\n }\n", "prefixes": [ "S44", "08/14" ] }