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

Re: [Xen-devel] [PATCHv1] CA-201372: x86: don't flush the whole cache when changing cachability



>>> On 08.03.16 at 19:44, <david.vrabel@xxxxxxxxxx> wrote:
> --- a/xen/arch/x86/flushtlb.c
> +++ b/xen/arch/x86/flushtlb.c
> @@ -140,7 +140,8 @@ unsigned int flush_area_local(const void *va, unsigned 
> int flags)
>          if ( order < (BITS_PER_LONG - PAGE_SHIFT) )
>              sz = 1UL << (order + PAGE_SHIFT);
>  
> -        if ( !(flags & (FLUSH_TLB|FLUSH_TLB_GLOBAL)) &&
> +        if ( (!(flags & (FLUSH_TLB|FLUSH_TLB_GLOBAL)) ||
> +              flags & FLUSH_VA_VALID) &&

The & wants to be parenthesized.

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5641,7 +5641,7 @@ int map_pages_to_xen(
>          flush_flags |= FLUSH_TLB_GLOBAL;       \
>      if ( (flags & _PAGE_PRESENT) &&            \
>           (((o_) ^ flags) & PAGE_CACHE_ATTRS) ) \
> -        flush_flags |= FLUSH_CACHE;            \
> +        flush_flags |= FLUSH_CACHE_BY_VA;      \
>  } while (0)

No, that's too simple. You may flush by VA only if the MFN didn't
change (or else you flush the wrong page).

Jan


_______________________________________________
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®.