|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[Xen-ia64-devel] RE: in_tpa is not SMP-safe
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.
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
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-ia64-devel] RE: in_tpa is not SMP-safe,
Magenheimer, Dan (HP Labs Fort Collins) <=
|
|
|
|
|