[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/HAP: also flush TLB when altering a present 1G entry



At 11:29 +0100 on 11 Apr (1397212176), Jan Beulich wrote:
> I actually wonder whether it is really correct to avoid the flush when
> updating intermediate page table entries.

It certainly used to be; now that we have, e.g. p2m_free_entry() it
would be best to flush whenever (old_flags & _PAGE_PRESENT).

Tim.

> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -712,7 +712,7 @@ hap_write_p2m_entry(struct vcpu *v, unsi
>  
>      safe_write_pte(p, new);
>      if ( (old_flags & _PAGE_PRESENT)
> -         && (level == 1 || (level == 2 && (old_flags & _PAGE_PSE))) )
> +         && (level == 1 || (old_flags & _PAGE_PSE)) )
>               flush_tlb_mask(d->domain_dirty_cpumask);
>  
>      paging_unlock(d);
> 
> 
> 

> x86/HAP: also flush TLB when altering a present 1G entry
> 
> I actually wonder whether it is really correct to avoid the flush when
> updating intermediate page table entries.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -712,7 +712,7 @@ hap_write_p2m_entry(struct vcpu *v, unsi
>  
>      safe_write_pte(p, new);
>      if ( (old_flags & _PAGE_PRESENT)
> -         && (level == 1 || (level == 2 && (old_flags & _PAGE_PSE))) )
> +         && (level == 1 || (old_flags & _PAGE_PSE)) )
>               flush_tlb_mask(d->domain_dirty_cpumask);
>  
>      paging_unlock(d);


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.