qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org, "Bahadir Balban" <bbalban@b-labs.com>,
	"Dawid Ciężarkiewicz" <dawidc@b-labs.com>,
	"Amit Mahajan" <amit.mahajan@b-labs.com>,
	quintela@redhat.com
Subject: [Qemu-devel] Re: [PATCH v2 1/2] hw/arm_sysctl.c: Add the Versatile Express system registers
Date: Wed, 23 Mar 2011 09:54:04 +0100	[thread overview]
Message-ID: <4D89B52C.9050501@redhat.com> (raw)
In-Reply-To: <AANLkTin=SR67bDT-4wj_4+aBWRo3+d1Oi1mfxBn=hv1s@mail.gmail.com>

On 03/22/2011 09:32 PM, Peter Maydell wrote:
>> >  Just to make things more complicated, this has been "deprecated"O:-)
>
> It has? Your examples below still use it...

The case in which the "subsection needed" function returns true should 
be rare, so the version number should rarely need to be bumped.  In this 
sense, using _V is discouraged/deprecated.

In fact, some people would prefer the version number not to be bumped 
anymore, and subsections to be always used instead.  So far, every time 
the above argument was brought up in the list, people always found a way 
to define the "subsection needed" function so that it didn't return 
true, and the decision on deprecation of _V was postponed.

Subsections make it easier for downstream versions to backport features 
arbitrarily.  Suppose you release QEMU with a device at version 9.  The 
next version adds feature A as version 10 and feature B as version 11. 
For a downstream vendor, backporting just feature B is difficult because 
they would have three choices:

- the good, but also the hardest: bump to version 11, and save some 
dummy (but valid) value for fields related to feature A.  This 
introduces undesired differences from upstream, and may be difficult.

- the bad: bump to version 10, and have a migration format that is 
incompatible with upstream version 10.

- the ugly: keep version 9, and convert the migration data for feature B 
to a subsection.  This introduces differences from upstream and makes 
the migration format incompatible with upstream version, but avoids that 
the same version number means different things in different distributions.

So, those people say that subsections are a bit more friendly to 
downstream vendors.  So they suggest that upstream should use the third 
option to begin with, and even use subsections even if the "subsection 
needed" function returns true.  This makes the backport easier and more 
straightforward.  The argument is good but, as I said, so far there has 
never been an actual need to apply it.

So, Juan's mail documents what QEMU is doing right now accurately, but 
there isn't 100% agreement that it should be that way in the future. 
Just note that you are encouraged to use subsections (and thus devise a 
way to make the subsection optional) whenever possible and whenever it 
makes sense to help such downstream distributors.

Paolo

  reply	other threads:[~2011-03-23  8:54 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-04 20:34 [Qemu-devel] [PATCH v2 0/2] ARM: Add Versatile Express board model Peter Maydell
2011-03-04 20:34 ` [Qemu-devel] [PATCH v2 1/2] hw/arm_sysctl.c: Add the Versatile Express system registers Peter Maydell
2011-03-05 12:11   ` [Qemu-devel] " Paolo Bonzini
2011-03-05 12:34     ` Peter Maydell
2011-03-05 14:59       ` Paolo Bonzini
2011-03-05 16:50         ` Peter Maydell
2011-03-05 17:04           ` Paolo Bonzini
2011-03-07 11:45             ` Peter Maydell
2011-03-07 12:09               ` Jan Kiszka
2011-03-22 19:05           ` Peter Maydell
2011-03-22 19:53           ` Juan Quintela
2011-03-22 20:32             ` Peter Maydell
2011-03-23  8:54               ` Paolo Bonzini [this message]
2011-03-23  9:44               ` Juan Quintela
2011-03-04 20:34 ` [Qemu-devel] [PATCH v2 2/2] hw/vexpress.c: Add model of ARM Versatile Express board Peter Maydell

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=4D89B52C.9050501@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=amit.mahajan@b-labs.com \
    --cc=bbalban@b-labs.com \
    --cc=dawidc@b-labs.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /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).