~timg-tpi/ubuntu/+source/linux/+git/kinetic:kinetic-vmxnet3-update-to-6.0-lp1995886

Last commit made on 2022-11-07
Get this branch:
git clone -b kinetic-vmxnet3-update-to-6.0-lp1995886 https://git.launchpad.net/~timg-tpi/ubuntu/+source/linux/+git/kinetic
Only Tim Gardner can upload to this branch. If you are Tim Gardner please log in for upload directions.

Branch merges

Branch information

Name:
kinetic-vmxnet3-update-to-6.0-lp1995886
Repository:
lp:~timg-tpi/ubuntu/+source/linux/+git/kinetic

Recent commits

d69f8d2... by Ronak Doshi

vmxnet3: do not reschedule napi for rx processing

Commit '2c5a5748105a ("vmxnet3: add support for out of order rx
completion")' added support for out of order rx completion. Within
that patch, an enhancement was done to reschedule napi for processing
rx completions.

However, it can lead to missing an interrupt. So, this patch reverts
that part of the code.

Fixes: 2c5a5748105a ("vmxnet3: add support for out of order rx completion")
Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 5b91884bf50b21d34bd3daa5c8f8b7e92e0a2c46)
Signed-off-by: Tim Gardner <email address hidden>

4cee093... by Ronak Doshi

vmxnet3: disable overlay offloads if UPT device does not support

'Commit 6f91f4ba046e ("vmxnet3: add support for capability registers")'
added support for capability registers. These registers are used
to advertize capabilities of the device.

The patch updated the dev_caps to disable outer checksum offload if
PTCR register does not support it. However, it missed to update
other overlay offloads. This patch fixes this issue.

Fixes: 6f91f4ba046e ("vmxnet3: add support for capability registers")
Signed-off-by: Ronak Doshi <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit a56b158a5078b8120d3d72fc9fd44efed5123b12)
Signed-off-by: Tim Gardner <email address hidden>

160a905... by Ronak Doshi

vmxnet3: update to version 7

With all vmxnet3 version 7 changes incorporated in the vmxnet3 driver,
the driver can configure emulation to run at vmxnet3 version 7, provided
the emulation advertises support for version 7.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit acc38e041bd304621d4f59cea4849747d13bba9c)
Signed-off-by: Tim Gardner <email address hidden>

221872f... by Ronak Doshi

vmxnet3: use ext1 field to indicate encapsulated packet

Till vmxnet3 version 6, om field of transmit descriptor was used
to indicate encapsulated offload packet and msscof was used to
indirectly indicate TSO/CSO. From version 7 and later, ext1 field
will be used to indicate whether packet is encapsulated or not and
om fields will continue to indicate if the packet is TSO or CSO.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit 60cafa0395c2bed44d13277ed328317ed16a58c0)
Signed-off-by: Tim Gardner <email address hidden>

4c38dda... by Ronak Doshi

vmxnet3: limit number of TXDs used for TSO packet

Currently, vmxnet3 does not have a limit on number of descriptors
used for a TSO packet. However, with UPT, for hardware performance
reasons, this patch limits the number of transmit descriptors to 24
for a TSO packet.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit d2857b99a74b082368ee80f359372faa1d051043)
Signed-off-by: Tim Gardner <email address hidden>

150ba45... by Ronak Doshi

vmxnet3: add command to set ring buffer sizes

This patch adds a new command to set ring buffer sizes. This is
required to pass the buffer size information to passthrough devices.
For performance reasons, with version7 and later, ring1 will contain
only mtu size buffers (bound to 3K). Packets > 3K will use both ring1
and ring2.

Also, ring sizes are round down to power of 2 and ring2 default
size is increased to 512.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit c7112ebd27ea0dbe4eecd5c96cad93757e34e73d)
Signed-off-by: Tim Gardner <email address hidden>

85424ca... by Ronak Doshi

vmxnet3: add support for out of order rx completion

Currently, vmxnet3 processes rx completions in-order i.e. no
out of order completion descriptor is expected. With UPT, if
hardware supports LRO, then hardware can report out of order
rx completions. This patch enhances vmxnet3 to add this support.
This supports gets effective only when the corresponding feature
bit is set.

Also, minor enhancements are done for performance.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit 2c5a5748105a6bb901579d365c6f93e79f282b69)
Signed-off-by: Tim Gardner <email address hidden>

7f780c5... by Ronak Doshi

vmxnet3: add support for large passthrough BAR register

For vmxnet3 to work in UPT mode, the BAR sizes have been increased.
The PT page has been extended to 2 pages and also includes OOB pages
as a part of PT BAR. This patch enhances vmxnet3 to use appropriate
BAR offsets based on the capability registered. To use new offsets,
VMXNET3_CAP_LARGE_BAR needs to be set by the device. If it is not set
then the device will use legacy PT page layout.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit 543fb67405410cc548a72d7a9a4087688d2f56ac)
Signed-off-by: Tim Gardner <email address hidden>

567c5b2... by Ronak Doshi

vmxnet3: add support for capability registers

This patch enhances vmxnet3 to suuport capability registers which
allows it to enable features selectively. The DCR register tracks
the capabilities vmxnet3 device supports. The PTCR register states
the capabilities that the passthrough device supports.

With the help of these registers, vmxnet3 can enable only those
features which the passthrough device supoprts. This allows
smooth trasition to Uniform-Passthrough (UPT) mode if the virtual
nic requests it. If PTCR register returns nothing or error it means
UPT is not being requested and vnic will continue in emulation mode.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit 6f91f4ba046e5de6a6e579620b32b8ecf56873f7)
Signed-off-by: Tim Gardner <email address hidden>

af0dc15... by Ronak Doshi

vmxnet3: prepare for version 7 changes

vmxnet3 is currently at version 6 and this patch initiates the
preparation to accommodate changes for upto version 7. Introduced
utility macros for vmxnet3 version 7 comparison and update Copyright
information.

Signed-off-by: Ronak Doshi <email address hidden>
Acked-by: Guolin Yang <email address hidden>
Signed-off-by: Paolo Abeni <email address hidden>
(cherry picked from commit 55f0395fcace9e675af2cbb96015ce1ae8856806)
Signed-off-by: Tim Gardner <email address hidden>