From owner-freebsd-mips@FreeBSD.ORG Fri Sep 5 20:46:06 2014 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3C826600 for ; Fri, 5 Sep 2014 20:46:06 +0000 (UTC) Received: from mail-qg0-x235.google.com (mail-qg0-x235.google.com [IPv6:2607:f8b0:400d:c04::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EF37B1BAC for ; Fri, 5 Sep 2014 20:46:05 +0000 (UTC) Received: by mail-qg0-f53.google.com with SMTP id z107so12565114qgd.12 for ; Fri, 05 Sep 2014 13:46:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=Jz3HH/cN8Iq8BRnCROtmN24bwb0d3zwb8cAUSQIhVaU=; b=oZ64CVnuIUtjXkt0TVxFITTxjYpqg8ZzH5Hj0yQDUof5axBLnT015pG60f61MBUqgX W2FKHMKT07N9NumT9GKPgPNJA77ToVNqhoOVd58nuMg5a9bmzHFhZM0ayY6+jKWzyNoc jyYsEvO/8mohqR7X9vHtnEFa3lW6jOKlI0QMIf3sLUKgH0MuruhEBHPX1txJd9rYcYrq 0wQHx4wWvKxpHB3RMbOYHMfW0cwB/LZ1T2bPfaywvlFzgabOlfGp/1IhF9Un5kwOY2AF naY2rEFVQy6G1YS0Sg5Y0yjNfaoEf4/MwixbgVZCIAqsmjWEwF/UR2+gYzJpa06rw2nz iONA== MIME-Version: 1.0 X-Received: by 10.140.31.75 with SMTP id e69mr21517535qge.2.1409949965148; Fri, 05 Sep 2014 13:46:05 -0700 (PDT) Sender: hiren.panchasara@gmail.com Received: by 10.96.170.230 with HTTP; Fri, 5 Sep 2014 13:46:05 -0700 (PDT) In-Reply-To: <540A0BDE.6040605@riseup.net> References: <5408BB36.5060409@riseup.net> <5408BE6A.4050500@riseup.net> <5408CE14.2090809@riseup.net> <540A0BDE.6040605@riseup.net> Date: Fri, 5 Sep 2014 13:46:05 -0700 X-Google-Sender-Auth: RJAbJAE4p9GF0A0mVWRXQrwvSxg Message-ID: Subject: Re: WR1043ND - too big kernel From: hiren panchasara To: Piotr Kubaj Content-Type: text/plain; charset=UTF-8 Cc: "freebsd-mips@freebsd.org" X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2014 20:46:06 -0000 On Fri, Sep 5, 2014 at 12:15 PM, Piotr Kubaj wrote: > On 09/05/2014 19:59, hiren panchasara wrote: >> On Thu, Sep 4, 2014 at 2:27 PM, hiren panchasara wrote: >>> On Thu, Sep 4, 2014 at 1:44 PM, hiren panchasara wrote: >>>> On Thu, Sep 4, 2014 at 1:39 PM, Piotr Kubaj wrote: >>>>> Adding following lines to kernel config shrinks size to 1750991 (on >>>>> releng/10.0): >>>>> makeoptions INLINE_LIMIT=768 >>>>> nomakeoptions DEBUG >>>>> nomakeoptions ALQ >>>>> nooptions INET6 >>>>> options NO_SWAPPING >>>>> nooptions HWPMC_HOOKS >>>>> nodevice hwpmc >>>>> nodevice hwpmc_mips24k >>>>> nooptions KDB >>>>> >>>>> Any ideas what else I can remove? :P >>>> >>>> I see you already have r255656. >>>> Let me try to build for -head and see. >>> >>> >>>> [mktplinkfw] *** error: kernel image is too big. Max[1572352] kernel img [2000794] >>> >>> ugh. Need to trim more. I'll see if I can find time this week to check >>> where/what we can trim. >> >> Randomly disabled a ton of things and then I could create small enough >> kernel. I'm not even sure if things will actually work. >> >> We've grown too big, it seems :-( >> >> Diffs against -head. >> >> Index: sys/mips/conf/TP-WN1043ND >> =================================================================== >> --- sys/mips/conf/TP-WN1043ND (revision 271137) >> +++ sys/mips/conf/TP-WN1043ND (working copy) >> @@ -16,7 +16,7 @@ >> options AR71XX_REALMEM=32*1024*1024 >> >> # i2c GPIO bus >> -device gpioiic >> +#device gpioiic >> device iicbb >> device iicbus >> device iic >> @@ -28,7 +28,7 @@ >> device rtl8366rb >> >> # read MSDOS formatted disks - USB >> -options MSDOSFS >> +#options MSDOSFS >> >> # Enable the uboot environment stuff rather then the >> # redboot stuff. >> @@ -57,3 +57,29 @@ >> nooptions WITNESS_SKIPSPIN >> nooptions DEBUG_REDZONE >> nooptions DEBUG_MEMGUARD >> + >> +nooptions DDB >> +nooptions KDB >> +nooptions ALQ >> +nooptions HWPMC_HOOKS >> +nodevice hwpmc >> +nodevice hwpmc_mips24k >> +nooptions INET6 #InterNETworking >> + >> +nooptions ATH_DEBUG >> +nooptions AH_DEBUG >> +nooption AH_DEBUG_ALQ >> +nooptions IEEE80211_DEBUG >> +nooptions IEEE80211_SUPPORT_MESH >> +nooptions IEEE80211_SUPPORT_TDMA >> +nooptions IEEE80211_ALQ # 802.11 ALQ logging support >> + >> +nodevice usb >> +nooptions USB_EHCI_BIG_ENDIAN_DESC >> +nooptions USB_DEBUG >> +nooptions USB_HOST_ALIGN >> +nodevice umass >> +nodevice ehci >> + >> +nodevice gpio >> +nodevice gpioled >> > I could've done it myself, but I need usb and GPIO is required for usb, > so that needs to stay. That said, I removed PSEUDOFS (I don't need > /proc) and some of what you mailed, so now it's smaller, but still too > large (1682325). Here are the contents (still on releng/10.0) > # Force the board memory - 64mb > options AR71XX_REALMEM=64*1024*1024 > > makeoptions INLINE_LIMIT=768 > nomakeoptions DEBUG > nomakeoptions ALQ > nooptions INET6 > options NO_SWAPPING > nooptions HWPMC_HOOKS > nodevice hwpmc > nodevice hwpmc_mips24k > nooptions USB_DEBUG > nooptions IEEE80211_DEBUG > nooptions PSEUDOFS > nooptions ATH_DEBUG > nooptions AH_DEBUG > nooption AH_DEBUG_ALQ > nooptions IEEE80211_SUPPORT_MESH > nooptions IEEE80211_SUPPORT_TDMA > nooptions IEEE80211_ALQ # 802.11 ALQ logging support > > # i2c GPIO bus > device gpioiic > device iicbb > device iicbus > device iic > > # ethernet switch device > device etherswitch > > # RTL8366RB support > device rtl8366rb > > # Enable the uboot environment stuff rather then the > # redboot stuff. > options AR71XX_ENV_UBOOT > > # uncompress - to boot natively from flash > device geom_uncompress > options GEOM_UNCOMPRESS > > # Used for the static uboot partition map > device geom_map > > # Boot off of the rootfs, as defined in the geom_map setup. > options ROOTDEVNAME=\"ufs:map/rootfs.uncompress\" > > # We bite the performance overhead for now; the kernel won't > # fit if the mutexes are inlined. > options MUTEX_NOINLINE > options RWLOCK_NOINLINE > options SX_NOINLINE > > # Remove everything we don't need. We need a _really_ small kernel! > nooptions INVARIANTS > nooptions INVARIANT_SUPPORT > nooptions WITNESS > nooptions WITNESS_SKIPSPIN > nooptions DEBUG_REDZONE > nooptions DEBUG_MEMGUARD > nooptions DDB > nooptions KDB > > It doesn't need to be much smaller now, but what made it so large? Why > did it work a year ago with 10.0-CURRENT? Since 10.0-RELEASE is too > large and there are working images with 10.0-CURRENT from August 2013 at > http://www.strugglingcoder.info/pkgs/TP-WN1043ND.factory.bin (it seems > to be actually generated by you), something must have happened then and > later, when CURRENT went up to 11. "More code" happened :-) This clearly is not a good sign. I'll try to spend some time to narrow the source down. We _should_ at least be able to "not-include" that portion. cheers, Hiren