svn commit: r344817 - in head/sys: dev/e1000 net

Eric Joyner erj at freebsd.org
Tue Mar 5 22:06:10 UTC 2019


I'm cc'ing Jake so that he can provide a response.

- Eric

On Tue, Mar 5, 2019 at 1:12 PM Rodney W. Grimes <freebsd at gndrsh.dnsmgr.net>
wrote:

> > This represents a misunderstanding of how defines are used. This left
> > the option open to the user to enable the use of larger than page size
> > buffers as it does enable better performance. Over the course of a
> > long uptime memory can get too fragmented. However, this left it open
> > to the end consumer.
> >
> > I'd like to see this reverted with perhaps a better name for the
> > define and the addition of an explanatory comment.
> > Thanks.
> Yes please.
>
> Also, Matt, does it/would it work to stop the memory fragmentation issue
> if we push the allocation up to the next page size and just waste the
> 3k bytes?  Some people might be willing to make that trade off to get
> long up times and full 9k jumbo's.
>
>
> Thanks,
> Rod
>
> > -M
> >
> > On Tue, Mar 5, 2019 at 11:13 AM Eric Joyner <erj at freebsd.org> wrote:
> > >
> > > Author: erj
> > > Date: Tue Mar  5 19:12:51 2019
> > > New Revision: 344817
> > > URL: https://svnweb.freebsd.org/changeset/base/344817
> > >
> > > Log:
> > >   Remove references to CONTIGMALLOC_WORKS in iflib and em
> > >
> > >   From Jake:
> > >   "The iflib_fl_setup() function tries to pick various buffer sizes
> based
> > >   on the max_frame_size value defined by the parent driver. However,
> this
> > >   code was wrapped under CONTIGMALLOC_WORKS, which was never actually
> > >   defined anywhere.
> > >
> > >   This same code pattern was used in if_em.c, likely trying to match
> > >   what iflib uses.
> > >
> > >   Since CONTIGMALLOC_WORKS is not defined, remove this dead code from
> > >   iflib_fl_setup and if_em.c
> > >
> > >   Given that various iflib drivers appear to be using a similar
> > >   calculation, it might be worth making this buffer size a value that
> the
> > >   driver can peek at in the future."
> > >
> > >   Submitted by: Jacob Keller <jacob.e.keller at intel.com>
> > >   Reviewed by:  shurd@
> > >   MFC after:    1 week
> > >   Sponsored by: Intel Corporation
> > >   Differential Revision:        https://reviews.freebsd.org/D19199
> > >
> > > Modified:
> > >   head/sys/dev/e1000/if_em.c
> > >   head/sys/net/iflib.c
> > >
> > > Modified: head/sys/dev/e1000/if_em.c
> > >
> ==============================================================================
> > > --- head/sys/dev/e1000/if_em.c  Tue Mar  5 19:08:37 2019
> (r344816)
> > > +++ head/sys/dev/e1000/if_em.c  Tue Mar  5 19:12:51 2019
> (r344817)
> > > @@ -1276,15 +1276,8 @@ em_if_init(if_ctx_t ctx)
> > >          */
> > >         if (adapter->hw.mac.max_frame_size <= 2048)
> > >                 adapter->rx_mbuf_sz = MCLBYTES;
> > > -#ifndef CONTIGMALLOC_WORKS
> > >         else
> > >                 adapter->rx_mbuf_sz = MJUMPAGESIZE;
> > > -#else
> > > -       else if (adapter->hw.mac.max_frame_size <= 4096)
> > > -               adapter->rx_mbuf_sz = MJUMPAGESIZE;
> > > -       else
> > > -               adapter->rx_mbuf_sz = MJUM9BYTES;
> > > -#endif
> > >         em_initialize_receive_unit(ctx);
> > >
> > >         /* Use real VLAN Filter support? */
> > >
> > > Modified: head/sys/net/iflib.c
> > >
> ==============================================================================
> > > --- head/sys/net/iflib.c        Tue Mar  5 19:08:37 2019
> (r344816)
> > > +++ head/sys/net/iflib.c        Tue Mar  5 19:12:51 2019
> (r344817)
> > > @@ -2187,17 +2187,8 @@ iflib_fl_setup(iflib_fl_t fl)
> > >          */
> > >         if (sctx->isc_max_frame_size <= 2048)
> > >                 fl->ifl_buf_size = MCLBYTES;
> > > -#ifndef CONTIGMALLOC_WORKS
> > >         else
> > >                 fl->ifl_buf_size = MJUMPAGESIZE;
> > > -#else
> > > -       else if (sctx->isc_max_frame_size <= 4096)
> > > -               fl->ifl_buf_size = MJUMPAGESIZE;
> > > -       else if (sctx->isc_max_frame_size <= 9216)
> > > -               fl->ifl_buf_size = MJUM9BYTES;
> > > -       else
> > > -               fl->ifl_buf_size = MJUM16BYTES;
> > > -#endif
> > >         if (fl->ifl_buf_size > ctx->ifc_max_fl_buf_size)
> > >                 ctx->ifc_max_fl_buf_size = fl->ifl_buf_size;
> > >         fl->ifl_cltype = m_gettype(fl->ifl_buf_size);
> > >
> >
> >
>
> --
> Rod Grimes
> rgrimes at freebsd.org
>
>


More information about the svn-src-head mailing list