From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 21F8AD216A4 for ; Thu, 4 Dec 2025 15:51:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id B9FC7614D5; Thu, 4 Dec 2025 15:51:52 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id KSI3ZRGrcRLc; Thu, 4 Dec 2025 15:51:50 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org BC24C61030 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1764863510; bh=PIYu2Kn0Zy3goWGotq8Rcyr/SoVg7+UlXKIXxOmrlE0=; h=From:To:Cc:Date:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=AzCb1kh2LIHlEFUI8WVad80leVxCa7CbkpyuCq12wy0ncicHp/wW5dsTyRUgP2Y9J 3eAQtKoDO0nmFpbJAsiQnbwl3c+rxxkEtVfCUAODbVNZZH+Elju6VSu7jiAn9hN70z DKgH6F9n7X5mSYx6BxNDL0tbFk7VfaougWR7i1TvCL+F2gE/CNkymilQV8JanavCip BcH8pg2ECtM+NHsS2FxeSRTmmyg8xR3GfJhC6POVOTH9n02fJUZNjXpPHuEXbSbDQZ IvD8+C2cU2W4HBRmwRris8CPCxCj821iA8NfAJXro5/YBI6JmLoBnPLaTlOlvZHtl4 0OoW+vExHjG1g== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp3.osuosl.org (Postfix) with ESMTP id BC24C61030; Thu, 4 Dec 2025 15:51:50 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists1.osuosl.org (Postfix) with ESMTP id 76433D3 for ; Thu, 4 Dec 2025 15:51:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 5D2C361030 for ; Thu, 4 Dec 2025 15:51:49 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id NDFZ5wFV6eMk for ; Thu, 4 Dec 2025 15:51:48 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.7; helo=mgamail.intel.com; envelope-from=aleksander.lobakin@intel.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org 5F31160ADB DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 5F31160ADB Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by smtp3.osuosl.org (Postfix) with ESMTPS id 5F31160ADB for ; Thu, 4 Dec 2025 15:51:48 +0000 (UTC) X-CSE-ConnectionGUID: 4IHhD9soSYOoFtR83BMEfw== X-CSE-MsgGUID: z/L424J3TbyBePok1iK+CA== X-IronPort-AV: E=McAfee;i="6800,10657,11632"; a="92365102" X-IronPort-AV: E=Sophos;i="6.20,249,1758610800"; d="scan'208";a="92365102" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Dec 2025 07:51:47 -0800 X-CSE-ConnectionGUID: A7oCzQsbRBqTMzFfx1Tgnw== X-CSE-MsgGUID: pZFFhipwRT2AvJY4bZ85ug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.20,249,1758610800"; d="scan'208";a="194677256" Received: from newjersey.igk.intel.com ([10.102.20.203]) by fmviesa007.fm.intel.com with ESMTP; 04 Dec 2025 07:51:44 -0800 From: Alexander Lobakin To: intel-wired-lan@lists.osuosl.org Cc: Alexander Lobakin , Tony Nguyen , Przemek Kitszel , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Jacob Keller , Aleksandr Loktionov , nxne.cnse.osdt.itp.upstreaming@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Date: Thu, 4 Dec 2025 16:51:28 +0100 Message-ID: <20251204155133.2437621-1-aleksander.lobakin@intel.com> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1764863508; x=1796399508; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=wntylzoSwqmqZ14w+vlx65T2d8TULoY/29mRPs1sjMw=; b=M9CBe9C36pocicQJZAIJLZd9ae21r2t/XgWzfnmYtcpwoJrqyPdjLFXN MpNatS9KwzpE51Yo44oQ4C2sCF9WQqD0ia11u4d+GpO/lK+blVDdm7mfv T8f283Y7+WYUqQNS7f6RsFGqPkQ1K6RbI+CjhTJVRiwsWGCgS2AyKFRBd 8wpiDD3gPK+crv/nxKfJKwWBWkTXfKdlZNIn6EImrAwTzjHayUBmWXXs5 8avpdM3gaqKp1PREbz1hAi0EzWwwq3So3D/dipyZyWCVdxtbNaraWFTuR Qw+xf2jlbpAGs4ZAcJGtCnjB+rivZetzh5blZJwNqhKiXDrD/4ePsKqdf Q==; X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=none dis=none) header.from=intel.com X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=M9CBe9C3 Subject: [Intel-wired-lan] [PATCH iwl-next v2 0/5] ice: add support for devmem/io_uring Rx and Tx X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" Now that ice uses libeth for managing Rx buffers and supports configurable header split, it's ready to get support for sending and receiving packets with unreadable (to the kernel) frags. Extend libeth just a little bit to allow creating PPs with custom memory providers and make sure ice works correctly with the netdev ops locking. Then add the full set of queue_mgmt_ops and don't unmap unreadable frags on Tx completion. No perf regressions for the regular flows and no code duplication implied. Credits to the fbnic developers, which's code helped me understand the memory providers and queue_mgmt_ops logics and served as a reference. Alexander Lobakin (5): libeth: pass Rx queue index to PP when creating a fill queue libeth: handle creating pools with unreadable buffers ice: migrate to netdev ops lock ice: implement Rx queue management ops ice: add support for transmitting unreadable frags drivers/net/ethernet/intel/ice/ice_lib.h | 11 +- drivers/net/ethernet/intel/ice/ice_txrx.h | 2 + drivers/net/ethernet/intel/idpf/idpf_txrx.h | 2 + include/net/libeth/rx.h | 2 + include/net/libeth/tx.h | 2 +- drivers/net/ethernet/intel/iavf/iavf_txrx.c | 1 + drivers/net/ethernet/intel/ice/ice_base.c | 194 ++++++++++++++------ drivers/net/ethernet/intel/ice/ice_lib.c | 56 +++++- drivers/net/ethernet/intel/ice/ice_main.c | 50 ++--- drivers/net/ethernet/intel/ice/ice_sf_eth.c | 2 + drivers/net/ethernet/intel/ice/ice_txrx.c | 43 +++-- drivers/net/ethernet/intel/ice/ice_xsk.c | 4 +- drivers/net/ethernet/intel/idpf/idpf_txrx.c | 13 ++ drivers/net/ethernet/intel/libeth/rx.c | 46 +++++ 14 files changed, 325 insertions(+), 103 deletions(-) --- >From v1[0]: * rebase on top of the latest next-queue; * fix a typo 'rxq_ixd' -> 'rxq_idx' (Tony). Testing hints: * regular Rx and Tx for regressions; * /tools/testing/selftests/drivers/net/hw/ contains scripts for testing netmem Rx and Tx, namely devmem.py and iou-zcrx.py (read the documentation first). [0] https://lore.kernel.org/intel-wired-lan/20251125173603.3834486-1-aleksander.lobakin@intel.com -- 2.52.0