Subject: Xscale optimisations
To: None <port-arm@netbsd.org>
From: Steve Woodford <scw@wasabisystems.com>
List: port-arm
Date: 10/14/2003 09:04:38
Hi,
If you've been following source-changes, you will have noticed that I've
committed a bunch of Xscale micro-optimisations (contributed by Wasabi
Systems) to the tree.
Briefly, the changes consist of:
- significant improvements to some mem*() library functions,
- caching the kernel stack and pcb in xscale's mini data cache.
Even though this cache is used for copy/zero page (which effectively
clear the mini D$ each time they're called), this is still a win as
copy/zero page ops are not all that common, relatively speaking.
- xscale-enhanced copy/zero page functions.
- xscale-enhanced copy in/out functions.
- a few tweaks to cpuswitch().
I've tested these changes extensively over the last month or two, and
have seen a significant performance boost, both for benchmarks and
real-world applications.
While the non-xscale impact is minimal (only memset/memcmp are
affected), I'd appreciate any feedback from folks running -current on
vanilla ARM systems.
Enjoy.
Cheers, Steve
--
Wasabi Systems Inc. - The NetBSD Company - http://www.wasabisystems.com/