Hello Jay,
Le 04/03/13 22:30, Jay Carlson a écrit :
I've wanted to do userspace mips16 since around 2002. I've generated a
minimum changeset needed to get basic OpenWrt+luci running. This boots
and runs on mips/mipsel malta qemu, mipsel malta Imperas sim, and a
D-Link DIR-601-A1. It has not been tested on non-mips32r2
(i.e. non-mips16e) at all.
The benefits are unclear. Squashfs sizes are very
similar. Memory/TLB/cache pressure is reduced slightly which might
help a little on 16M machines. Wall clock times for things like
"/etc/init.d/firewall restart" are slightly slower.
uclibc remains -mno-mips16 for now. Among other things, gcc does not
support thread-local storage in mips16 as of gcc 4.6. (Should there be
any TLS symbols with CONFIG_TLS_SUPPORT=n?)
Covering more of uclibc would help. Realtek even uses some mips16 in their
kernel, but I worry about tickling processor errata.
To activate this, add "-minterlink-mips16 -mips16" to
CONFIG_TARGET_OPTIMIZATION.
All applied, thanks! FYI, I get the following for Malta (default build):
MIPS32 rootfs (uncompressed): 3.9MB
MIPS32 rootfs (squashfs XZ) : 1.00 MB
MIPS16 rootfs (uncompressed): 3.5MB
MIPS16 rootfs (squashfs XZ) : 0.98 MB
So the figures are not totally impressive, they will probably be more
impressive once kernel support for MIPS16 gets merged, but this is still
a good improvement for TLB/cache pressure.
I would be grateful if you could also test with vanilla GCC 4.6, 4.7 and
4.8 and 4.7-linaro whether we need the GCC patch you provided? Thanks!
--
Florian
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel