Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Sep 2008 12:02:04 -0500 (CDT)
From:      Mark Tinguely <tinguely@casselton.net>
To:        jacques.fourie@gmail.com, tinguely@casselton.net
Cc:        freebsd-arm@freebsd.org, sam@freebsd.org
Subject:   Re: Routing benchmarks
Message-ID:  <200809091702.m89H24Bs091763@casselton.net>
In-Reply-To: <be2f52430809090923hb315069u2f3628ecf78dda60@mail.gmail.com>

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

(more trimmed thread text)

I asked:
>  > which version of freebsd are you using - we changed some cache flushing
>  > routines between FreeBSD 7.x and current. Unless errors were introduced
>  > or removed, there should not be that large of a change.

Jacques answered:

>  I'm using -current from about a week ago.

I doubt FreeBSD 7.x will be faster, but it may be worth a try.

Also a fourth item, If I remember correctly, the ARM DMA is done to RAM
only. The cache had to be flushed before the read and write DMAs. Therefore,
any access by the processor to the packet brought in by DMA (to do checksum,
decrease the TTL, read header for packet for IP destination, etc), involves
a cache miss. Also we need to flush the cache before another DMA can be
performed - for example transmit the packet. I am hazy on remembering,
but I think this cache non-involvement in DMA feature is still in the
newer ARMv6/ARMv7 arch.

These arch features can't be programmed around, but keeping the processor
involvement in the packet as little are possible and profiling may
tell us what we are doing inefficiently.

--Mark Tinguely.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809091702.m89H24Bs091763>