>From: Magenheimer, Dan (HP Labs Fort Collins)
>Sent: 2006年3月9日 1:39
>I was hoping Kevin would respond to this as my memory
>on it is dim. There was a rare but significant problem
>that this code was fixing and we went through several
>attempts to fix it. I don't think we ever understood
>exactly why this code was necessary because we (both
>Kevin and I) thought a different code sequence should
>work, but it didn't.
Neither to me. Sorry for late response due to in trip. As Dan said, that
sequence is added when tracking a very tricky bug where
saved dtlb entry may be incorrect. After adding several fixes together
including that one, it went away and so that logic is kept there.
Thanks,
Kevin
>
>So, yes, make the change to make it SMP-safe (I prefer
>the parameter), but be careful about changing the
>"in_tpa" semantics without running a very thorough
>test suite.
>
>> -----Original Message-----
>> From: Tristan Gingold [mailto:Tristan.Gingold@xxxxxxxx]
>> Sent: Tuesday, March 07, 2006 9:46 AM
>> To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx; Magenheimer, Dan (HP
>> Labs Fort Collins)
>> Subject: in_tpa is not SMP-safe
>>
>> Hi,
>>
>> the use of in_tpa is not SMP-safe:
>>
>> [in vcpu.c:]
>> #if 1
>> // TEMPORARY PATCH for match_dtlb uses this, can be removed later
>> // FIXME SMP
>> int in_tpa = 0;
>> #endif
>>
>> [vcpu_translate]
>> if (/* is_data && */ vcpu_match_tr_entry(trp,address,rid)) {
>> if (vcpu->domain==dom0 && !in_tpa) *pteval =
>> trp->page_flags;
>> else *pteval = vcpu->arch.dtlb_pte;
>> *itir = trp->itir;
>> dtlb_translate_count++;
>> return IA64_NO_FAULT;
>> }
>>
>> [vcpu_tpa:]
>> in_tpa = 1;
>> fault = vcpu_translate(vcpu, vadr, 1, &pteval, &itir, &iha);
>> in_tpa = 0;
>>
>>
>> Should we add a new parameter to vcpu_translate or change the is_data
>> parameter to flags ?
>>
>> BTW, I do not really understand it. Why vcpu->arch.dtlb_pte
>> can be wrong ?
>>
>> Tristan.
>>
>>
>
>_______________________________________________
>Xen-ia64-devel mailing list
>Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
>http://lists.xensource.com/xen-ia64-devel
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|