Date: Wed, 12 Dec 2018 11:57:25 +0000 (UTC) From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r341917 - stable/12/sys/dev/mlx4/mlx4_en Message-ID: <201812121157.wBCBvPBS063974@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: hselasky Date: Wed Dec 12 11:57:25 2018 New Revision: 341917 URL: https://svnweb.freebsd.org/changeset/base/341917 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/12/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c ============================================================================== --- stable/12/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c Wed Dec 12 11:55:43 2018 (r341916) +++ stable/12/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c Wed Dec 12 11:57:25 2018 (r341917) @@ -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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201812121157.wBCBvPBS063974>