[#5286] NFS root fs mount fails with CONFIG_CC_OPTIMIZE_FOR_SIZE

Document created by Aaronwu Employee on Sep 4, 2013
Version 1Show Document
  • View in full screen mode

[#5286] NFS root fs mount fails with CONFIG_CC_OPTIMIZE_FOR_SIZE

Submitted By: Peter Meerwald

Open Date

2009-06-21 14:42:48     Close Date

2009-06-28 17:31:49

Priority:

Medium     Assignee:

Jie Zhang

Status:

Closed     Fixed In Release:

N/A

Found In Release:

snaps     Release:

Category:

Kernel Functions     Board:

Custom

Processor:

BF537     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

    Toolchain version or rev.:

svn rev. 6816

App binary format:

N/A     

Summary: NFS root fs mount fails with CONFIG_CC_OPTIMIZE_FOR_SIZE

Details:

 

kernel fails to mount NFS root filesystem when compiled with CONFIG_CC_OPTIMIZE_FOR_SIZE

 

no kernel message is shown, last kernel output is

dma_alloc_init: dma_page @ 0x00172000 - 256 pages at 0x00f00000

 

I've attached a packet trace summary to show where the kernel hangs

 

kernel is SVN rev. 6816

 

my kernel vmImage size (LZMA) difference is 633578 vs. 702857 bytes for latest toolchain

 

this happens reproducibly for all of these toolchains:

 

08r1.5-14

 

/opt/uClinux-stable/bfin-uclinux/bin/bfin-uclinux-gcc -v

Using built-in specs.

Target: bfin-uclinux

Configured with: /usr/src/packages/BUILD/blackfin-toolchain-08r1.5/../gcc-4.1/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=bfin-uclinux --prefix=/opt/uClinux/bfin-uclinux --enable-threads=posix --with-sysroot=/opt/uClinux/bfin-uclinux/bfin-uclinux/runtime --disable-libstdcxx-pch --disable-symvers --disable-libssp --disable-libffi --enable-clocale=generic --enable-version-specific-runtime-libs --enable-__cxa_atexit

Thread model: posix

gcc version 4.1.2 (ADI svn)

 

SVN (retrieved March)

 

/opt/uClinux-svn/bfin-uclinux/bin/bfin-uclinux-gcc -v

Using built-in specs.

Target: bfin-uclinux

Configured with: /usr/local/src/blackfin/git/toolchain/gcc-4.1/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=bfin-uclinux --prefix=/usr/local/src/blackfin/toolchains/20090307/bfin-uclinux --enable-threads=posix --with-sysroot=/usr/local/src/blackfin/toolchains/20090307/bfin-uclinux/bfin-uclinux/runtime --disable-libstdcxx-pch --disable-symvers --disable-libssp --disable-libffi --enable-clocale=generic --enable-version-specific-runtime-libs --enable-__cxa_atexit --with-bugurl=URL:http://blackfin.uclinux.org/gf/project/toolchain/tracker --with-pkgversion=ADI-trunk/git-76eefef

Thread model: posix

gcc version 4.1.2 (ADI svn)

 

SVN (retrieved June, today)

 

/opt/uClinux-svn-new/bfin-uclinux/bin/bfin-uclinux-gcc -v

Using built-in specs.

Target: bfin-uclinux

Configured with: /usr/local/src/blackfin/git/toolchain/gcc-4.1/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=bfin-uclinux --prefix=/usr/local/src/blackfin/toolchains/20090620/bfin-uclinux --enable-threads=posix --with-sysroot=/usr/local/src/blackfin/toolchains/20090620/bfin-uclinux/bfin-uclinux/runtime --disable-libstdcxx-pch --disable-symvers --disable-libssp --disable-libffi --enable-clocale=generic --enable-version-specific-runtime-libs --enable-__cxa_atexit --with-bugurl=URL:http://blackfin.uclinux.org/gf/project/toolchain/tracker --with-pkgversion=ADI-trunk/git-de2c61e

Thread model: posix

gcc version 4.1.2 (ADI svn)

 

Follow-ups

 

--- Peter Meerwald                                           2009-06-21 14:43:33

any idea?

known issue?

 

--- Robin Getz                                               2009-06-21 22:05:03

Peter:

 

Do you have a toolchain that it does work with? It might be easier to bisect

then.

 

-Robin

 

--- Peter Meerwald                                           2009-06-27 15:47:31

Robin, no, all toolchains I have produce the issue; with older toolchain (i.e.

stable 2008R1.5)

 

LZMA compression is not available with older toolchain, so it does not make

sense to aim for kernel of small size

 

any idea how to narrow down on this one?

 

--- Robin Getz                                               2009-06-27 19:14:10

Peter:

 

If you don't optimize for size - it works well? I'll start poking at things.

 

-Robin

 

--- Peter Meerwald                                           2009-06-27 19:27:16

Robin, without size optimization the kernel mount the NFS root filesystem and

boots OK

 

with size optimization the kernel hangs without message while mounting the NFS

root filesystem

 

100% reproducible here; just flipping the CONFIG_CC_OPTIMIZE_FOR_SIZE option,

rebuilding the kernel

 

--- Robin Getz                                               2009-06-27 20:17:14

Yeah, I can get it to fail too - no nfsmount needed - with 4.3 - Just turn on

optimize for size - and something hangs, until the watchdog kicks off...

 

Shouldn't be too hard to figure out.

 

Thanks for reporting.

 

--- Jie Zhang                                                2009-06-28 09:14:55

I'll soon commit a fix.

 

--- Jie Zhang                                                2009-06-28 09:39:50

Should be fixed now on linux kernel trunk r6861 and 2009R1 branch r6862. Please

verify.

 

--- Robin Getz                                               2009-06-28 17:31:49

That fixes it for me too.

 

Closing.

 

Peter - if it doesn't fix it for you - let us know, and we can re-open.

 

-Robin

 

--- Peter Meerwald                                           2009-06-29 08:32:15

Robin, I can confirm that the fix is working; mounting rootfs over NFS works

with CONFIG_CC_OPTIMIZE_FOR_SIZE

 

thx, p.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

packet_dump.txt    text/plain    2489    Peter Meerwald

Attachments

Outcomes