* [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