[oe-commits] [openembedded-core] 14/20: scripts/runqemu: fix qemumips qemumips64 memory detection kernel panic

git at git.openembedded.org git at git.openembedded.org
Mon Jul 9 22:02:21 UTC 2018


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 1112bdb96c34f29525e7a69ad40d39accb0303b6
Author: He Zhe <zhe.he at windriver.com>
AuthorDate: Sun Jul 8 20:14:43 2018 -0700

    scripts/runqemu: fix qemumips qemumips64 memory detection kernel panic
    
    $ runqemu qemumips64 core-image-minimal nographic qemuparams="-m 512"
    ...
    [    0.000000] Call Trace:
    [    0.000000] [<ffffffff801268c0>] clear_page+0x0/0x128
    [    0.000000] [<ffffffff80238158>] get_page_from_freelist+0xab8/0xc00
    [    0.000000] [<ffffffff80238964>] __alloc_pages_nodemask+0xdc/0xf68
    [    0.000000] [<ffffffff80239808>] __get_free_pages+0x18/0x70
    [    0.000000] [<ffffffff80122a4c>] setup_zero_pages+0x1c/0xb8
    [    0.000000] [<ffffffff80c7c998>] mem_init+0x54/0xa0
    [    0.000000] [<ffffffff80c74904>] start_kernel+0x204/0x4d8
    [    0.000000] [<ffffffff8091dfb0>] kernel_entry+0x0/0x40
    [    0.000000] Code: 02002025  1000f8d9  8e634d7c <34860f80> cc9e0000
    cc9e0020  cc9e0040  cc9e0060  cc9e0080
    [    0.000000]
    [    0.000000] ---[ end trace 0000000000000000 ]---
    [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
    [    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task!
    ...
    
    OE uses qemumips to simulate a Malta board by default.
    
    As upstream qemu introduced:
    https://git.qemu.org/?p=qemu.git;a=commit;h=94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b
    
    The Malta board can support up to 2GiB of RAM which should
    be able to boot a Linux kernel built with CONFIG_HIGHMEM
    enabled and passing "-m 2048" to QEMU and appending the
    following kernel parameters:
    ...
    mem=256M at 0x0 mem=256M at 0x90000000 mem=1536M at 0x20000000
    ...
    
    But the following commit in kernel broke above mem=X at Y setting
    which added the memory as reserved memory area.
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
    ...
    commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
    Author: Marcin Nowakowski <marcin.nowakowski at imgtec.com>
    Date:   Wed Nov 23 14:43:49 2016 +0100
    
        MIPS: fix mem=X at Y commandline processing
    ...
    
    So remove `mem=*' to disable user-defined physical RAM map
    which let kernel itself caculates memory ranges.
    
    Author: Hongxu Jia <hongxu.jia at windriver.com>
    [ Merge the two fixes for qemumips32 and qemumips64 into one patch,
      and make it support all mips cases ]
    Signed-off-by: He Zhe <zhe.he at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/runqemu | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index de42d0f..73d7d58 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -668,7 +668,10 @@ class BaseConfig(object):
             logger.info('QB_MEM is not set, use 512M by default')
             self.set('QB_MEM', '-m 512')
 
-        self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+        mach = self.get('MACHINE')
+        if not mach.startswith('qemumips'):
+            self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+
         self.qemu_opt_script += ' %s' % self.get('QB_MEM')
 
     def check_tcpserial(self):

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list