WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] A patch to fix mis-setting ed bit for itlb entry.

To: "Zhang, Xiantao" <xiantao.zhang@xxxxxxxxx>
Subject: Re: [Xen-ia64-devel] A patch to fix mis-setting ed bit for itlb entry.
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Mon, 5 Jan 2009 14:23:22 +0900
Cc: "xen-ia64-devel@xxxxxxxxxxxxxxxxxxx" <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Sun, 04 Jan 2009 21:23:26 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <706158FABBBA044BAD4FE898A02E4BC21C8E8EA2@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <706158FABBBA044BAD4FE898A02E4BC21C8E8EA2@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.6i
applied, thanks.

On Sun, Jan 04, 2009 at 03:22:06PM +0800, Zhang, Xiantao wrote:
> Hi, Isaku 
>     When debugging  a windows BSOD issue,  we found it is caused by 
> mis-setting pte's ED bit for itlb entry.  For hash vTLB, it uses unified tlb 
> and doesn't differentiate itc and dtc in its implementation, so itlb_miss 
> handler may reference dtlb entry in hash vTLB.  But it may result in issues, 
> because dtlb's ED bit may be different with itlb's setting.  Since the case 
> is very rare, so just purge the corresponding entry in hash vTLB and let 
> guest OS to determin how to set ED bit for itlb mapping once found it. 
> Xiantao
> 
> Signed-off-by : Xiantao Zhang <xiantao.zhang@xxxxxxxxx>
> 
> diff -r e97216802360 xen/arch/ia64/vmx/vtlb.c
> --- a/xen/arch/ia64/vmx/vtlb.c  Fri Dec 12 10:43:39 2008 +0900
> +++ b/xen/arch/ia64/vmx/vtlb.c  Sun Jan 04 10:43:19 2009 +0800
> @@ -678,11 +678,20 @@ thash_data_t *vtlb_lookup(VCPU *v, u64 v
>          cch = vtlb_thash(hcb->pta, va, vrr.rrval, &tag);
>          do {
>              if (cch->etag == tag && cch->ps == ps)
> -                return cch;
> +                goto found;
>              cch = cch->next;
>          } while(cch);
>      }
>      return NULL;
> +found:
> +    if (is_data == ISIDE_TLB && !cch->ed) {
> +      /*The case is very rare, and it may lead to incorrect setting
> +      for itlb's ed bit! Purge it from hash vTLB and let guest os
> +      determin the ed bit of the itlb entry.*/
> +       vtlb_purge(v, va, ps);
> +       cch = NULL;
> +    }
> +    return cch;
>  }

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

-- 
yamahata

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

<Prev in Thread] Current Thread [Next in Thread>