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:yamahata@xxxxxxxxxxxxx]
>>> Sent: Friday, November 07, 2008 11:03 AM
>>> To: Zhang, Xiantao
>>> Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
>>> 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 <xiantao.zhang@xxxxxxxxx>
>>>>
>>>>
>>>> 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@xxxxxxxxxxxxxxxxxxx
>>>> http://lists.xensource.com/xen-ia64-devel
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|