Skip to content

Commit 0e3fb3e

Browse files
authored
Merge pull request #3 from etantilov/idpf-update-00766
Intel official release 0.0.766
2 parents d7e0bec + 47cee7f commit 0e3fb3e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+6010
-512
lines changed

Makefile

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@ KSP := /lib/modules/${BUILD_KERNEL}/source \
3838
test_dir = $(shell [ -e ${dir}/include/linux ] && echo ${dir})
3939
KSP := $(foreach dir, ${KSP}, ${test_dir})
4040

41-
# we will use this first valid entry in the search path
41+
# We will use this first valid entry in the search path, unless KSRC was set
42+
# by the caller, in which case we assume a custom build and will skip depmod
43+
# and initramfs update.
4244
ifeq (,${KSRC})
4345
KSRC := $(firstword ${KSP})
46+
else
47+
CUSTOM_BUILD := 1
4448
endif
4549

4650
ifeq (,${KSRC})
@@ -81,13 +85,55 @@ ifeq (${SPARSE_CHECK},YES)
8185
EXTRA_OPTS += C=2 W=1 CF="-D__CHECK_ENDIAN__"
8286
endif
8387

88+
# Wrapper around kcompat's cmd_initrd, with checks for module signing.
89+
ifeq (${CUSTOM_BUILD},1)
90+
define cmd_initrd_check
91+
@echo "Custom build detected. Skipping initramfs update."
92+
endef
93+
else ifeq (${cmd_initrd},)
94+
define cmd_initrd_check
95+
@echo "Unable to update initramfs. You may need to do this manually."
96+
endef
97+
else ifeq (${DISABLE_MODULE_SIGNING},Yes)
98+
define cmd_initrd_check
99+
@echo "Skipping initramfs update because idpf module cannot be signed."
100+
endef
101+
else
102+
define cmd_initrd_check
103+
@echo "Updating initramfs..."
104+
$(call cmd_initrd)
105+
endef
106+
endif
107+
108+
#Wrapper around kcompat's cmd_depmod. In some build environments, depmod may not be present.
109+
ifeq (${CUSTOM_BUILD},1)
110+
define cmd_initrd_check
111+
@echo "Custom build detected. Skipping depmod update."
112+
endef
113+
else ifeq (${cmd_depmod},)
114+
define cmd_depmod_check
115+
@echo "Unable to run depmod. You may need to do this manually."
116+
endef
117+
else ifeq (,$(wildcard /sbin/depmod))
118+
define cmd_depmod_check
119+
@echo "Unable to run depmod. You may need to do this manually."
120+
endef
121+
else
122+
define cmd_depmod_check
123+
@echo "Calling post install depmod..."
124+
$(call cmd_depmod)
125+
endef
126+
endif
127+
84128
compile:
85129
@${MAKE} -C ${KSRC} M=$$PWD ${CONFIG_DRIVERS} ccflags-y="${CFLAGS_EXTRA} ${EXTRA_CFLAGS}" modules \
86130
NEED_AUX_BUS=${NEED_AUX_BUS} ${EXTRA_OPTS}
87131

88132
.PHONY: install
89133
install: compile
90-
@${MAKE} -C ${KSRC} M=$$PWD ${CONFIG_DRIVERS} modules_install
134+
$(call kernelbuild,${CONFIG_DRIVERS},modules_install)
135+
$(call cmd_depmod_check)
136+
$(call cmd_initrd_check)
91137

92138
INSTALLED_MODS := $(strip $(addprefix ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/,${TARGETS}))
93139
.PHONY: uninstall

README

Lines changed: 58 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
idpf Linux* Base Driver Readme for Infrastructure Data-Plane Function
2-
*********************************************************************
1+
5.5.1. idpf Linux* Base Driver Readme for Infrastructure Data-Plane Function
2+
****************************************************************************
33

4-
Jun 24, 2024
4+
September 17, 2024
55

66

77
On This Page
@@ -23,8 +23,8 @@ On This Page
2323
* Known Issues/Troubleshooting
2424

2525

26-
Overview
27-
========
26+
5.5.1.1. Overview
27+
=================
2828

2929
This document provides the README for the out-of-tree idpf Linux
3030
driver. The driver is compatible with devices based on the following:
@@ -46,12 +46,12 @@ This driver supports XDP (Express Data Path) and AF_XDP zero-copy.
4646
Note that XDP is blocked for frame sizes larger than 3KB.
4747

4848

49-
Building and Installation
50-
=========================
49+
5.5.1.2. Building and Installation
50+
==================================
5151

