{"id":2235020,"url":"http://patchwork.ozlabs.org/api/1.2/covers/2235020/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/cover/20260508124208.11622-1-przemyslaw.kitszel@intel.com/","project":{"id":46,"url":"http://patchwork.ozlabs.org/api/1.2/projects/46/?format=json","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":"<20260508124208.11622-1-przemyslaw.kitszel@intel.com>","list_archive_url":null,"date":"2026-05-08T12:41:53","name":"[iwl-next,v1,00/15] devlink, mlx5, iavf, ice: XLVF for iavf","submitter":{"id":85252,"url":"http://patchwork.ozlabs.org/api/1.2/people/85252/?format=json","name":"Przemek Kitszel","email":"przemyslaw.kitszel@intel.com"},"mbox":"http://patchwork.ozlabs.org/project/intel-wired-lan/cover/20260508124208.11622-1-przemyslaw.kitszel@intel.com/mbox/","series":[{"id":503388,"url":"http://patchwork.ozlabs.org/api/1.2/series/503388/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=503388","date":"2026-05-08T12:41:53","name":"devlink, mlx5, iavf, ice: XLVF for iavf","version":1,"mbox":"http://patchwork.ozlabs.org/series/503388/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2235020/comments/","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=GV2n3/pU;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\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 4gBq2q54Yhz1yCg\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 08 May 2026 22:59:47 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id E598540F62;\n\tFri,  8 May 2026 12:59:45 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id QDJYDK6yB7Vx; Fri,  8 May 2026 12:59:45 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 0A2A740F00;\n\tFri,  8 May 2026 12:59:45 +0000 (UTC)","from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id 7FACF358\n for <intel-wired-lan@lists.osuosl.org>; Fri,  8 May 2026 12:59:44 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 7159E40F00\n for <intel-wired-lan@lists.osuosl.org>; Fri,  8 May 2026 12:59:44 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id D1N5MTD1m_eo for <intel-wired-lan@lists.osuosl.org>;\n Fri,  8 May 2026 12:59:43 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [198.175.65.17])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 500F740E37\n for <intel-wired-lan@lists.osuosl.org>; Fri,  8 May 2026 12:59:42 +0000 (UTC)","from fmviesa005.fm.intel.com ([10.60.135.145])\n by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 08 May 2026 05:59:43 -0700","from irvmail002.ir.intel.com ([10.43.11.120])\n by fmviesa005.fm.intel.com with ESMTP; 08 May 2026 05:59:36 -0700","from vecna.igk.intel.com (vecna.igk.intel.com [10.123.220.17])\n by irvmail002.ir.intel.com (Postfix) with ESMTP id 58E6F28795;\n Fri,  8 May 2026 13:59:34 +0100 (IST)"],"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 smtp4.osuosl.org 0A2A740F00","OpenDKIM Filter v2.11.0 smtp4.osuosl.org 500F740E37"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1778245185;\n\tbh=Nv0mTNy+Ubpvvq/b79hQKkvImz/wKWgQN5YDaswWf4w=;\n\th=From:To:Cc:Date:Subject:List-Id:List-Unsubscribe:List-Archive:\n\t List-Post:List-Help:List-Subscribe:From;\n\tb=GV2n3/pUo/RVi/0MI4g4OUUD8Ap2x32JbjSYtZN4K0JR3r8eVW+xZruA8Xggj2rz0\n\t LBckbG+AQg+OoW896kWcXdB/qO2Mn6XjByesSl28p6ZuLeDY2cEpfo/HmeonkFMk23\n\t V3aUbwYb/vr/ySOxFVptueUmQIkREmuundoXsj0aBV/lccZ79IuwvrgsqN/7Cea9l5\n\t iIxdCo+RAmNOuL+MR94+Qe2RxQTQq5b3NxocMSL98FomgCJ4hULQm5KmvL9FV1fSUO\n\t NHJKQ0+DWA5cqmuhcXq3b8NcP5HrLYIZhgJn/1Pzrhnyb8mK8CcnKjOnqN05iLSC25\n\t cbBxtGalBd1EQ==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.17;\n helo=mgamail.intel.com; envelope-from=przemyslaw.kitszel@intel.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp4.osuosl.org 500F740E37","X-CSE-ConnectionGUID":["fU7vBHscQZKZEBAt2t3HVg==","71w7MdL8REmoYuq4rRbu+Q=="],"X-CSE-MsgGUID":["2M3S1gzuRnGyRIfh79FPZQ==","KgGuZ4MPQ825zBvYOvUa1w=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11779\"; a=\"79199852\"","E=Sophos;i=\"6.23,223,1770624000\"; d=\"scan'208\";a=\"79199852\"","E=Sophos;i=\"6.23,223,1770624000\"; d=\"scan'208\";a=\"241730090\""],"X-ExtLoop1":"1","From":"Przemek Kitszel <przemyslaw.kitszel@intel.com>","To":"intel-wired-lan@lists.osuosl.org, Michal Schmidt <mschmidt@redhat.com>,\n Jakub Kicinski <kuba@kernel.org>, Jiri Pirko <jiri@resnulli.us>","Cc":"netdev@vger.kernel.org, Simon Horman <horms@kernel.org>,\n Tony Nguyen <anthony.l.nguyen@intel.com>,\n Michal Swiatkowski <michal.swiatkowski@linux.intel.com>,\n bruce.richardson@intel.com,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n padraig.j.connolly@intel.com, ananth.s@intel.com,\n timothy.miskell@intel.com, Jacob Keller <jacob.e.keller@intel.com>,\n Lukasz Czapnik <lukasz.czapnik@intel.com>,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>,\n Saeed Mahameed <saeedm@nvidia.com>, Leon Romanovsky <leon@kernel.org>,\n Tariq Toukan <tariqt@nvidia.com>, Mark Bloch <mbloch@nvidia.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>","Date":"Fri,  8 May 2026 14:41:53 +0200","Message-Id":"<20260508124208.11622-1-przemyslaw.kitszel@intel.com>","X-Mailer":"git-send-email 2.39.3","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=1778245184; x=1809781184;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=Cecj/jI4Hf3y5GjyNmlPt5sbEVv1v3dHbPozo7/APAo=;\n b=Z2LcCq8bFmA9To+k4wHoJ6iZz2z8u2TA3zDJ38eDGR5/SPy3UucZkXOj\n U2DddUW/88Sf9hbAnux4+mAxX0LzTLXv9gw2TKv13DOdrO+FU75ttUNSH\n bIRXlWCKqJJH95vjymlRvYqF24yWd2y3G0SOwUlWtuLrlw7T1eDfSUESM\n 4SjuCBtMl9i47CkNRGVIvIIzgX2Pu2WnAAfIWNoPPnZy2eF10Ql+A5Gzv\n peshX1nvXP0fxKBPrybhQ4BAX8JUwpzlEwXHssfp3dprionTSOusc19tv\n 6O+6Y70qm3S2gVBR/hM1SikoaSqLLdcSxY2xiyHYBW2uAIbIBQQ+fFGP4\n A==;","X-Mailman-Original-Authentication-Results":["smtp4.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com","smtp4.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=Z2LcCq8b"],"Subject":"[Intel-wired-lan] [PATCH iwl-next v1 00/15] devlink, mlx5, iavf,\n ice: XLVF for iavf","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":"Code is also available here:\nhttps://github.com/pkitszel/linux/tree/xlvf-iwl\n\nThere are two dependecies:\nhttps://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260429102426.210750-4-jtornosm@redhat.com\nhttps://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260427151827.43342-1-mschmidt@redhat.com\n\nThe purpose of this series is to allow iavf to use more than 16 queue pairs,\nin two modes, up to 64 and up to 256 queue pairs.\n\nDevlink changes:\n1. Extend devlink by two callbacks used by shared devlink.\n   Callbacks provide option for the driver to have constructor/destructor\n   for the priv data attached to the shared devlink instance.\n   Use the callbacks from ice.\n   mlx5 is just touched to have additional param passed.\n   Non-null additional param for the constructor is used in: \"ice: represent RSS\n   LUTs as devlink resources\"\n2. Extend devlink resources API to allow user to assign resources.\n   Before it was only the driver to assign resources, without any way for user\n   to interact. ice' RSS LUTs are exposed that way.\n\nMore about the interface:\nIn order to support more queues for VF, we must give it a bigger RSS table\n(GLOBAL LUT or PF LUT). There are 16 GLOBAL LUTs on E810, and there is one\nPF LUT for every PF on given card. Both kinds of the mentioned LUTs could\nbe (re)assigned to VF. PF must hold at least one of the mentioned LUTs at\nany given moment. GLOBAL LUT allows VF to use up to 64 queues, PF LUT lets\nit to use up to 256 queues.\n\nRSS LUTs are exposed for the user for assignment via devlink resources\nAPI, which I have extended to make it possible.\n\nWe have also some \"little cleanup\" patches, Admin Queue extension\nfor GLOBAL RSS alloc/free, and two rather big \"new opcodes\" patches by Ahmed\nand Brett.\n\nI introduce also a \"whole device\" aggregate over all PFs on\ngiven card, via shared devlink instance.\n\nI also extend devlink resources to have custom occupancy setters, that allow\nuser to modify PF device LUTs assignment.\n\nFinally there is a patch that adds devlink instance for VF and registers\ndevlink resources on it, combined with all the glue code to make actual\nuse of the whole series and desired larger number of queues accepted to VF\nThis (the last) patch contains usage examples.\n\nThere is one resource added that just groups GLOBAL and PF LUTs under it -\nthere are 3 rows of data for each device (PF/VF/whole-dev):\n$ devlink resource show pci/0000:18:00.0\npci/0000:18:00.0:\n  name rss size 1 unit entry size_min 0 size_max 2 size_gran 1 dpipe_tables none\n    resources:\n      name lut_512 size 0 unit entry size_min 0 size_max 1 size_gran 1 dpipe_tables none\n      name lut_2048 size 1 unit entry size_min 0 size_max 1 size_gran 1 dpipe_tables none\ntechnically the aggregate \"name rss\" line could be eliminated with just\nthe two last ones kept (then renamed to \"rss_lut_2048\" form current\n\"rss/lut_2048\"), I like it like this, but this was just an opinion.\nThe rest of the series is rather much needed, but I'm always open to\ndiscussion.\n\nDevlink resource changes were RFC-proposed a year ago, link in the patch.\n\nAhmed Zaki (1):\n  iavf: use new opcodes to request more than 16 queues\n\nBrett Creeley (2):\n  ice: add VF queue ena/dis helper functions\n  ice: introduce handling of virtchnl LARGE VF opcodes\n\nPrzemek Kitszel (12):\n  devlink, mlx5: add init/fini ops for shared devlink\n  ice: use shared devlink to store ice_adapters instead of custom xarray\n  ice: simplify ice_vc_dis_qs_msg() a little\n  ice: add helpers for Global RSS LUT alloc, free, vsi_update\n  ice: rename ICE_MAX_RSS_QS_PER_VF to ICE_MAX_QS_PER_VF_VCV1\n  ice: bump to 256qs for VF\n  iavf: extend iavf_configure_queues() to support more queues\n  iavf: temporary rename of IAVF_MAX_REQ_QUEUES to\n    IAVF_MAX_REQ_QUEUES_VCV1\n  iavf: increase max number of queues to 256\n  devlink: give user option to allocate resources\n  ice: represent RSS LUTs as devlink resources\n  ice: support up to 256 VF queues\n\n drivers/net/ethernet/intel/ice/Makefile       |   1 +\n drivers/net/ethernet/intel/iavf/iavf.h        |  18 +-\n .../net/ethernet/intel/ice/devlink/resource.h |  22 +\n drivers/net/ethernet/intel/ice/ice.h          |   1 +\n drivers/net/ethernet/intel/ice/ice_adapter.h  |  52 +-\n .../net/ethernet/intel/ice/ice_adminq_cmd.h   |   1 +\n drivers/net/ethernet/intel/ice/ice_common.h   |   1 +\n drivers/net/ethernet/intel/ice/ice_lag.h      |   2 +-\n drivers/net/ethernet/intel/ice/ice_lib.h      |   5 +-\n drivers/net/ethernet/intel/ice/ice_switch.h   |   2 +\n drivers/net/ethernet/intel/ice/ice_vf_lib.h   |  26 +-\n drivers/net/ethernet/intel/ice/virt/queues.h  |   3 +\n drivers/net/ethernet/intel/ice/virt/rss.h     |   1 +\n .../net/ethernet/intel/ice/virt/virtchnl.h    |   4 +\n include/linux/intel/virtchnl.h                | 136 ++++-\n include/net/devlink.h                         |  33 +\n .../net/ethernet/intel/iavf/iavf_ethtool.c    |   7 +-\n drivers/net/ethernet/intel/iavf/iavf_main.c   | 125 +++-\n .../net/ethernet/intel/iavf/iavf_virtchnl.c   | 262 +++++++-\n .../net/ethernet/intel/ice/devlink/devlink.c  |   3 +\n .../net/ethernet/intel/ice/devlink/resource.c | 572 ++++++++++++++++++\n drivers/net/ethernet/intel/ice/ice_adapter.c  | 105 ++--\n drivers/net/ethernet/intel/ice/ice_common.c   |   2 +-\n drivers/net/ethernet/intel/ice/ice_lib.c      |  78 ++-\n drivers/net/ethernet/intel/ice/ice_main.c     |  43 +-\n drivers/net/ethernet/intel/ice/ice_sriov.c    |  14 +-\n drivers/net/ethernet/intel/ice/ice_switch.c   |  41 ++\n drivers/net/ethernet/intel/ice/ice_vf_lib.c   |  54 +-\n .../net/ethernet/intel/ice/virt/allowlist.c   |   8 +\n drivers/net/ethernet/intel/ice/virt/queues.c  | 480 +++++++++++++--\n drivers/net/ethernet/intel/ice/virt/rss.c     |  36 +-\n .../net/ethernet/intel/ice/virt/virtchnl.c    |  47 +-\n .../ethernet/mellanox/mlx5/core/sh_devlink.c  |   2 +-\n net/devlink/resource.c                        |  98 ++-\n net/devlink/sh_dev.c                          |  38 +-\n 35 files changed, 2102 insertions(+), 221 deletions(-)\n create mode 100644 drivers/net/ethernet/intel/ice/devlink/resource.h\n create mode 100644 drivers/net/ethernet/intel/ice/devlink/resource.c"}