Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/809203/?format=api
{ "id": 809203, "url": "http://patchwork.ozlabs.org/api/patches/809203/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20170903042117.28923-2-saeedm@mellanox.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170903042117.28923-2-saeedm@mellanox.com>", "list_archive_url": null, "date": "2017-09-03T04:21:01", "name": "[net-next,01/17] net/mlx5e: Reorganize struct mlx5e_rq", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "8123edfa6b35817916dcb1a210d16f07a9c46c62", "submitter": { "id": 65299, "url": "http://patchwork.ozlabs.org/api/people/65299/?format=api", "name": "Saeed Mahameed", "email": "saeedm@mellanox.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20170903042117.28923-2-saeedm@mellanox.com/mbox/", "series": [ { "id": 1196, "url": "http://patchwork.ozlabs.org/api/series/1196/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=1196", "date": "2017-09-03T04:21:09", "name": "[net-next,01/17] net/mlx5e: Reorganize struct mlx5e_rq", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/1196/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/809203/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/809203/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xlKZy3V5Sz9s7C\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun, 3 Sep 2017 14:22:50 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751471AbdICEWO (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSun, 3 Sep 2017 00:22:14 -0400", "from mail-il-dmz.mellanox.com ([193.47.165.129]:59964 \"EHLO\n\tmellanox.co.il\" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org\n\twith ESMTP id S1750827AbdICEWL (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sun, 3 Sep 2017 00:22:11 -0400", "from Internal Mail-Server by MTLPINE1 (envelope-from\n\tsaeedm@mellanox.com)\n\twith ESMTPS (AES256-SHA encrypted); 3 Sep 2017 07:22:05 +0300", "from sws.mtl.labs.mlnx (reg-l-vrt-045-015.mtl.labs.mlnx\n\t[10.135.45.15])\n\tby labmailer.mlnx (8.13.8/8.13.8) with ESMTP id v834M5l2017672;\n\tSun, 3 Sep 2017 07:22:05 +0300" ], "From": "Saeed Mahameed <saeedm@mellanox.com>", "To": "\"David S. Miller\" <davem@davemloft.net>", "Cc": "netdev@vger.kernel.org, kernel-team@fb.com,\n\tTariq Toukan <tariqt@mellanox.com>, Saeed Mahameed <saeedm@mellanox.com>", "Subject": "[net-next 01/17] net/mlx5e: Reorganize struct mlx5e_rq", "Date": "Sun, 3 Sep 2017 07:21:01 +0300", "Message-Id": "<20170903042117.28923-2-saeedm@mellanox.com>", "X-Mailer": "git-send-email 2.13.0", "In-Reply-To": "<20170903042117.28923-1-saeedm@mellanox.com>", "References": "<20170903042117.28923-1-saeedm@mellanox.com>", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "From: Tariq Toukan <tariqt@mellanox.com>\n\nBring fast-path fields together, and combine RX WQE mutual\nexclusive fields into a union.\n\nPage-reuse and XDP are mutually exclusive and cannot be used at\nthe same time.\nUse a union to combine their footprints.\n\nSigned-off-by: Tariq Toukan <tariqt@mellanox.com>\nSigned-off-by: Saeed Mahameed <saeedm@mellanox.com>\n---\n drivers/net/ethernet/mellanox/mlx5/core/en.h | 16 +++++++++-------\n drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 +++++-----\n drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 13 ++++++-------\n 3 files changed, 20 insertions(+), 19 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h\nindex 6c2abeccfa5a..d964db286c95 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h\n@@ -527,20 +527,24 @@ struct mlx5e_rq {\n \t\tstruct {\n \t\t\tstruct mlx5e_wqe_frag_info *frag_info;\n \t\t\tu32 frag_sz;\t/* max possible skb frag_sz */\n-\t\t\tbool page_reuse;\n-\t\t\tbool xdp_xmit;\n+\t\t\tunion {\n+\t\t\t\tbool page_reuse;\n+\t\t\t\tbool xdp_xmit;\n+\t\t\t};\n \t\t} wqe;\n \t\tstruct {\n \t\t\tstruct mlx5e_mpw_info *info;\n \t\t\tvoid *mtt_no_align;\n+\t\t\tu16 stride_sz;\n+\t\t\tu16 num_strides;\n \t\t} mpwqe;\n \t};\n \tstruct {\n-\t\tu8 page_order;\n \t\tu32 wqe_sz; /* wqe data buffer size */\n+\t\tu16 headroom;\n+\t\tu8 page_order;\n \t\tu8 map_dir; /* dma map direction */\n \t} buff;\n-\t__be32 mkey_be;\n \n \tstruct device *pdev;\n \tstruct net_device *netdev;\n@@ -555,7 +559,6 @@ struct mlx5e_rq {\n \n \tunsigned long state;\n \tint ix;\n-\tu16 rx_headroom;\n \n \tstruct mlx5e_rx_am am; /* Adaptive Moderation */\n \n@@ -565,9 +568,8 @@ struct mlx5e_rq {\n \n \t/* control */\n \tstruct mlx5_wq_ctrl wq_ctrl;\n+\t__be32 mkey_be;\n \tu8 wq_type;\n-\tu32 mpwqe_stride_sz;\n-\tu32 mpwqe_num_strides;\n \tu32 rqn;\n \tstruct mlx5e_channel *channel;\n \tstruct mlx5_core_dev *mdev;\ndiff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c\nindex 85841e24c65b..94761d0e1b33 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c\n@@ -593,7 +593,7 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c,\n \t}\n \n \trq->buff.map_dir = rq->xdp_prog ? DMA_BIDIRECTIONAL : DMA_FROM_DEVICE;\n-\trq->rx_headroom = params->rq_headroom;\n+\trq->buff.headroom = params->rq_headroom;\n \n \tswitch (rq->wq_type) {\n \tcase MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ:\n@@ -615,10 +615,10 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c,\n \t\t\tgoto err_rq_wq_destroy;\n \t\t}\n \n-\t\trq->mpwqe_stride_sz = BIT(params->mpwqe_log_stride_sz);\n-\t\trq->mpwqe_num_strides = BIT(params->mpwqe_log_num_strides);\n+\t\trq->mpwqe.stride_sz = BIT(params->mpwqe_log_stride_sz);\n+\t\trq->mpwqe.num_strides = BIT(params->mpwqe_log_num_strides);\n \n-\t\trq->buff.wqe_sz = rq->mpwqe_stride_sz * rq->mpwqe_num_strides;\n+\t\trq->buff.wqe_sz = rq->mpwqe.stride_sz * rq->mpwqe.num_strides;\n \t\tbyte_count = rq->buff.wqe_sz;\n \n \t\terr = mlx5e_create_rq_umr_mkey(mdev, rq);\n@@ -665,7 +665,7 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c,\n \t\tbyte_count = rq->buff.wqe_sz;\n \n \t\t/* calc the required page order */\n-\t\trq->wqe.frag_sz = MLX5_SKB_FRAG_SZ(rq->rx_headroom + byte_count);\n+\t\trq->wqe.frag_sz = MLX5_SKB_FRAG_SZ(rq->buff.headroom + byte_count);\n \t\tnpages = DIV_ROUND_UP(rq->wqe.frag_sz, PAGE_SIZE);\n \t\trq->buff.page_order = order_base_2(npages);\n \ndiff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c\nindex be8197a75a63..1b50f1e7e48a 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c\n@@ -263,8 +263,7 @@ int mlx5e_alloc_rx_wqe(struct mlx5e_rq *rq, struct mlx5e_rx_wqe *wqe, u16 ix)\n \t\twi->offset = 0;\n \t}\n \n-\twqe->data.addr = cpu_to_be64(wi->di.addr + wi->offset +\n-\t\t\t\t rq->rx_headroom);\n+\twqe->data.addr = cpu_to_be64(wi->di.addr + wi->offset + rq->buff.headroom);\n \treturn 0;\n }\n \n@@ -296,7 +295,7 @@ void mlx5e_dealloc_rx_wqe(struct mlx5e_rq *rq, u16 ix)\n \n static inline int mlx5e_mpwqe_strides_per_page(struct mlx5e_rq *rq)\n {\n-\treturn rq->mpwqe_num_strides >> MLX5_MPWRQ_WQE_PAGE_ORDER;\n+\treturn rq->mpwqe.num_strides >> MLX5_MPWRQ_WQE_PAGE_ORDER;\n }\n \n static inline void mlx5e_add_skb_frag_mpwqe(struct mlx5e_rq *rq,\n@@ -305,7 +304,7 @@ static inline void mlx5e_add_skb_frag_mpwqe(struct mlx5e_rq *rq,\n \t\t\t\t\t u32 page_idx, u32 frag_offset,\n \t\t\t\t\t u32 len)\n {\n-\tunsigned int truesize =\tALIGN(len, rq->mpwqe_stride_sz);\n+\tunsigned int truesize = ALIGN(len, rq->mpwqe.stride_sz);\n \n \tdma_sync_single_for_cpu(rq->pdev,\n \t\t\t\twi->umr.dma_info[page_idx].addr + frag_offset,\n@@ -776,9 +775,9 @@ struct sk_buff *skb_from_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe,\n \t\t\t struct mlx5e_wqe_frag_info *wi, u32 cqe_bcnt)\n {\n \tstruct mlx5e_dma_info *di = &wi->di;\n+\tu16 rx_headroom = rq->buff.headroom;\n \tstruct sk_buff *skb;\n \tvoid *va, *data;\n-\tu16 rx_headroom = rq->rx_headroom;\n \tbool consumed;\n \tu32 frag_size;\n \n@@ -911,7 +910,7 @@ static inline void mlx5e_mpwqe_fill_rx_skb(struct mlx5e_rq *rq,\n \t\t\t\t\t struct sk_buff *skb)\n {\n \tu16 stride_ix = mpwrq_get_cqe_stride_index(cqe);\n-\tu32 wqe_offset = stride_ix * rq->mpwqe_stride_sz;\n+\tu32 wqe_offset = stride_ix * rq->mpwqe.stride_sz;\n \tu32 head_offset = wqe_offset & (PAGE_SIZE - 1);\n \tu32 page_idx = wqe_offset >> PAGE_SHIFT;\n \tu32 head_page_idx = page_idx;\n@@ -979,7 +978,7 @@ void mlx5e_handle_rx_cqe_mpwrq(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe)\n \tnapi_gro_receive(rq->cq.napi, skb);\n \n mpwrq_cqe_out:\n-\tif (likely(wi->consumed_strides < rq->mpwqe_num_strides))\n+\tif (likely(wi->consumed_strides < rq->mpwqe.num_strides))\n \t\treturn;\n \n \tmlx5e_free_rx_mpwqe(rq, wi);\n", "prefixes": [ "net-next", "01/17" ] }