svn commit: r341918 - stable/11/sys/dev/mlx4/mlx4_en
Hans Petter Selasky
hselasky at FreeBSD.org
Wed Dec 12 11:57:29 UTC 2018
Author: hselasky
Date: Wed Dec 12 11:57:27 2018
New Revision: 341918
URL: https://svnweb.freebsd.org/changeset/base/341918
Log:
MFC r341552:
mlx4en: Optimise reception of small packets.
Copy small packets like TCP ACKs into a new mbuf
reusing the existing mbuf to receive a new ethernet
frame. This avoids wasting buffer space for
small sized packets.
Sponsored by: Mellanox Technologies
Modified:
stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
==============================================================================
--- stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c Wed Dec 12 11:57:25 2018 (r341917)
+++ stable/11/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c Wed Dec 12 11:57:27 2018 (r341918)
@@ -629,6 +629,24 @@ mlx4_en_rx_mb(struct mlx4_en_priv *priv, struct mlx4_e
#endif
struct mbuf *mb;
+ /* optimise reception of small packets */
+ if (length <= (MHLEN - MLX4_NET_IP_ALIGN) &&
+ (mb = m_gethdr(M_NOWAIT, MT_DATA)) != NULL) {
+
+ /* set packet length */
+ mb->m_pkthdr.len = mb->m_len = length;
+
+ /* make sure IP header gets aligned */
+ mb->m_data += MLX4_NET_IP_ALIGN;
+
+ bus_dmamap_sync(ring->dma_tag, mb_list->dma_map,
+ BUS_DMASYNC_POSTREAD);
+
+ bcopy(mtod(mb_list->mbuf, caddr_t), mtod(mb, caddr_t), length);
+
+ return (mb);
+ }
+
/* get mbuf */
mb = mb_list->mbuf;
More information about the svn-src-stable-11
mailing list