Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Jiaxun Yang <jiaxun.yang@flygoat.com>
To: "Xu, Yanfei" <yanfei.xu@windriver.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: BUG: mips: errors when compiling kernel with a large initramfs
Date: Tue, 7 Apr 2020 20:25:19 +0800	[thread overview]
Message-ID: <20200407202519.4d384f3b@flygoat-x1e> (raw)
In-Reply-To: <0c1e4eda-53c6-ea8b-c27b-eabc8569cc74@windriver.com>

On Tue, 7 Apr 2020 17:58:23 +0800
"Xu, Yanfei" <yanfei.xu@windriver.com> wrote:

> Hi,
> 
> 
> It fails to compile mips kernel with large initramfs (at link time).
> 
> kernel version: 5.6.0
> 
> 
> Steps to reproduce:
> 
> 1. git clone mainline kernel
> 
> 2. set ARCH=mips and CROSS_COMPILE=mips-linux-gnu-
> 
> 3. make defconfig
> 
> 4.enable initramfs support and set the path about initramfs source
> file
> 
> 5.make -j24
> 
> [KEY] when your initramfs files is too large, and cause 
> usr/initramfs_data.cpio.gz
> 
> compiled is larger than 225M, you will get the following error. BTW,
> x86 doesn't
> 
> have this issue that I have tested.
> 
> ------------------------------error 
> messages-----------------------------------------
> 
>    CHK     include/generated/compile.h
>    LD      vmlinux.o
>    MODPOST vmlinux.o
>    MODINFO modules.builtin.modinfo
>    GEN     modules.builtin
>    LD      .tmp_vmlinux.kallsyms1
> kernel/configs.o: In function `ikconfig_cleanup':
> /home/wrsadmin/work/linux/kernel/linux-master/kernel/configs.c:72:(.exit.text+0x8): 
> relocation truncated to fit: R_MIPS_26 against `remove_proc_entry'
> fs/binfmt_script.o: In function `exit_script_binfmt':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/binfmt_script.c:165:(.exit.text+0x4): 
> relocation truncated to fit: R_MIPS_26 against `unregister_binfmt'
> fs/binfmt_elf.o: In function `exit_elf_binfmt':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/binfmt_elf.c:2393:(.exit.text+0x4): 
> relocation truncated to fit: R_MIPS_26 against `unregister_binfmt'
> fs/mbcache.o: In function `mbcache_exit':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/mbcache.c:429:(.exit.text+0x4): 
> relocation truncated to fit: R_MIPS_26 against `kmem_cache_destroy'
> fs/nfs_common/grace.o: In function `exit_grace':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/nfs_common/grace.c:133:(.exit.text+0x4): 
> relocation truncated to fit: R_MIPS_26 against
> `unregister_pernet_subsys' fs/ext4/super.o: In function
> `ext4_destroy_lazyinit_thread':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/ext4/super.c:3456:(.exit.text+0x24):
> relocation truncated to fit: R_MIPS_26 against `kthread_stop'
> fs/ext4/super.o: In function `unregister_as_ext2':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/ext4/super.c:6126:(.exit.text+0x30):
> relocation truncated to fit: R_MIPS_26 against
> `unregister_filesystem' fs/ext4/super.o: In function
> `unregister_as_ext3':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/ext4/super.c:6155:(.exit.text+0x3c):
> relocation truncated to fit: R_MIPS_26 against
> `unregister_filesystem' fs/ext4/super.o: In function `ext4_exit_fs':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/ext4/super.c:6261:(.exit.text+0x48):
> relocation truncated to fit: R_MIPS_26 against
> `unregister_filesystem' fs/ext4/super.o: In function
> `destroy_inodecache':
> /home/wrsadmin/work/linux/kernel/linux-master/fs/ext4/super.c:1218:(.exit.text+0x50):
> relocation truncated to fit: R_MIPS_26 against `rcu_barrier'
> /home/wrsadmin/work/linux/kernel/linux-master/fs/ext4/super.c:1219:(.exit.text+0x5c):
> additional relocation overflows omitted from the output
> Makefile:1086: recipe for target 'vmlinux' failed make[1]: ***
> [vmlinux] Error 1 Makefile:1058: recipe for target
> 'autoksyms_recursive' failed make: *** [autoksyms_recursive] Error 2
> 
> 
> Any comment will be appreciated.

Actually I think that won't work even if you managed to workaround
reloc issue.

MIPS have limited LOW MEM range accessible via KSEG0 (512M, but can be
less if your system place some MMIO register in that range). Kernel
image will be placed here together with built-in initramfs, and a
lot of memory like Page Table can only be allocated from here.

Such a huge initrd will occupy the whole LOW MEM range leaving no space
for others.

It seems like your system is 32bit, we have no solution for that
hardware limitaion. For 64bit system you may try to move your kernel
into XKPHYS instead of KSEG0.

Thanks

--
Jiaxun Yang

> 
> Thanks,
> 
> Yanfei
> 


  parent reply	other threads:[~2020-04-07 12:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-07  9:58 BUG: mips: errors when compiling kernel with a large initramfs Xu, Yanfei
2020-04-07 10:21 ` YunQiang Su
2020-04-07 12:54   ` Xu, Yanfei
2020-04-07 12:25 ` Jiaxun Yang [this message]
2020-04-07 13:24   ` Xu, Yanfei

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200407202519.4d384f3b@flygoat-x1e \
    --to=jiaxun.yang@flygoat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=yanfei.xu@windriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox