Joshua,
On 11/03/2017 02:11 AM, Joshua Lock wrote: > On the Yocto Project Autobuilder we occasionally see qemu fail to start, > most frequently on Fedora 25, because kvm fails to allocate memory. See: > > https://bugzilla.yoctoproject.org/show_bug.cgi?id=12058 > > This patch introduces a fallback path where if the inital qemu command fails > and kvm is enabled we retry running qemu with the kvm related options > removed from the qemu command line. I will backport once this lands in master. thanks, - armin > Signed-off-by: Joshua Lock <joshua.g.l...@intel.com> > --- > scripts/runqemu | 20 +++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/scripts/runqemu b/scripts/runqemu > index df762709043..b7f8b3c4d55 100755 > --- a/scripts/runqemu > +++ b/scripts/runqemu > @@ -1168,7 +1168,25 @@ class BaseConfig(object): > logger.info('Running %s\n' % cmd) > process = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE) > if process.wait(): > - logger.error("Failed to run qemu: %s", > process.stderr.read().decode()) > + # If starting qemu failed and kvm is enabled we try again, with > the > + # kvm related options removed. This is because we have observed > + # failures where kvm is unable to allocate memory (particularly > on > + # Fedora 25) but where a run withou kvm may be successful. > + if self.kvm_enabled: > + logger.info("Failed to run qemu: %s\nRetrying without > kvm...", > + process.stderr.read().decode()) > + nokvm_cmd = cmd > + nokvm_cmd = nokvm_cmd.replace(' -enable-kvm', '') > + nokvm_cmd = nokvm_cmd.replace(',vhost=on', '') > + logger.info('Running %s\n' % nokvm_cmd) > + process = subprocess.Popen(nokvm_cmd, shell=True, > + stderr=subprocess.PIPE) > + if process.wait(): > + logger.error("Failed to run qemu (with kvm disabled): > %s", > + process.stderr.read().decode()) > + else: > + logger.error("Failed to run qemu: %s", > + process.stderr.read().decode()) > > def cleanup(self): > if self.cleantap: -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core