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. 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. thanks -- PMM