When querying '-cpu help' there is no presentation of fact that a
CPU may be deprecated. The user just has to try it and see if they
get a depecation message at runtime. The QMP command for querying
CPUs report a deprecation bool flag, but not the explanatory
reason.
The Icelake-Client CPU (removed in 6df39f5e583ca0f67bd934d1327f9ead2e3bd49c)
handled this by modifying the '.notes' section to add the word
'deprecated':
{
.version = 2,
.note = "no TSX, deprecated",
.alias = "Icelake-Client-noTSX",
.props = (PropValue[]) {
{ "hle", "off" },
{ "rtm", "off" },
{ /* end of list */ }
},
},
This relies on the person deprecating the CPU to remember to do this,
and is redundant when this info is already expressed in the
'.deprecation_note' field.
This short series suggests just modifying the '-cpu help'
formatter so that it displays the full deprecation message
eg
$ qemu-system-x86_64 -cpu help:
Available CPUs:
x86 486 (alias configured by machine type) (deprecated: use
at least 'Nehalem' / 'Opteron_G4', or 'host' / 'max')
I wonder if this is too verbose, and we should just do a
concise flag like approach, similar to QMP:
$ qemu-system-x86_64 -cpu help:
Available CPUs:
x86 486 (alias configured by machine type) (deprecated)
leaving the full message to be displayed at runtime ? I'm slightly
inclined to the simpler more concise output.