Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/3] 3 fixes for runqemu and qemurunner.py
@ 2018-07-25  8:34 Robert Yang
  2018-07-25  8:34 ` [PATCH 1/3] qemurunner.py: fix is_alive() to avoid confusing with recycled pid Robert Yang
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Robert Yang @ 2018-07-25  8:34 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit 39c1719a32ed5567e3bf2df5c4f9068d0f5a9400:

  uninative-tarball: Add nativesdk-libnss-nis to resolve glibc symbol issues (2018-07-24 17:03:39 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib rbt/qemu
  http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/qemu

Robert Yang (3):
  qemurunner.py: fix is_alive() to avoid confusing with recycled pid
  runqemu: default qemumips memory to 256M
  runqemu: let qemuparams override previous settings

 meta/lib/oeqa/utils/qemurunner.py |  2 +-
 scripts/runqemu                   | 26 +++++++++++++++++++-------
 2 files changed, 20 insertions(+), 8 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] qemurunner.py: fix is_alive() to avoid confusing with recycled pid
  2018-07-25  8:34 [PATCH 0/3] 3 fixes for runqemu and qemurunner.py Robert Yang
@ 2018-07-25  8:34 ` Robert Yang
  2018-07-25  8:34 ` [PATCH 2/3] runqemu: default qemumips memory to 256M Robert Yang
  2018-07-25  8:34 ` [PATCH 3/3] runqemu: let qemuparams override previous settings Robert Yang
  2 siblings, 0 replies; 5+ messages in thread
From: Robert Yang @ 2018-07-25  8:34 UTC (permalink / raw)
  To: openembedded-core

[YOCTO #12493]

Fixed:
- qemu started with pid 10000
- qemu exited unexpectedly
- The pid 10000 is re-used by another different process.

The is_alive() returned True in such a case because both qemu_pidfile and
/proc/10000 exist, but it's another process, this patch fixed the problem.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 meta/lib/oeqa/utils/qemurunner.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index c962602..864fc71 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -400,7 +400,7 @@ class QemuRunner:
         return False
 
     def is_alive(self):
-        if not self.runqemu:
+        if not self.runqemu or self.runqemu.poll() is not None:
             return False
         if os.path.isfile(self.qemu_pidfile):
             f = open(self.qemu_pidfile, 'r')
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] runqemu: default qemumips memory to 256M
  2018-07-25  8:34 [PATCH 0/3] 3 fixes for runqemu and qemurunner.py Robert Yang
  2018-07-25  8:34 ` [PATCH 1/3] qemurunner.py: fix is_alive() to avoid confusing with recycled pid Robert Yang
@ 2018-07-25  8:34 ` Robert Yang
  2018-07-25  8:53   ` Robert Yang
  2018-07-25  8:34 ` [PATCH 3/3] runqemu: let qemuparams override previous settings Robert Yang
  2 siblings, 1 reply; 5+ messages in thread
From: Robert Yang @ 2018-07-25  8:34 UTC (permalink / raw)
  To: openembedded-core

The qemumips or qemumips64 can't be boot with 512M.

*Fixed when no QB_MEM is set:
 - runqemu qemumips nographic core-image-minimal
