Subject: Xscale optimisations
To: None <>
From: Steve Woodford <>
List: port-arm
Date: 10/14/2003 09:04:38

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.


Cheers, Steve


Wasabi Systems Inc. - The NetBSD Company -