Re: [RFC PATCH 1/2] Hyper-H reference counter

Paolo Bonzini
2013-05-20T08:43:02Z

Il 20/05/2013 10:36, Gleb Natapov ha scritto:
> On Mon, May 20, 2013 at 10:05:38AM +0200, Paolo Bonzini wrote:
>> Il 19/05/2013 08:37, Vadim Rozenfeld ha scritto:
>>> On Thu, 2013-05-16 at 16:45 +0200, Paolo Bonzini wrote:
>>>> Il 16/05/2013 16:26, Vadim Rozenfeld ha scritto:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes, I have this check added in the second patch.
>>>>>>>>>>>>>
>>>>>>>>>>> Move it here please.
>>>>>>>>> OK, will do it.
>>>>>>>
>>>>>>> Or better, remove all the handling of HV_X64_MSR_REFERENCE_TSC from this
>>>>>>> patch, and leave it all to the second.
>>>>>>>
>>>>> What for? Could you please elaborate?
>>>
>>> To make code reviewable. Add one MSR here, the other in the second patch.
>>> removing HV_X64_MSR_REFERENCE_TSC will make this particular patch
>>> completely non-functional.
>>
>> Do you mean Windows guest will BSOD or just that they won't use the
>> reference TSC? If the latter, it's not a problem.
>>
> I think it is. If reference counter works without TSC we have a bisect
> point for the case when something will going wrong with TSC.

Isn't that exactly what might happen with this patch only? Windows will
not use the TSC because it finds invalid values in the TSC page. If it
still uses the reference counter, we have the situation you describe.

refcount TSC page
Y Y <= after patch 2
Y N <= after patch 1
N Y <= impossible
N N <= removing TSC page from this patch?

Of course if the guest BSODs, it's not possible to split the patches
that way. Perhaps in that case it's simply better to do a single patch.

Paolo