Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Jun 2014 10:33:59 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        John-Mark Gurney <jmg@funkthat.com>
Cc:        "freebsd-arm@freebsd.org" <arm@freebsd.org>
Subject:   Re: arm alignment faults...
Message-ID:  <039F8A84-0193-424C-8093-E411957817E9@bsdimp.com>
In-Reply-To: <20140629054039.GP1560@funkthat.com>
References:  <20140629033823.GN1560@funkthat.com> <CAJ-VmokxO5vfOOSvPrTfnda6gSKOPpJQF3kto3AdgUhvbFgNYg@mail.gmail.com> <20140629040150.GO1560@funkthat.com> <CAJ-Vmon1iFeJdJ-nBnz%2B4bqannshT4nct2dFKep1EZzCEM62Jw@mail.gmail.com> <86E20F1C-C161-45B2-AC82-11738596E004@bsdimp.com> <20140629054039.GP1560@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_FC3C17ED-70FE-4F36-B52F-701032B569AD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252


On Jun 28, 2014, at 11:40 PM, John-Mark Gurney <jmg@funkthat.com> wrote:

> Warner Losh wrote this message on Sat, Jun 28, 2014 at 22:53 -0600:
>>=20
>> On Jun 28, 2014, at 10:52 PM, Adrian Chadd <adrian@freebsd.org> =
wrote:
>>=20
>>> On 28 June 2014 21:01, John-Mark Gurney <jmg@funkthat.com> wrote:
>>>> Adrian Chadd wrote this message on Sat, Jun 28, 2014 at 20:44 =
-0700:
>>>>> On 28 June 2014 20:38, John-Mark Gurney <jmg@funkthat.com> wrote:
>>>>>> So, one of the little projects I'd like to see is the removal of
>>>>>> ETHER_ALIGN from the tree..  This bogosity can (and does) cause =
the use
>>>>>> of bouncing durning DMA ops on all ethernet frames...
>>>>=20
>>>> Now that I think about it, total removal may not be necessary, just
>>>> the requirement to use it...  If the ethernet dma engine can do =
half
>>>> word aligned dma, then there would be benifit on those to keep
>>>> ETHER_ALIGN...
>>>>=20
>>>>> Well, as long as you're not doing it by forcing the various CPUs =
to
>>>>> handle unaligned accesses.
>>>>=20
>>>> Hard to do on armv4 which I don't believe supports unaligned =
access...
>>>>=20
>>>>> The cost of those unaligned accesses on some CPUs that support =
them is
>>>>> not trivial. We benchmarked some of the ARM cores at Qualcomm back
>>>>> when looking to migrate stuff to ARM and it wasn't very quick.
>>>>=20
>>>> I plan on fixing the TCP/IP stack to copy data to an aligned buffer
>>>> (maybe only if the original buffer isn't aligned) on the stack when
>>>> __NO_STRICT_ALIGNMENT is not defined...  I can't see how copying =
the
>>>> entire packet is cheaper than copying 20 bytes or so...
>>>=20
>>> There's lots of other stupid corner cases that screw you.
>>>=20
>>> VLAN headers add extra bytes.
>>>=20
>>> 802.11 headers can offset things depending upon the 802.11 frame =
type
>>> (3-addr, 4-addr, vlan, no vlan, etc.)
>>>=20
>>> There's no guarantee all ethernet DMA engines can do the alignment =
as
>>> required. :(
>>=20
>> The ate driver for Atmel?s AT91RM9200 is one such beast.
>=20
> Are you sure?  The tag for data says alignment 1:
>        if (bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0,
>            BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, =
MCLBYTES,
>            1, MCLBYTES, 0, busdma_lock_mutex, &sc->sc_mtx, &sc->mtag))
>=20
> Or is that a limitation on the parent?

It is a limitation in hardware. You have to DMA to a 4 byte boundary. =
That might be a bug in the above line though=85

Warner

> I did an audit of the arm drivers (not mips), but I didn't see any =
that
> have the restriction...  The one that I'm thinking of was the Cirrus
> EP9302 in the TS-7200 port that I did years ago..


--Apple-Mail=_FC3C17ED-70FE-4F36-B52F-701032B569AD
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJTsD/3AAoJEGwc0Sh9sBEAPEkP/2nWdgA6WJQzATfBDtpFYbBQ
lvh6B4Updblfehjknav+Pt+kGp3LSR15Ev5BDHeffjMZt/HLJkG2yyaSiwS+QdSZ
D9WMLPFeX+gJfNkul2/STV0XUwv/fcflRyYr2LaNnvccnPqvWRM8bZ++hLgssZmc
CG9JTSq6mygTQwel/zISOiJRbAhEKa5iQ7UjvB1Ropli08QgMOJr/DkGQChe3fYU
kg0KQXElRC5ser/W0vKTxM7pL4S5ITctXeKV+gMbg9CzxwgbM4Y+sDpqXh8e18kC
oMx2B2DOQUgxycV5cO5p2srrz62VRklQmbTZhd2y6NfJjgjCPM1m6l/1Ek39lQ6b
rW0Ct40i2R6dlMP/1UnwCV9piVA0Xy/eFr4kaQ04b4J/qadLo4rJlEFFBTD7cRu3
8knBYCuqggMlmOwXBrDV3w9YS845R+kSpHwMB2KvFShmD1AKioauGOmomo2oS1ec
jwTAFohxRoF1rZi92I+6VzVN7RfdZI5Oq1LXuJHc5BbiKqre50GxYad/HVlIFji6
qPOrFSvZiAL0TJbR0KK9+heidF1Iq2neQl8MIsjZ0bWA9JbCsSHV/avIaH71UG9R
qudby5xCMQpwaIc7EYed/UcV+18SBaQP1kyRcUdWJGacZG34WYWuH/emNxh2Ns2p
dStTWQa0/mjvzC6drmU7
=Gi2m
-----END PGP SIGNATURE-----

--Apple-Mail=_FC3C17ED-70FE-4F36-B52F-701032B569AD--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?039F8A84-0193-424C-8093-E411957817E9>