direct-io.hg

changeset 2335:ccc97f55e26d

bitkeeper revision 1.1159.1.97 (412a08767NwPLKMuv2wKJw0mVgoNjg)

2.6 update_va_mapping on demand fault path (currently disabled)
author iap10@labyrinth.cl.cam.ac.uk
date Mon Aug 23 15:08:38 2004 +0000 (2004-08-23)
parents 7c3a3f3cf69b
children 869c20f2977b
files linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable.h
line diff
     1.1 --- a/linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable.h	Mon Aug 23 15:07:41 2004 +0000
     1.2 +++ b/linux-2.6.7-xen-sparse/include/asm-xen/asm-i386/pgtable.h	Mon Aug 23 15:08:38 2004 +0000
     1.3 @@ -361,6 +361,8 @@ static inline pte_t pte_modify(pte_t pte
     1.4   */
     1.5  #define update_mmu_cache(vma,address,pte) do { } while (0)
     1.6  #define  __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
     1.7 +
     1.8 +#if 1
     1.9  #define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
    1.10  	do {								  \
    1.11  		if (__dirty) {						  \
    1.12 @@ -368,6 +370,21 @@ static inline pte_t pte_modify(pte_t pte
    1.13  			flush_tlb_page(__vma, __address);		  \
    1.14  		}							  \
    1.15  	} while (0)
    1.16 +#else
    1.17 +#define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
    1.18 +	do {								  \
    1.19 +		if (__dirty) {						  \
    1.20 +		        if ( likely(vma->vm_mm == current->mm) ) {        \
    1.21 +			    xen_flush_page_update_queue();                \
    1.22 +			    HYPERVISOR_update_va_mapping(address>>PAGE_SHIFT, entry, UVMF_INVLPG); \
    1.23 +			} else {                                          \
    1.24 +                            queue_l1_entry_update((__ptep), (__entry).pte_low); \
    1.25 +			    xen_flush_page_update_queue();                \
    1.26 +			}                                                 \
    1.27 +		}							  \
    1.28 +	} while (0)
    1.29 +
    1.30 +#endif
    1.31  
    1.32  /* Encode and de-code a swap entry */
    1.33  #define __swp_type(x)			(((x).val >> 1) & 0x1f)