On Tue, Jun 25, 2019 at 03:56:51PM +0100, Dr. David Alan Gilbert wrote: > * Eduardo Habkost (ehabk...@redhat.com) wrote: > > On Tue, Jun 25, 2019 at 03:32:16PM +0100, Dr. David Alan Gilbert wrote: > > > * Eduardo Habkost (ehabk...@redhat.com) wrote: > > > > On Tue, Jun 25, 2019 at 10:32:01AM +0100, Dr. David Alan Gilbert wrote: > > > > > * Eduardo Habkost (ehabk...@redhat.com) wrote: > > > > > > Base code for versioned CPU models. This will register a "-4.1" > > > > > > version of all existing CPU models, and make the unversioned CPU > > > > > > models be an alias for the -4.1 versions on the pc-*-4.1 machine > > > > > > types. > > > > > > > > > > > > On older machine types, the unversioned CPU models will keep the > > > > > > old behavior. This way, management software can use old machine > > > > > > types while resolving aliases if compatibility with older QEMU > > > > > > versions is required. > > > > > > > > > > > > Using "-machine none", the unversioned CPU models will be aliases > > > > > > to the latest CPU model version. > > > > > > > > > > > > Includes a test case to ensure that: > > > > > > old machine types won't report any alias to versioned CPU models; > > > > > > "pc-*-4.1" will return aliases to -4.1 CPU models; > > > > > > and "-machine none" will report aliases to some versioned CPU model. > > > > > > > > > > > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > > > > > > > > > > What happens when we add the next new CPU model? So say in 4.2 we add > > > > > a new CPU, does that default to being newcpu-4.2 ? > > > > > > > > We can choose between providing old versions of the CPU model > > > > retroactively ("NewModel-4.1" and "NewModel-4.2"), or providing > > > > only "NewModel-4.2". > > > > > > > > The question is: if we provide only "NewModel-4.2", what should > > > > be the behavior of "-machine pc-i440fx-4.1 -cpu NewModel"? > > > > > > Perhaps the existing CPUs and the first instance of a new CPU > > > we should use something non-numeric, e.g. 'orig' rather than 4.1; > > > we only go numeric when we cause a divergence. > > > > What would be the advantage of a non-numeric version identifier? > > I believe it would be more confusing to have (e.g.) > > ["NewModel-orig", "NewModel-4.3"] in QEMU 4.3 instead of > > ["NewModel-4.2", "NewModel-4.3"]. > > To my mind it answers your question: > > > > The question is: if we provide only "NewModel-4.2", what should > > > > be the behavior of "-machine pc-i440fx-4.1 -cpu NewModel"? > > NewModel-orig doesn't look weird in pc-i440fx-4.1
It doesn't look weird in the surface, but it doesn't change the fact that "NewModel-orig" is the version of NewModel that was shipped in in QEMU 4.2. Why would we want to hide that fact? What's the advantage of: "-machine pc-i440fx-4.1 -cpu NewModel" will use "NewModel-orig", which is the version of NewModel added in QEMU 4.2. in relation to: "-machine pc-i440fx-4.1 -cpu NewModel" will use "NewModel-4.2", which is the version of NewModel added in QEMU 4.2. -- Eduardo