5252

53-
To manually build the driver
54-
----------------------------
53+
5.5.1. To manually build the driver
54+
-----------------------------------
5555

5656
1. Move the base driver tar file to the directory of your choice. For
5757
example, use "/home/username/idpf" or "/usr/local/src/idpf".
@@ -112,8 +112,8 @@ To manually build the driver
112112
ping <IP_address>
113113

114114

115-
To build a binary RPM package of this driver
116-
--------------------------------------------
115+
5.5.1. To build a binary RPM package of this driver
116+
---------------------------------------------------
117117

118118
Note:
119119

@@ -155,18 +155,18 @@ Note:
155155
-r'/build".
156156

157157

158-
Command Line Parameters
159-
=======================
158+
5.5.1.3. Command Line Parameters
159+
================================
160160

161161
The idpf driver does not support any command line parameters.
162162

163163

164-
Additional Features and Configurations
165-
======================================
164+
5.5.1.4. Additional Features and Configurations
165+
===============================================
166166

167167

168-
Configuring SR-IOV for improved network security
169-
------------------------------------------------
168+
5.5.1. Configuring SR-IOV for improved network security
169+
-------------------------------------------------------
170170

171171
In a virtualized environment, on Intel(R) Ethernet Network Adapters
172172
that support SR-IOV or Intel(R) Scalable I/O Virtualization (Intel(R)
@@ -183,8 +183,8 @@ configuration allows unexpected, and potentially malicious, frames to
183183
be dropped.
184184

185185

186-
ethtool
187-
-------
186+
5.5.1. ethtool
187+
--------------
188188

189189
The driver utilizes the ethtool interface for driver configuration and
190190
diagnostics, as well as displaying statistical information. The latest
@@ -193,8 +193,8 @@ one yet, you can obtain it at at:
193193
https://kernel.org/pub/software/network/ethtool/.
194194

195195

196-
Viewing Link Messages
197-
---------------------
196+
5.5.1. Viewing Link Messages
197+
----------------------------
198198

199199
Link messages will not be displayed to the console if the distribution
200200
is restricting system messages. In order to see network driver link
@@ -204,8 +204,8 @@ following:
204204
dmesg -n 8
205205

206206

207-
Jumbo Frames
208-
------------
207+
5.5.1. Jumbo Frames
208+
-------------------
209209

210210
Jumbo Frames support is enabled by changing the Maximum Transmission
211211
Unit (MTU) to a value larger than the default value of 1500.
@@ -222,9 +222,10 @@ Note:
222222

223223
* The supported maximum MTU setting for jumbo frames on Intel(R) IPU
224224
ASIC E2100 B1 Stepping is 7652 bytes as mentioned in the release
225-
notes for Release 1.3.0. This corresponds to the maximum frame
226-
size of 7678 bytes. Later revisions of the Intel IPU support the
227-
maximum MTU of 9188 bytes and maximum frame size of 9216 bytes.
225+
notes for Release 1.3.0 Release Notes. This corresponds to the
226+
maximum frame size of 7678 bytes. Later revisions of the Intel IPU
227+
support the maximum MTU of 9188 bytes and maximum frame size of
228+
9216 bytes.
228229

229230
* This driver will attempt to use multiple page sized buffers to
230231
receive each jumbo packet. This should help to avoid buffer
@@ -235,15 +236,15 @@ Note:
235236
jumbo frames, enabling flow control may mitigate the issue.
236237

237238

238-
Subfunctions
239-
------------
239+
5.5.1. Subfunctions
240+
-------------------
240241

241242
Subfunctions are supported using the devlink interface to create,
242243
activate or delete subfunction netdevs or dynamic vports.
243244

244245

245-
Configuring Subfunctions
246-
~~~~~~~~~~~~~~~~~~~~~~~~
246+
5.5.1. Configuring Subfunctions
247+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
247248

248249
1. After loading the driver, run the following command to verify that
249250
the IDPF driver supports devlink based interface:
@@ -349,16 +350,16 @@ Configuring Subfunctions
349350
pci/0000:4b:00.1/0: type eth netdev ens785f1 flavour physical port 1 splittable false
350351

351352

352-
Performance Optimization
353-
========================
353+
5.5.1.5. Performance Optimization
354+
=================================
354355

355356
Driver defaults are meant to fit a wide variety of workloads, but if
356357
further optimization is required, we recommend experimenting with the
357358
following settings.
358359

359360

360-
IRQ to Adapter Queue Alignment
361-
------------------------------
361+
5.5.1. IRQ to Adapter Queue Alignment
362+
-------------------------------------
362363

363364
Pin the adapter's IRQs to specific cores by disabling the irqbalance
364365
service and using the included "set_irq_affinity" script. Please see
@@ -378,8 +379,8 @@ the script's help text for further options.
378379
all cores.
379380

380381

381-
Interrupt Rate Limiting
382-
-----------------------
382+
5.5.1. Interrupt Rate Limiting
383+
------------------------------
383384

384385
This driver supports an adaptive interrupt throttle rate (ITR)
385386
mechanism that is tuned for general workloads. The user can customize
@@ -422,8 +423,8 @@ Per-queue interrupt rate settings:
422423
ethtool --per-queue <ethX> queue_mask 0xa --show-coalesce
423424

424425

425-
Transmit/Receive Queue Allocation
426-
---------------------------------
426+
5.5.1. Transmit/Receive Queue Allocation
427+
----------------------------------------
427428

428429
To set the number of symmetrical (Rx/Tx) or asymmetrical (mix of
429430
combined and Tx or Rx) queues, use the "ethtool -L" option. For
@@ -442,8 +443,8 @@ Note:
442443
Dedicated Tx and Rx queues are not supported.
443444

444445

445-
Virtualized Environments
446-
------------------------
446+
5.5.1. Virtualized Environments
447+
-------------------------------
447448

448449
The following methods may be helpful to optimize performance in
449450
virtual machines (VMs):
@@ -462,36 +463,36 @@ virtual machines (VMs):
462463
Dedicated Tx and Rx queues are not supported.
463464

464465

465-
Known Issues/Troubleshooting
466-
============================
466+
5.5.1.6. Known Issues/Troubleshooting
467+
=====================================
467468

468469

469-
Receive Error Counts May Be Higher Than the Actual Packet Error Count
470-
---------------------------------------------------------------------
470+
5.5.1. Receive Error Counts May Be Higher Than the Actual Packet Error Count
471+
----------------------------------------------------------------------------
471472

472473
When a packet is received with more than one error, two bad packets
473474
may be reported.
474475

475476

476-
"ethtool -S" Does Not Display Tx/Rx Packet Statistics
477-
-----------------------------------------------------
477+
5.5.1. "ethtool -S" Does Not Display Tx/Rx Packet Statistics
478+
------------------------------------------------------------
478479

479480
Issuing the command "ethtool -S" does not display Tx/Rx packet
480481
statistics. This is by convention. Use other tools (such as the **ip**
481482
command) that display standard netdev statistics such as Tx/Rx packet
482483
statistics.
483484

484485

485-
Changing Ring Size During Heavy Traffic is Unstable
486-
---------------------------------------------------
486+
5.5.1. Changing Ring Size During Heavy Traffic is Unstable
487+
----------------------------------------------------------
487488

488489
"ethtool -G" should not be used while the driver is being used to send
489490
or receive heavy traffic. This can result in the interface going into
490491
the no-carrier state.
491492

492493

493-
Unexpected Issues When the Device Driver and DPDK Share a Device
494-
----------------------------------------------------------------
494+
5.5.1. Unexpected Issues When the Device Driver and DPDK Share a Device
495+
-----------------------------------------------------------------------
495496

496497
Unexpected issues may result when an idpf device is in multi driver
497498
mode and the kernel driver and DPDK driver are sharing the device.
@@ -503,19 +504,19 @@ device. Loading DPDK with the "multi-driver" module parameter may
503504
mitigate some of the issues.
504505

505506

506-
Support
507-
=======
507+
5.5.1.7. Support
508+
================
508509

509510
For general information, go to the Intel support website at:
510-
*<http://www.intel.com/support/>*
511+
http://www.intel.com/support/
511512

512513
If an issue is identified with the released source code on a supported
513514
kernel with a supported adapter, email the specific information
514515
related to the issue to [email protected].
515516

516517

517-
License
518-
=======
518+
5.5.1.8. License
519+
================
519520

520521
This program is free software; you can redistribute it and/or modify
521522
it under the terms and conditions of the GNU General Public License,
@@ -537,8 +538,8 @@ in the file called "COPYING".
537538
Copyright (c) 2019 - 2024 Intel Corporation.
538539

539540

540-
Trademarks
541-
==========
541+
5.5.1.9. Trademarks
542+
===================
542543

543544
Intel is a trademark or registered trademark of Intel Corporation or
544545
its subsidiaries in the United States and/or other countries.

0 commit comments

Comments
 (0)