Routing benchmarks

Mark Tinguely tinguely at casselton.net
Tue Sep 9 17:02:05 UTC 2008


(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.


More information about the freebsd-arm mailing list