ARM network trouble after recent mbuf changes

Michael Tuexen tuexen at freebsd.org
Tue Aug 27 06:30:32 UTC 2013


On Aug 27, 2013, at 7:53 AM, Hans Petter Selasky <hps at bitfrost.no> wrote:

> On 08/27/13 00:38, Michael Tuexen wrote:
>> I did some tests with a small program. Having in struct pkthdr 64 bit entities
>> results in a 64 bit alignment when used in struct mbuf. Using __packed
>> for struct mbuf, removes the padding.
> 
> 
> Hi,
> 
> Maybe you could use __aligned(8) instead, and account for the extra padding on all platforms? Packed has other disadvantages on ARM platforms when accessing the structures, like that non-aligned access is possible, and that it is sometimes slower than aligned access.
Isn't there a performance penalty when accessing 64-bit entities not being 64-bit
aligned? If that is the case, wouldn't it make sense to add a 4 byte padding to
struct m_hdr for ILP32? Then the problem should go away...

We could also get rid of the 64 bit alignment by not having 64-bit entities in
struct pkthdr. Removing sixtyfour should be easy. However, we now have also
uint64_t csum_flags.

Best regards
Michael
> 
> --HPS
> 
> 



More information about the freebsd-arm mailing list