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
next prev 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 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.