On Thu, Jan 25, 2018 at 03:10:31PM +0000, Peter Maydell wrote: > On 25 January 2018 at 14:41, Peter Maydell <peter.mayd...@linaro.org> wrote: > > On 22 January 2018 at 18:33, Eduardo Habkost <ehabk...@redhat.com> wrote: > >> About QOM type names: > >> > >> On x86, all CPU models are resolved to "<model>-<suffix>", and > >> i386 and x86_64 have different suffixes. So the QOM type name is > >> "max-x86_64-cpu" on qemu-system-x86_64, and "max-i386-cpu" on > >> qemu-system-i386. > > > > OK. Looking at the target/arm code we do a similar suffix > > trick, but we seem to have cut-n-pasted the handling in > > aarch64_cpu_register(), so it uses the TYPE_ARM_CPU as the > > suffix, rather the TYPE_AARCH64_CPU. > > ...and that's not as simple a fix as I thought, because the > code in helper.c for implementing arch_query_cpu_definitions() and > arm_cpu_list() assumes it can create the QOM type name by appending > TYPE_ARM_CPU. The ARM_CPU_TYPE_NAME() macro which we use pretty > extensively also assumes the suffix is the same regardless of > what CPU type it's being applied to. > > Looking at x86 it seems that TYPE_X86_CPU expands to a different > string for qemu-system-x86_64 and qemu-system-i386. I could do > that, but it seems very confusing: I would expect a QOM type > name like TYPE_FOO to always mean the same QOM type.
Yeah, I don't like the way TYPE_x86_CPU works, and I don't recommend doing the same elsewhere. > > Given that the type names don't appear to the user, I think > we can go ahead with implementing "-cpu max" for Arm without > having to first disentangle this? "max" isn't in any worse > a position than the existing "host" and "any" types. Sounds reasonable to me. -- Eduardo