Date: Wed, 27 Mar 2013 21:22:32 -0600 From: Warner Losh <imp@bsdimp.com> To: Adrian Chadd <adrian@freebsd.org> Cc: freebsd-embedded@freebsd.org, Ian Lepore <ian@freebsd.org> Subject: Re: FreeBSD on the AP121 (AR9330) Message-ID: <B649B0AC-21B7-4C12-8114-E363134E8198@bsdimp.com> In-Reply-To: <CAJ-VmokKnWLYUvUkxf-H_drMMw4P0VqenZU2GXLkHKLyFne-fg@mail.gmail.com> References: <CAJ-Vmom8sbMJvFn1ucGBSiptWtKPC0kE1Ss22Kj-WGVSkP_8ag@mail.gmail.com> <1364404612.36972.59.camel@revolution.hippie.lan> <CAJ-VmokJ40LDF4WeuAENkZR89iStEmnTGkojeA6brSRkSKgJ1w@mail.gmail.com> <65064C0E-1C1F-4C07-9CFB-DEEC1638A78D@bsdimp.com> <CAJ-VmokXmycjeBv=3qOyiwdq4hqQ9ubwuxCEFpA_UPKtQ%2BAYFQ@mail.gmail.com> <CAJ-Vmo=HFgWfd0HRNfcXRVPL6X-_gbg4Hs1Fbnj5TAGa-j6GNQ@mail.gmail.com> <CAJ-VmokKnWLYUvUkxf-H_drMMw4P0VqenZU2GXLkHKLyFne-fg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> -r-xr-xr-x 1 adrian wheel 4638057 Mar 27 17:34 /tftpboot/kernel.AP121 > > http://people.freebsd.org/~adrian/ath/AP121-nodebug.txt > > Yes, it's bigger without -g. I was able to save about 40k by uninlining mutexes, etc. But that took the AP96 kernel from 6.5MB to 6.4MB. 4680311 266388 1576752 6523451 638a3b /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/kernel 4641469 266372 1576624 6484465 62f1f1 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/kernel svn diff sys/mips/conf Index: sys/mips/conf/AP96 =================================================================== --- sys/mips/conf/AP96 (revision 248804) +++ sys/mips/conf/AP96 (working copy) @@ -43,3 +43,11 @@ device etherswitch device arswitch + +# Disable the inlining of mutex, rwlock and sx locks. These eat up a lot +# of space. +options MUTEX_NOINLINE +options RWLOCK_NOINLINE +options SX_NOINLINE +options NO_FFS_SNAPSHOT +options NO_SWAPPING Here's the top 10 in terms of text size: 57344 160 49184 106688 1a0c0 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/kern_umtx.o 57004 848 64 57916 e23c /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/pci.o 48956 10672 80 59708 e93c /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/scsi_all.o 48664 1680 256 50600 c5a8 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/vfs_subr.o 45156 624 0 45780 b2d4 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/if_ath.o 44932 2000 320 47252 b894 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/vfs_bio.o 41796 992 192 42980 a7e4 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/ffs_alloc.o 41376 0 0 41376 a1a0 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/if_ath_tx.o 38272 5120 80 43472 a9d0 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/kern_jail.o 34340 752 192 35284 89d4 /dune/imp/obj/mips.mips/dune/imp/FreeBSD/sys/AP96/cam_xpt.o two of which you might be able to do something about. One suspects that PCIe support could be compiled out of pci.o, and there's two from CAM, and another three from file systems... Maybe there's a smaller subset of CAM that can be compiled in for the USB drive support? Last time I fought this battle, it was a battle of attrition: 20k here, 20k there, 5k over there. Sadly, you'll need about 100 of these. Also, inlining can cause significant bloat, and we inline a lot... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B649B0AC-21B7-4C12-8114-E363134E8198>