[    0.000000] Call Trace:
[    0.000000] [<8011c010>] clear_page+0x0/0x128
[    0.000000] [<8022b818>] get_page_from_freelist+0xa1c/0xb48
[    0.000000] [<8022c00c>] __alloc_pages_nodemask+0xd8/0xf0c
[    0.000000] [<8022ce58>] __get_free_pages+0x18/0x60
[    0.000000] [<80118674>] setup_zero_pages+0x1c/0x98
[    0.000000] [<80bd23e4>] mem_init+0x44/0x54
[    0.000000] [<80bca964>] start_kernel+0x20c/0x4bc
[    0.000000] [<80920090>] kernel_entry+0x0/0x40
[    0.000000] Code: 00000000  00000000  00000000 <34860f80> cc9e0000  cc9e0010  cc9e0020  cc9e0030  cc9e0040
[    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!

[YOCTO #11521]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 scripts/runqemu | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 73d7d58..7a13e5d 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -665,8 +665,13 @@ class BaseConfig(object):
         if s:
             self.set('QB_MEM', '-m %s' % s.group(1))
         elif not self.get('QB_MEM'):
-            logger.info('QB_MEM is not set, use 512M by default')
-            self.set('QB_MEM', '-m 512')
+            mach = self.get('MACHINE')
+            if mach.startswith('qemumips'):
+                logger.info('QB_MEM is not set, use 256M by default')
+                self.set('QB_MEM', '-m 256')
+            else:
+                logger.info('QB_MEM is not set, use 512M by default')
+                self.set('QB_MEM', '-m 512')
 
         mach = self.get('MACHINE')
         if not mach.startswith('qemumips'):
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] runqemu: let qemuparams override previous settings
  2018-07-25  8:34 [PATCH 0/3] 3 fixes for runqemu and qemurunner.py Robert Yang
  2018-07-25  8:34 ` [PATCH 1/3] qemurunner.py: fix is_alive() to avoid confusing with recycled pid Robert Yang
  2018-07-25  8:34 ` [PATCH 2/3] runqemu: default qemumips memory to 256M Robert Yang
@ 2018-07-25  8:34 ` Robert Yang
  2 siblings, 0 replies; 5+ messages in thread
From: Robert Yang @ 2018-07-25  8:34 UTC (permalink / raw)
  To: openembedded-core

Fixed:
$ runqemu qemux86-64 qemuparams="-cpu coreduo"
The default cpu is core2duo, but coreduo should be used here.

Append qemuparams to the last can fix the problem.

[YOCTO #11773]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 scripts/runqemu | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 7a13e5d..6b4078f 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -188,6 +188,7 @@ class BaseConfig(object):
 
         self.qemu_opt = ''
         self.qemu_opt_script = ''
+        self.qemuparams = ''
         self.clean_nfs_dir = False
         self.nfs_server = ''
         self.rootfs = ''
@@ -451,7 +452,7 @@ class BaseConfig(object):
             elif arg.startswith('biosfilename='):
                 self.qemu_opt_script += ' -bios %s' % arg[len('biosfilename='):]
             elif arg.startswith('qemuparams='):
-                self.qemu_opt_script += ' %s' % arg[len('qemuparams='):]
+                self.qemuparams = ' %s' % arg[len('qemuparams='):]
             elif arg.startswith('bootparams='):
                 self.bootparams = arg[len('bootparams='):]
             elif os.path.exists(arg) or (re.search(':', arg) and re.search('/', arg)):
@@ -661,10 +662,12 @@ class BaseConfig(object):
             raise RunQemuError("Invalid custombiosdir: %s" % self.custombiosdir)
 
     def check_mem(self):
-        s = re.search('-m +([0-9]+)', self.qemu_opt_script)
-        if s:
-            self.set('QB_MEM', '-m %s' % s.group(1))
-        elif not self.get('QB_MEM'):
+        for opt in (self.qemu_opt_script, self.qemuparams):
+            s = re.search('-m +([0-9]+)', opt)
+            if s:
+                self.set('QB_MEM', '-m %s' % s.group(1))
+
+        if not self.get('QB_MEM'):
             mach = self.get('MACHINE')
             if mach.startswith('qemumips'):
                 logger.info('QB_MEM is not set, use 256M by default')
@@ -1166,6 +1169,10 @@ class BaseConfig(object):
 
         self.qemu_opt += ' ' + self.qemu_opt_script
 
+        # Append qemuparams to override previous settings
+        if self.qemuparams:
+            self.qemu_opt += ' ' + self.qemuparams
+
         if self.snapshot:
             self.qemu_opt += " -snapshot"
 
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] runqemu: default qemumips memory to 256M
  2018-07-25  8:34 ` [PATCH 2/3] runqemu: default qemumips memory to 256M Robert Yang
@ 2018-07-25  8:53   ` Robert Yang
  0 siblings, 0 replies; 5+ messages in thread
From: Robert Yang @ 2018-07-25  8:53 UTC (permalink / raw)
  To: openembedded-core

Sorry, please ignore this one, it had been fixed by:

commit c68e4c6e3eb612bb7afd9d7f1e9a6dc295d44346
Author: He Zhe <zhe.he@windriver.com>
Date:   Sun Jul 8 20:14:43 2018 -0700

     scripts/runqemu: fix qemumips qemumips64 memory detection kernel panic


I removed it from repo.

// Robert

On 07/25/2018 04:34 PM, Robert Yang wrote:
> The qemumips or qemumips64 can't be boot with 512M.
> 
> *Fixed when no QB_MEM is set:
>   - runqemu qemumips nographic core-image-minimal
> [    0.000000] Call Trace:
> [    0.000000] [<8011c010>] clear_page+0x0/0x128
> [    0.000000] [<8022b818>] get_page_from_freelist+0xa1c/0xb48
> [    0.000000] [<8022c00c>] __alloc_pages_nodemask+0xd8/0xf0c
> [    0.000000] [<8022ce58>] __get_free_pages+0x18/0x60
> [    0.000000] [<80118674>] setup_zero_pages+0x1c/0x98
> [    0.000000] [<80bd23e4>] mem_init+0x44/0x54
> [    0.000000] [<80bca964>] start_kernel+0x20c/0x4bc
> [    0.000000] [<80920090>] kernel_entry+0x0/0x40
> [    0.000000] Code: 00000000  00000000  00000000 <34860f80> cc9e0000  cc9e0010  cc9e0020  cc9e0030  cc9e0040
> [    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!
> 
> [YOCTO #11521]
> 
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>   scripts/runqemu | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/runqemu b/scripts/runqemu
> index 73d7d58..7a13e5d 100755
> --- a/scripts/runqemu
> +++ b/scripts/runqemu
> @@ -665,8 +665,13 @@ class BaseConfig(object):
>           if s:
>               self.set('QB_MEM', '-m %s' % s.group(1))
>           elif not self.get('QB_MEM'):
> -            logger.info('QB_MEM is not set, use 512M by default')
> -            self.set('QB_MEM', '-m 512')
> +            mach = self.get('MACHINE')
> +            if mach.startswith('qemumips'):
> +                logger.info('QB_MEM is not set, use 256M by default')
> +                self.set('QB_MEM', '-m 256')
> +            else:
> +                logger.info('QB_MEM is not set, use 512M by default')
> +                self.set('QB_MEM', '-m 512')
>   
>           mach = self.get('MACHINE')
>           if not mach.startswith('qemumips'):
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-07-25  8:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-25  8:34 [PATCH 0/3] 3 fixes for runqemu and qemurunner.py Robert Yang
2018-07-25  8:34 ` [PATCH 1/3] qemurunner.py: fix is_alive() to avoid confusing with recycled pid Robert Yang
2018-07-25  8:34 ` [PATCH 2/3] runqemu: default qemumips memory to 256M Robert Yang
2018-07-25  8:53   ` Robert Yang
2018-07-25  8:34 ` [PATCH 3/3] runqemu: let qemuparams override previous settings Robert Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox