qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Alexander Graf <agraf@suse.de>, Blue Swirl <blauwirbel@gmail.com>
Cc: "qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [Qemu-ppc] RFC: NVRAM for pseries machine
Date: Wed, 26 Sep 2012 15:03:15 -0500	[thread overview]
Message-ID: <87zk4cv9fg.fsf@codemonkey.ws> (raw)
In-Reply-To: <219EFEC6-657A-48CA-886E-892636C7DCEA@suse.de>

Alexander Graf <agraf@suse.de> writes:

> On 22.09.2012, at 15:31, Blue Swirl <blauwirbel@gmail.com> wrote:
>
>> On Fri, Sep 21, 2012 at 3:08 AM, David Gibson
>> <david@gibson.dropbear.id.au> wrote:
>>> Below is a patch which implements the (PAPR mandated) NVRAM for the
>>> pseries machine.  It raises a couple of generic questions.
>>> 
>>> First, this adds a new "nvram" machine option which is used to give a
>>> block device id to back the NVRAM so it is persistent.  Since some
>>> sort of NVRAM is quite common, it seems this might be useful on other
>>> machines one day, although obviously nothing else implements it yet.
>> 
>> Yes, there have been discussions earlier since loading NVRAM contents
>> from a file would be useful for many architectures too.
>> 
>>> 
>>> Second, if a block device is not specified, it simply allocates a
>>> block of memory to make a non-persistent NVRAM.  Obviously that isn't
>>> really "NV", but it's enough to make many guests happy most of the
>>> time, and doesn't require setting up an image file and drive.  It does
>>> mean a different set of code paths in the driver though, and it will
>>> need special case handling for savevm (not implemented yet).  Is this
>>> the right approach, or should I be creating a dummy block device for a
>>> one-run NVRAM of this kind?  I couldn't see an obvious way to do that,
>>> but maybe I'm missing something.
>> 
>> That was the problem earlier too, it looks like a generic way for all
>> NVRAM/flash devices should be obvious but so far nobody has been able
>> to propose something.
>> 
>> What if there are two devices which could use this, for example CMOS
>> and flash on x86?
>> 
>> This should be extending  -device syntax rather than adding another
>> top level option. Something like
>> -drive foo,file=nvram.qcow2,format=qcow2,id=main_nvram -device
>> spapr-nvram,drive_id=main_nvram
>
> Could we create a simplified syntax for this in addition? Something like
>
>   -device spapr-nvram,file=nvram.raw
>
> which would then automatically spawn a drive for the user. Saving the
> machine state would obviously save the transparently created drive.

We can't ask people to rewrite half of QEMU just to merge a feature.

In this case, what matters is:

0) The device should always be modelled with QOM/qdev

1) If the device is a fundamental part of the machine (i.e. you can't do
   anything useful with out it), then it's configuration should be
   specified as a machine parameter.

2) If !(1), the device should be added with -device

3) Devices deal with backends and only with backends.  We have a syntax
   for specifying backends independently of backends.

If you want a single option to configure a device, that's a problem to
attempt to solve independent of this series.

> But I don't want to force people to have to use -device syntax for the
> average qemu use cases.

Sorry, but that's where we're at today.  -device is part of our user
interface.  It's a management tool only interface and we cannot
replicate every option just because you don't like the syntax.

Regards,

Anthony Liguori

  parent reply	other threads:[~2012-09-26 20:03 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-21  3:08 [Qemu-devel] RFC: NVRAM for pseries machine David Gibson
2012-09-22 13:31 ` [Qemu-devel] [Qemu-ppc] " Blue Swirl
2012-09-22 14:16   ` Alexander Graf
2012-09-22 14:26     ` Blue Swirl
2012-09-24  0:34       ` David Gibson
2012-09-26 20:03     ` Anthony Liguori [this message]
2012-09-26 20:51       ` Alexander Graf
2012-09-29 11:46         ` Blue Swirl
2012-09-29 12:54           ` Alexander Graf
2012-09-29 14:11             ` Blue Swirl
2012-09-29 15:24               ` Alexander Graf
2012-09-24  0:31   ` David Gibson
2012-09-24 10:38     ` Alexander Graf
2012-09-26  0:27       ` David Gibson
2012-09-26  1:03         ` Alexander Graf
2012-09-26  1:18           ` David Gibson
2012-09-26  8:56             ` Alexander Graf
2012-09-26 12:08               ` Thomas Huth
2012-09-24 10:36 ` [Qemu-devel] " Alexander Graf
2012-09-24 12:25   ` [Qemu-devel] [Qemu-ppc] " David Gibson
2012-09-24 13:44     ` Alexander Graf

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=87zk4cv9fg.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=agraf@suse.de \
    --cc=blauwirbel@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).