Jan Kiszka wrote:
> On 2011-12-28 18:35, Liu, Jinsong wrote:
>>>> diff --git a/qemu-kvm.h b/qemu-kvm.h
>>>> index 2bd5602..8c6c2ea 100644
>>>> --- a/qemu-kvm.h
>>>> +++ b/qemu-kvm.h
>>>> @@ -260,6 +260,7 @@ extern int kvm_irqchip;
>>>>  extern int kvm_pit;
>>>>  extern int kvm_pit_reinject;
>>>>  extern unsigned int kvm_shadow_memory;
>>>> +extern int tsc_deadline_timer;
>>>> 
>>>>  int kvm_handle_tpr_access(CPUState *env);
>>>>  void kvm_tpr_enable_vapic(CPUState *env);
>>>> diff --git a/qemu-options.hx b/qemu-options.hx
>>>> index f6df6b9..eff6644 100644
>>>> --- a/qemu-options.hx
>>>> +++ b/qemu-options.hx
>>>> @@ -2619,6 +2619,9 @@ DEF("no-kvm-pit-reinjection", 0,
>>>>      QEMU_OPTION_no_kvm_pit_reinjection,
>>>>      "-no-kvm-pit-reinjection\n" "                disable KVM
>>>> kernel mode PIT interrupt reinjection\n",      QEMU_ARCH_I386)
>>>> +DEF("no-tsc-deadline-timer", 0,
>>>> QEMU_OPTION_no_tsc_deadline_timer, +    "-no-tsc-deadline-timer
>>>> disable tsc deadline timer\n", +    QEMU_ARCH_I386) 
>>> 
>>> Hmm, I would really prefer to stop adding switches like this. They
>>> won't make it upstream anyway.
>> 
>> OK, I will try to write a patch w/ better user control cpuid method,
>> i.e. by plus_features and minus_features. 
> 
> Yep, that would be better.

Thanks, patch updated according to above idea, and sent out.

> 
>> 
>>> 
>>> Can't this control be attached to legacy qemu machine models, ie.
>>> here anything <= pc-1.0? See how we handle kvmclock.
>>> 
>> 
>> You mean, by adding input para like pc_init1(..., kvmclock_enabled,
>> tscdeadline_enabled)? 
>> I think that's not a good way.
> 
> I think it is mandatory as older qemu versions won't expose
> tscdeadline to the guest, thus newer versions must not do this when
> emulating older machines.

Hmm, if an old qemu machine runs at a new host platform (say, -cpu host), it 
would expose many *new* cpuid features to guest.

IMO, qemu machine is a *virt* platform for guest,
tsc deadline timer is a cpuid features, not much necessary to be bound to some 
qemu machine version.
whether tsc deadline timer cpuid expose to guest can only decided by:
1. user authorize enable (default yes)
2. kvm_irqchip_in_kernel
3. KVM_CAP_TSC_DEADLINE_TIMER
If yes, it can be exposed to guest, and would not break anything no matter what 
qemu machine version is.


Thanks,
Jinsong

> 
>> With more and more cpuid features (N) controlled in this way,
>> machine models would be 2^N. 
> 
> We likely need a better way to express this via code, I agree. Likely
> something declarative as for compat_props.
> 



Reply via email to