On 2012-03-09 19:27, Liu, Jinsong wrote: > Jan Kiszka wrote: >> On 2012-03-06 08:49, Liu, Jinsong wrote: >>> Jan, >>> >>> Any comments? I feel some confused about your point 'disable cpuid >>> feature for older machine types by default': are you planning a >>> common approach for this common issue, or, you just ask me a >>> specific solution for the tsc deadline timer case? >> >> I think a generic solution for this can be as simple as passing a >> feature exclusion mask to cpu_init. You could simple append a string >> of "-feature1,-feature2" to the cpu model that is specified on >> creation. And that string could be defined in the compat machine >> descriptions. Does this make sense? >> > > Jan, to prevent misunderstanding, I elaborate my understanding of your points below (if any misunderstanding please point out to me): > ===================== > Your target is, to migrate from A(old qemu) to B(new qemu) by > 1. at A: qemu-version-A [-cpu whatever] // currently the default machine type is pc-A > 2. at B: qemu-version-B -machine pc-A [-cpu whatever] -feature1 -feature2 > > B run new qemu-version-B (w/ new features 'feature1' and 'feature2'), but when B runs w/ compat '-machine pc-A', vm should not see 'feature1' and 'feature2', so commandline append string to cpu model '-cpu whatever -feature1 -feature2' to hidden new feature1 and feature2 to vm, hence vm can see same cpuid features (at B) as those at A (which means, no feature1, no feature2) > ===================== > > If my understanding of your thoughts is right, I think currently qemu has satisfied your target, code refer to > pc_cpus_init(cpu_model) > ...... > cpu_init(cpu_model) > --> cpu_x86_register(*env, cpu_model) > --> cpu_x86_find_by_name(*def, cpu_model) // parse '+/- features', generate feature masks plus_features... > // and minus_features...(this is feature exclusion masks you want) > I think your point 'define in the compat machine description' is unnecessary. The user would have to specify the new feature as exclusions *manually* on the command line if -machine pc-A doesn't inject them *automatically*. So it is necessary to enhance qemu in this regard. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html