Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2171495/?format=api
{ "id": 2171495, "url": "http://patchwork.ozlabs.org/api/patches/2171495/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20251204155133.2437621-2-aleksander.lobakin@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": "<20251204155133.2437621-2-aleksander.lobakin@intel.com>", "list_archive_url": null, "date": "2025-12-04T15:51:29", "name": "[iwl-next,v2,1/5] libeth: pass Rx queue index to PP when creating a fill queue", "commit_ref": null, "pull_url": null, "state": "under-review", "archived": false, "hash": "964d46292ec8a14fe2258beb344ebe968d59b080", "submitter": { "id": 85827, "url": "http://patchwork.ozlabs.org/api/people/85827/?format=api", "name": "Alexander Lobakin", "email": "aleksander.lobakin@intel.com" }, "delegate": { "id": 109701, "url": "http://patchwork.ozlabs.org/api/users/109701/?format=api", "username": "anguy11", "first_name": "Anthony", "last_name": "Nguyen", "email": "anthony.l.nguyen@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20251204155133.2437621-2-aleksander.lobakin@intel.com/mbox/", "series": [ { "id": 484409, "url": "http://patchwork.ozlabs.org/api/series/484409/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=484409", "date": "2025-12-04T15:51:29", "name": "ice: add support for devmem/io_uring Rx and Tx", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/484409/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2171495/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2171495/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@legolas.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=EzmaBZUb;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.138; helo=smtp1.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dMfC213wdz1xsP\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 05 Dec 2025 02:51:57 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id A779F846C0;\n\tThu, 4 Dec 2025 15:51:55 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id RLytSPvssdVQ; Thu, 4 Dec 2025 15:51:53 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id A5D32846B7;\n\tThu, 4 Dec 2025 15:51:53 +0000 (UTC)", "from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n by lists1.osuosl.org (Postfix) with ESMTP id 62A8CE7\n for <intel-wired-lan@lists.osuosl.org>; Thu, 4 Dec 2025 15:51:52 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id 492B4614D5\n for <intel-wired-lan@lists.osuosl.org>; Thu, 4 Dec 2025 15:51:52 +0000 (UTC)", "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id eo8QGhpOdIjG for <intel-wired-lan@lists.osuosl.org>;\n Thu, 4 Dec 2025 15:51:51 +0000 (UTC)", "from mgamail.intel.com (mgamail.intel.com [192.198.163.7])\n by smtp3.osuosl.org (Postfix) with ESMTPS id EB55D61549\n for <intel-wired-lan@lists.osuosl.org>; Thu, 4 Dec 2025 15:51:50 +0000 (UTC)", "from fmviesa007.fm.intel.com ([10.60.135.147])\n by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Dec 2025 07:51:51 -0800", "from newjersey.igk.intel.com ([10.102.20.203])\n by fmviesa007.fm.intel.com with ESMTP; 04 Dec 2025 07:51:47 -0800" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp1.osuosl.org A5D32846B7", "OpenDKIM Filter v2.11.0 smtp3.osuosl.org EB55D61549" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1764863513;\n\tbh=JkFhwucA/nrlnIEvL6DujVFv1iE8/IcOYjQaF5UuB8k=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=EzmaBZUbRrN7I2huWpfQnZ3ORjAGNI9wmMDc1jlYya2x5vlBESOb3kD4WN/BsvBMp\n\t qiVHN5SLP44S8hWEM6z2gd0h/0ftmy7/sKr966RHlCXIwsE805x2rDaet3iKsrBb3V\n\t 4P4aVNlJ2OwJFXGbmKTLJ8dTpAnwBsTP3zkh4v2dGLu21Q2vBaqlYukNKfV8eV8g1/\n\t geQxHVObxaOBgZfJbAHhazpJXgJrg53zrtqVg+kv2dcCM9A1/uN6X5gLSzPOzssuI1\n\t x6qDfaHaRQFa7kHfMABIb026TrAj7qKXfjsCiPwGZrkYpcGqmT4f66yY7OdfrLs41k\n\t UzG0lbNxJuOeg==", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.7;\n helo=mgamail.intel.com; envelope-from=aleksander.lobakin@intel.com;\n receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp3.osuosl.org EB55D61549", "X-CSE-ConnectionGUID": [ "XfkoLyhFQxeaJdZQMX970w==", "6PKjto03T8yaVnVenlRHRQ==" ], "X-CSE-MsgGUID": [ "mWOQh09HR6CQLo3dZrUjMA==", "4bVDufmkTWq3nj/GUNPyIA==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6800,10657,11632\"; a=\"92365112\"", "E=Sophos;i=\"6.20,249,1758610800\"; d=\"scan'208\";a=\"92365112\"", "E=Sophos;i=\"6.20,249,1758610800\"; d=\"scan'208\";a=\"194677264\"" ], "X-ExtLoop1": "1", "From": "Alexander Lobakin <aleksander.lobakin@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Cc": "Alexander Lobakin <aleksander.lobakin@intel.com>,\n Tony Nguyen <anthony.l.nguyen@intel.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,\n Jacob Keller <jacob.e.keller@intel.com>,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>,\n nxne.cnse.osdt.itp.upstreaming@intel.com, netdev@vger.kernel.org,\n linux-kernel@vger.kernel.org", "Date": "Thu, 4 Dec 2025 16:51:29 +0100", "Message-ID": "<20251204155133.2437621-2-aleksander.lobakin@intel.com>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20251204155133.2437621-1-aleksander.lobakin@intel.com>", "References": "<20251204155133.2437621-1-aleksander.lobakin@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1764863511; x=1796399511;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=JHpQKJQHKub/qIFhXAATo79hs3k9QEabO0yRwPmth4Q=;\n b=R4ebtjyy3JnuV9647z2/ThpwU9I1DCC+eJEm2Hj2tf9sdQ0ad3o0TRI5\n hgqzQjMJwAjS+VCpFiuaSDL7UgA3EiZnJsp0pHvf3NTT0m771+jTrQTKd\n 2yuYJ15X3GaQKQM2xBb1R5Wn5QufUWGc+unM05ZEpapdCQahFc/tymLT5\n 8eEmfdLqnmTmCQfHuMJiaTH7vcQkMZwW7bML7ib671f5+orUNe0beMYN9\n ZTaxHchZyvMWLx48682lX0JYb5cK+CJJY2E+Cs20m9PZ7+7gNNvDGehA4\n y+isbIpn9mFEM3IVEiOyPJRBUUFc01Uq1y6XAGesMRYIGslCcNEOXejNs\n A==;", "X-Mailman-Original-Authentication-Results": [ "smtp3.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com", "smtp3.osuosl.org;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.a=rsa-sha256 header.s=Intel header.b=R4ebtjyy" ], "Subject": "[Intel-wired-lan] [PATCH iwl-next v2 1/5] libeth: pass Rx queue\n index to PP when creating a fill queue", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.30", "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>", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "Since recently, page_pool_create() accepts optional stack index of\nthe Rx queue which the pool will be created for. It can then be\nused on control path for stuff like memory providers.\nAdd the same field to libeth_fq and pass the index from all the\ndrivers using libeth for managing Rx to simplify implementing MP\nsupport later.\nidpf has one libeth_fq per buffer/fill queue and each Rx queue has\ntwo fill queues, but since fill queues can never be shared, we can\nstore the corresponding Rx queue index there during the\ninitialization to pass it to libeth.\n\nReviewed-by: Jacob Keller <jacob.e.keller@intel.com>\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>\nSigned-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>\n---\n drivers/net/ethernet/intel/idpf/idpf_txrx.h | 2 ++\n include/net/libeth/rx.h | 2 ++\n drivers/net/ethernet/intel/iavf/iavf_txrx.c | 1 +\n drivers/net/ethernet/intel/ice/ice_base.c | 2 ++\n drivers/net/ethernet/intel/idpf/idpf_txrx.c | 13 +++++++++++++\n drivers/net/ethernet/intel/libeth/rx.c | 1 +\n 6 files changed, 21 insertions(+)", "diff": "diff --git a/drivers/net/ethernet/intel/idpf/idpf_txrx.h b/drivers/net/ethernet/intel/idpf/idpf_txrx.h\nindex 6796f010e382..0eaebac8ceae 100644\n--- a/drivers/net/ethernet/intel/idpf/idpf_txrx.h\n+++ b/drivers/net/ethernet/intel/idpf/idpf_txrx.h\n@@ -748,6 +748,7 @@ libeth_cacheline_set_assert(struct idpf_tx_queue, 64,\n * @size: Length of descriptor ring in bytes\n * @dma: Physical address of ring\n * @q_vector: Backreference to associated vector\n+ * @rxq_idx: stack index of the corresponding Rx queue\n * @rx_buffer_low_watermark: RX buffer low watermark\n * @rx_hbuf_size: Header buffer size\n * @rx_buf_size: Buffer size\n@@ -791,6 +792,7 @@ struct idpf_buf_queue {\n \tdma_addr_t dma;\n \n \tstruct idpf_q_vector *q_vector;\n+\tu16 rxq_idx;\n \n \tu16 rx_buffer_low_watermark;\n \tu16 rx_hbuf_size;\ndiff --git a/include/net/libeth/rx.h b/include/net/libeth/rx.h\nindex 0e736846c5e8..db838ef7f9bb 100644\n--- a/include/net/libeth/rx.h\n+++ b/include/net/libeth/rx.h\n@@ -72,6 +72,7 @@ enum libeth_fqe_type {\n * @no_napi: the queue is not a data queue and does not have NAPI\n * @buf_len: HW-writeable length per each buffer\n * @nid: ID of the closest NUMA node with memory\n+ * @idx: stack index of the corresponding Rx queue\n */\n struct libeth_fq {\n \tstruct_group_tagged(libeth_fq_fp, fp,\n@@ -90,6 +91,7 @@ struct libeth_fq {\n \n \tu32\t\t\tbuf_len;\n \tint\t\t\tnid;\n+\tu32\t\t\tidx;\n };\n \n int libeth_rx_fq_create(struct libeth_fq *fq, void *napi_dev);\ndiff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c b/drivers/net/ethernet/intel/iavf/iavf_txrx.c\nindex 275b11dd0c60..3d938d7ab2cc 100644\n--- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c\n+++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c\n@@ -771,6 +771,7 @@ int iavf_setup_rx_descriptors(struct iavf_ring *rx_ring)\n \t\t.count\t\t= rx_ring->count,\n \t\t.buf_len\t= LIBIE_MAX_RX_BUF_LEN,\n \t\t.nid\t\t= NUMA_NO_NODE,\n+\t\t.idx\t\t= rx_ring->queue_index,\n \t};\n \tint ret;\n \ndiff --git a/drivers/net/ethernet/intel/ice/ice_base.c b/drivers/net/ethernet/intel/ice/ice_base.c\nindex 6fb7051aa463..7097324c38f3 100644\n--- a/drivers/net/ethernet/intel/ice/ice_base.c\n+++ b/drivers/net/ethernet/intel/ice/ice_base.c\n@@ -607,6 +607,7 @@ static int ice_rxq_pp_create(struct ice_rx_ring *rq)\n \tstruct libeth_fq fq = {\n \t\t.count\t\t= rq->count,\n \t\t.nid\t\t= NUMA_NO_NODE,\n+\t\t.idx\t\t= rq->q_index,\n \t\t.hsplit\t\t= rq->vsi->hsplit,\n \t\t.xdp\t\t= ice_is_xdp_ena_vsi(rq->vsi),\n \t\t.buf_len\t= LIBIE_MAX_RX_BUF_LEN,\n@@ -629,6 +630,7 @@ static int ice_rxq_pp_create(struct ice_rx_ring *rq)\n \t\t.count\t\t= rq->count,\n \t\t.type\t\t= LIBETH_FQE_HDR,\n \t\t.nid\t\t= NUMA_NO_NODE,\n+\t\t.idx\t\t= rq->q_index,\n \t\t.xdp\t\t= ice_is_xdp_ena_vsi(rq->vsi),\n \t};\n \ndiff --git a/drivers/net/ethernet/intel/idpf/idpf_txrx.c b/drivers/net/ethernet/intel/idpf/idpf_txrx.c\nindex 72215612b460..5dc41b7ba609 100644\n--- a/drivers/net/ethernet/intel/idpf/idpf_txrx.c\n+++ b/drivers/net/ethernet/intel/idpf/idpf_txrx.c\n@@ -561,6 +561,7 @@ static int idpf_rx_hdr_buf_alloc_all(struct idpf_buf_queue *bufq)\n \t\t.type\t= LIBETH_FQE_HDR,\n \t\t.xdp\t= idpf_xdp_enabled(bufq->q_vector->vport),\n \t\t.nid\t= idpf_q_vector_to_mem(bufq->q_vector),\n+\t\t.idx\t= bufq->rxq_idx,\n \t};\n \tint ret;\n \n@@ -703,6 +704,7 @@ static int idpf_rx_bufs_init_singleq(struct idpf_rx_queue *rxq)\n \t\t.type\t\t= LIBETH_FQE_MTU,\n \t\t.buf_len\t= IDPF_RX_MAX_BUF_SZ,\n \t\t.nid\t\t= idpf_q_vector_to_mem(rxq->q_vector),\n+\t\t.idx\t\t= rxq->idx,\n \t};\n \tint ret;\n \n@@ -763,6 +765,7 @@ static int idpf_rx_bufs_init(struct idpf_buf_queue *bufq,\n \t\t.hsplit\t\t= idpf_queue_has(HSPLIT_EN, bufq),\n \t\t.xdp\t\t= idpf_xdp_enabled(bufq->q_vector->vport),\n \t\t.nid\t\t= idpf_q_vector_to_mem(bufq->q_vector),\n+\t\t.idx\t\t= bufq->rxq_idx,\n \t};\n \tint ret;\n \n@@ -1922,6 +1925,16 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport,\n \t\t\t\t\t\t\tLIBETH_RX_LL_LEN;\n \t\t\tidpf_rxq_set_descids(rsrc, q);\n \t\t}\n+\n+\t\tif (!idpf_is_queue_model_split(rsrc->rxq_model))\n+\t\t\tcontinue;\n+\n+\t\tfor (u32 j = 0; j < rsrc->num_bufqs_per_qgrp; j++) {\n+\t\t\tstruct idpf_buf_queue *bufq;\n+\n+\t\t\tbufq = &rx_qgrp->splitq.bufq_sets[j].bufq;\n+\t\t\tbufq->rxq_idx = rx_qgrp->splitq.rxq_sets[0]->rxq.idx;\n+\t\t}\n \t}\n \n err_alloc:\ndiff --git a/drivers/net/ethernet/intel/libeth/rx.c b/drivers/net/ethernet/intel/libeth/rx.c\nindex 1d8248a31037..9ac3a1448b2f 100644\n--- a/drivers/net/ethernet/intel/libeth/rx.c\n+++ b/drivers/net/ethernet/intel/libeth/rx.c\n@@ -157,6 +157,7 @@ int libeth_rx_fq_create(struct libeth_fq *fq, void *napi_dev)\n \t\t.order\t\t= LIBETH_RX_PAGE_ORDER,\n \t\t.pool_size\t= fq->count,\n \t\t.nid\t\t= fq->nid,\n+\t\t.queue_idx\t= fq->idx,\n \t\t.dev\t\t= napi ? napi->dev->dev.parent : napi_dev,\n \t\t.netdev\t\t= napi ? napi->dev : NULL,\n \t\t.napi\t\t= napi,\n", "prefixes": [ "iwl-next", "v2", "1/5" ] }