All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Ohly <patrick.ohly@intel.com>
To: Robert Yang <liezhi.yang@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 4/7] runqemu: do not rely on grepping images
Date: Thu, 13 Apr 2017 11:13:32 +0200	[thread overview]
Message-ID: <1492074812.27604.50.camel@intel.com> (raw)
In-Reply-To: <9b2b9be1-26a3-0002-2ff0-8dfd91abaec8@windriver.com>

On Thu, 2017-04-13 at 16:59 +0800, Robert Yang wrote:
> Hi Patrick,
> 
> On 04/13/2017 04:46 PM, Patrick Ohly wrote:
> > On Tue, 2017-04-11 at 02:21 -0700, Robert Yang wrote:
> >> Fixed when the image is large and not enough memory:
> >>   grep: memory exhausted
> >>   Aborted
> >>
> >> [YOCTO #11073]
> >>
> >> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> >> ---
> >>  meta/classes/qemuboot.bbclass |  3 +++
> >>  scripts/runqemu               | 19 +++++++++++--------
> >>  2 files changed, 14 insertions(+), 8 deletions(-)
> >>
> >> diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
> >> index 3ca97cad4c..2870388dfb 100644
> >> --- a/meta/classes/qemuboot.bbclass
> >> +++ b/meta/classes/qemuboot.bbclass
> >> @@ -64,6 +64,9 @@ QB_DEFAULT_FSTYPE ?= "ext4"
> >>  QB_OPT_APPEND ?= "-show-cursor"
> >>  QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
> >>
> >> +# This should be kept align with ROOT_VM
> >> +QB_DRIVE_TYPE ?= "/dev/sd"
> >
> > Now that I am faced with the problem of selecting virtio I'm starting to
> > wonder how to do that.
> >
> > Our refkit image doesn't expect the image on a particular drive, using
> > PARTUUID instead to find it. But when running under qemu, it would be
> > nice to use virtio for performance reasons... if the kernel supports it.
> > But that's not something that the image recipe or even the distro should
> > make assumptions about.
> >
> > It seems safer to let the machine configuration which chooses the kernel
> > also set QB_DRIVE_TYPE, but with ?= so that it can still be changed
> > elsewhere. In that case, we would need:
> >
> > qemuboot.bbclass: QB_DRIVE_TYPE ??= "/dev/sd"
> > qemuboot-intel.inc (from meta-intel): QB_DRIVE_TYPE ?= "/dev/vd"
> > distro, local or image (optional): QB_DRIVE_TYPE = "/dev/..."
> 
> The "??=" is not needed, just "?=" in qemuboot.bbclass is OK, we have
> "?=" in other bbclass, too, and they can be overrided as expected.

Other classes might depend on a different order of setting values.

> For example:
> 
> qemuboot-intel.inc (from meta-intel): QB_DRIVE_TYPE ?= "/dev/vd"

But you right, that works, because although that default gets set first,
it does not get overwritten by the latter default from qemuboot.bbclass.

I thought defaults worked the same way as normal assignments, i.e.
  foo ?= "a"
  foo ?= "b"
would result in foo == "b". That's not the case.

> >> +                elif self.get('QB_DRIVE_TYPE'):
> >> +                    drive_type = self.get('QB_DRIVE_TYPE')
> >> +                    if drive_type.startswith("/dev/sd"):
> >>                          logger.info('Using scsi drive')
> >>                          vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \
> >>                                         % (self.rootfs, rootfs_format)
> >> -                    elif subprocess.call(cmd2, shell=True) == 0:
> >> +                    elif drive_type.startswith("/dev/hd"):
> >>                          logger.info('Using ide drive')
> >>                          vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format)
> >>                      else:
> >> -                        logger.warn("Can't detect drive type %s" % self.rootfs)
> >> -                        logger.warn('Trying to use virtio block drive')
> >> -                        vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
> >> +                        logger.warn("Unknown QB_DRIVE_TYPE: %s" % drive_type)
> >> +
> >> +                if not vm_drive:
> >> +                    logger.warn("Failed to figure out drive type, consider define or fix QB_DRIVE_TYPE")
> >> +                    logger.warn('Trying to use virtio block drive')
> >> +                    vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
> >
> > Here "/dev/sd" should be treated as an explicit selection of virtio,
> > without triggering warnings.
> 
> Did you mean /dev/vd ? If yes, I'm fine with that.

Yes.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.





  reply	other threads:[~2017-04-13  9:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-11  9:21 [PATCH 0/7 V3] fixes for runqemu Robert Yang
2017-04-11  9:21 ` [PATCH 1/7] runqemu: support env vars explicitly Robert Yang
2017-04-11  9:21 ` [PATCH 2/7] runqemu: use self.rootfs to replace self.nfs_dir Robert Yang
2017-04-11  9:21 ` [PATCH 3/7] runqemu: run without arguments Robert Yang
2017-04-11  9:21 ` [PATCH 4/7] runqemu: do not rely on grepping images Robert Yang
2017-04-13  8:46   ` Patrick Ohly
2017-04-13  8:59     ` Robert Yang
2017-04-13  9:13       ` Patrick Ohly [this message]
2017-04-13  8:59     ` Robert Yang
2017-04-11  9:21 ` [PATCH 5/7] selftest/wic.py: vda -> sda Robert Yang
2017-04-11  9:21 ` [PATCH 6/7] wic-image-minimal.wks: " Robert Yang
2017-04-11  9:21 ` [PATCH 7/7] qemux86-directdisk.wks: " Robert Yang

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=1492074812.27604.50.camel@intel.com \
    --to=patrick.ohly@intel.com \
    --cc=liezhi.yang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.