#
d3bb1c9e |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: remove unneeded vector flags and cleanup code
With all drivers using the common Tx structure updated so that their vector paths all use the simplified Tx mbuf ring format, it's no longer
net/intel: remove unneeded vector flags and cleanup code
With all drivers using the common Tx structure updated so that their vector paths all use the simplified Tx mbuf ring format, it's no longer necessary to have a separate flag for the ring format and for use of a vector driver.
Remove the former flag and base all decisions off the vector flag. With that done, we go from having only two paths to consider for releasing all mbufs in the ring, not three. That allows further simplification of the "ci_txq_release_all_mbufs" function.
The separate function to free buffers from the vector driver not using the simplified ring format can similarly be removed as no longer necessary.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
7e230d56 |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/ice: use vector SW ring for all vector paths
The AVX-512 code path used a smaller SW ring structure only containing the mbuf pointer, but no other fields. The other fields are only used in the s
net/ice: use vector SW ring for all vector paths
The AVX-512 code path used a smaller SW ring structure only containing the mbuf pointer, but no other fields. The other fields are only used in the scalar code path, so update all vector driver code paths to use the smaller, faster structure.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
cef05386 |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/iavf: use common Tx queue mbuf cleanup
Adjust iavf driver to also use the common mbuf freeing functions on Tx queue release/cleanup. The implementation is complicated a little by the need to int
net/iavf: use common Tx queue mbuf cleanup
Adjust iavf driver to also use the common mbuf freeing functions on Tx queue release/cleanup. The implementation is complicated a little by the need to integrate the additional "has_ctx" parameter for the iavf code, but changes in other drivers are minimal - just a constant "false" parameter.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
552979df |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: create common Tx queue mbuf cleanup
The function to loop over the Tx queue and clean up all the mbufs on it, e.g. for queue shutdown, is not device specific and so can move into the commo
net/intel: create common Tx queue mbuf cleanup
The function to loop over the Tx queue and clean up all the mbufs on it, e.g. for queue shutdown, is not device specific and so can move into the common/intel headers. Only complication is ensuring that the correct ring format, either minimal vector or full structure, is used. Ice driver currently uses two functions and a function pointer to help with this - though actually one of those functions uses a further check inside it - so we can simplify this down to just one common function, with a flag set in the appropriate place. This avoids checking for AVX-512-specific functions, which were the only function using the smaller struct in this driver.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
e3b5f52d |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: pack Tx queue structure
Move some fields about to better pack the Tx queue structure and make sure all data used by the vector codepaths is on the first cacheline of the structure. Checki
net/intel: pack Tx queue structure
Move some fields about to better pack the Tx queue structure and make sure all data used by the vector codepaths is on the first cacheline of the structure. Checking with "pahole" on 64-bit build, only one 6-byte hole is left in the structure - on second cacheline - after this patch.
As part of the reordering, move the p/h/wthresh values to the ixgbe-specific part of the union. That is the only driver which actually uses those values. i40e and ice drivers just record the values for later return, so we can drop them from the Tx queue structure for those drivers and just report the defaults in all cases.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
c038157a |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: merge ice and i40e Tx queue struct
The queue structures of i40e and ice drivers are virtually identical, so merge them into a common struct. This should allow easier function merging in f
net/intel: merge ice and i40e Tx queue struct
The queue structures of i40e and ice drivers are virtually identical, so merge them into a common struct. This should allow easier function merging in future using that common struct.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
4d0f54d9 |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: add prefix for driver-specific structs
In preparation for merging the Tx structs for multiple drivers into a single struct, rename the driver-specific pointers in each struct to have a pr
net/intel: add prefix for driver-specific structs
In preparation for merging the Tx structs for multiple drivers into a single struct, rename the driver-specific pointers in each struct to have a prefix on it, to avoid name conflicts.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
5cc9919f |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: provide common Tx entry structures
The Tx entry structures, both vector and scalar, are common across Intel drivers, so provide a single definition to be used everywhere.
Signed-off-by:
net/intel: provide common Tx entry structures
The Tx entry structures, both vector and scalar, are common across Intel drivers, so provide a single definition to be used everywhere.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
#
c1d14583 |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: move Intel drivers to a subdirectory
Consolidate all Intel HW NIC drivers into a drivers/net/intel directory. This matches the layout used for drivers in the kernel, and potentially enabl
net/intel: move Intel drivers to a subdirectory
Consolidate all Intel HW NIC drivers into a drivers/net/intel directory. This matches the layout used for drivers in the kernel, and potentially enables easier sharing among drivers.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|