Re: m_uiotombuf alignment

From: Maksim Yevmenkin <maksim.yevmenkin_at_gmail.com>
Date: Tue, 2 Sep 2008 11:53:30 -0700
On 9/2/08, Andrew Thompson <thompsa_at_freebsd.org> wrote:
> On Tue, Sep 02, 2008 at 10:54:08AM -0700, Maksim Yevmenkin wrote:
>  > Andrew,
>  >
>  > >  I have a patch here to removing the alignment of the align parameter. I
>  > >  can not see why it was added as it up to the caller to specify this, it
>  > >  breaks tap(4) on strict alignment machines as m_uiotombuf is called with
>  > >  ETHER_ALIGN. Also 'align' isnt a great description of this field, its
>  > >  more a padding or data offset.
>  >
>  > hmm... strange... from cvs
>  >
>  > ===
>  >
>  > Revision 1.53
>  > Wed May 4 18:55:02 2005 UTC (3 years, 4 months ago) by emax
>  > Branches: MAIN
>  >
>  > Change m_uiotombuf so it will accept offset at which data should be copied
>  > to the mbuf. Offset cannot exceed MHLEN bytes. This is currently used to
>  > fix Ethernet header alignment problem on alpha and sparc64. Also change all
>  > users of m_uiotombuf to pass proper offset.
>  >
>  > Reviewed by:  jmg, sam
>  > Tested by:    Sten Spans "sten AT blinkenlights DOT nl"
>  > MFC after:    1 week
>  >
>  > ===
>  >
>  > could you please explain how and on which platforms it breaks tap(4)?
>
>
> That revision had the correct behaviour, it was broken in r1.169
>
>   Rewrite m_uiotombuf() to use m_getm2() for mbuf allocation and do the
>   uiomove() in a tight loop over the mbuf chain.  Add a flags parameter to
>   accept mbuf flags to be passed to m_getm2().  Adjust all callers for the
>   extra parameter.
>
>   Sponsored by:  TCP/IP Optimization Fundraise 2005

ahh... i see... i was looking at the wrong revision :) yes, i agree
with you. i do not see the reason for the alignment of the align
parameter.

thanks,
max
Received on Tue Sep 02 2008 - 16:56:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:34 UTC