On Sat, 2016-08-13 at 01:06 -0500, Wei Huang wrote: > > > Wouldn't that mean that you'd be unable to use > > > > > > -cpu foo,pmu=off > > > > > > if CPU model 'foo' doesn't support a PMU? I'd expect that > > > to work. > > > > The current precedent (has_el3) doesn't work like that: if > > foo isn't a CPU which can support EL3 then the property doesn't > > exist, and it's an error to try to set it. > > V1 sent. I tried to follow everyone's advice. See the following: > > * set default pmu=off > * like el3, add a new feature ARM_FEATURE_HOST_PMU > * "pmu" property becomes CPU dependent. Only cortex-a53/cortex-a57/host > under certain mode support this option > * change struct ARMCPU field name "has_pmu" ==> "has_host_pmu" because > IMO "has_pmu" is misleading > > BTW answering Andrea's question above: "-cpu foo,pmu=off" won't be > allowed in this patch if CPU "foo" doesn't support host-backed PMU. QEMU > will fail to run in this case. Maybe this is what we want?
After discussing this a bit offline, I came to the conclusion that there isn't a Single Right Way™ to handle this - both my proposal and what you implemented are reasonable behaviors one could expect. On the other hand, what you implemented: * matches x86 * is more strict than what I proposed, so there's room to change it later without breaking any existing guest so I'm happy with it :) -- Andrea Bolognani / Red Hat / Virtualization