Isaku Yamahata wrote:
> On Fri, Nov 07, 2008 at 11:33:43AM +0800, Zhang, Xiantao wrote:
>> But another thing to meation, why mfn_valid with invalid parameter
>> will incur the fault?  Seems mfn_valid has something wrong, I have
>> no enough time to find the cause.  Is it a known issue ? Or
>> mfn_valid has some limitation ?   
> 
> mfn_valid() with invalid parameter shouldn't cause panic.
> It may cause tlb miss fault, but the fault should be handled specially
> by frametable_fault in ivt.S and should be recovered resulting
> in mfn_valid() returning false.
> 
> I agree with you that there's something wrong in mfn_valid()
> I haven't aware of the issue.

Okay, if so, frametable_fault maybe not handled in a correct way in vmx_ivt.S. 
Xiantao


> thanks,
> 
>> Thanks
>> Xiantao
>> 
>> Zhang, Xiantao wrote:
>>> Yes. Should be addressed.
>>> 
>>> -----Original Message-----
>>> From: Isaku Yamahata [mailto:[EMAIL PROTECTED]
>>> Sent: Friday, November 07, 2008 11:03 AM
>>> To: Zhang, Xiantao
>>> Cc: xen-ia64-devel@lists.xensource.com
>>> Subject: Re: [Xen-ia64-devel] [PATCH] Fix vti guests broken issue.
>>> 
>>> Oh, my bad. Thank you for debugging.
>>> I applied and pushed out.
>>> Does this fixed the issue you repoted?
>>> 
>>> thanks,
>>> 
>>> On Fri, Nov 07, 2008 at 10:42:57AM +0800, Zhang, Xiantao wrote:
>>>> PATCH : Fix vti guests broken issue.
>>>> mfn_valid should use machine physical pfn, not guest physical pfn.
>>>> 
>>>> Sign-off-by: Xiantao Zhang <[EMAIL PROTECTED]>
>>>> 
>>>> 
>>>> diff -r f6795589ef82 xen/arch/ia64/vmx/vtlb.c
>>>> --- a/xen/arch/ia64/vmx/vtlb.c     Thu Nov 06 12:14:57 2008 +0900
>>>> +++ b/xen/arch/ia64/vmx/vtlb.c     Fri Nov 07 10:35:11 2008 +0800
>>>> @@ -522,7 +522,7 @@ static u64 translate_phy_pte(VCPU *v, u6
>>>>       * which is required by vga acceleration since qemu maps
>>>> shared 
>>>>       * vram buffer with WB.
>>>>       */
>>>> -    if (mfn_valid(pte_pfn(__pte(pte))) && phy_pte.ma !=
>>>> VA_MATTR_NATPAGE) +    if (mfn_valid(pte_pfn(__pte(maddr))) &&
>>>>          phy_pte.ma != VA_MATTR_NATPAGE) phy_pte.ma = VA_MATTR_WB;
>>>> 
>>>>      maddr = ((maddr & _PAGE_PPN_MASK) & PAGE_MASK) | (paddr &
>>>> ~PAGE_MASK);
>>> 
>>>> _______________________________________________
>>>> Xen-ia64-devel mailing list
>>>> Xen-ia64-devel@lists.xensource.com
>>>> http://lists.xensource.com/xen-ia64-devel


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

Reply via email to