search for: pte_val

Displaying 20 results from an estimated 154 matches for "pte_val".

2008 May 23
0
[PATCH] x86/paravirt: add pte_flags to just get pte flags
Add pte_flags() to extract the flags from a pte. This is a special case of pte_val() which is only guaranteed to return the pte's flags correctly; the page number may be corrupted or missing. The intent is to allow paravirt implementations to return pte flags without having to do any translation of the page number (most notably, Xen). Signed-off-by: Jeremy Fitzhardinge <...
2008 May 23
0
[PATCH] x86/paravirt: add pte_flags to just get pte flags
Add pte_flags() to extract the flags from a pte. This is a special case of pte_val() which is only guaranteed to return the pte's flags correctly; the page number may be corrupted or missing. The intent is to allow paravirt implementations to return pte flags without having to do any translation of the page number (most notably, Xen). Signed-off-by: Jeremy Fitzhardinge <...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 08/17] paravirt_ops - memory managment
...========================================================= --- clean-start.orig/include/asm-x86_64/page.h +++ clean-start/include/asm-x86_64/page.h @@ -64,16 +64,44 @@ typedef struct { unsigned long pgd; } pg typedef struct { unsigned long pgprot; } pgprot_t; +static inline unsigned long native_pte_val(pte_t pte) +{ + return pte.pte; +} + +static inline unsigned long native_pud_val(pud_t pud) +{ + return pud.pud; +} + + +static inline unsigned long native_pmd_val(pmd_t pmd) +{ + return pmd.pmd; +} + +static inline unsigned long native_pgd_val(pgd_t pgd) +{ + return pgd.pgd; +} + + +#ifdef CONFIG_...
2007 Apr 18
0
[RFC/PATCH PV_OPS X86_64 08/17] paravirt_ops - memory managment
...========================================================= --- clean-start.orig/include/asm-x86_64/page.h +++ clean-start/include/asm-x86_64/page.h @@ -64,16 +64,44 @@ typedef struct { unsigned long pgd; } pg typedef struct { unsigned long pgprot; } pgprot_t; +static inline unsigned long native_pte_val(pte_t pte) +{ + return pte.pte; +} + +static inline unsigned long native_pud_val(pud_t pud) +{ + return pud.pud; +} + + +static inline unsigned long native_pmd_val(pmd_t pmd) +{ + return pmd.pmd; +} + +static inline unsigned long native_pgd_val(pgd_t pgd) +{ + return pgd.pgd; +} + + +#ifdef CONFIG_...
2007 Oct 31
5
[PATCH 0/7] (Re-)introducing pvops for x86_64 - Real pvops work part
Hey folks, This is the part-of-pvops-implementation-that-is-not-exactly-a-merge. Neat, uh? This is the majority of the work. The first patch in the series does not really belong here. It was already sent to lkml separetedly before, but I'm including it again, for a very simple reason: Try to test the paravirt patches without it, and you'll fail miserably ;-) (and it was not yet
2007 Oct 31
5
[PATCH 0/7] (Re-)introducing pvops for x86_64 - Real pvops work part
Hey folks, This is the part-of-pvops-implementation-that-is-not-exactly-a-merge. Neat, uh? This is the majority of the work. The first patch in the series does not really belong here. It was already sent to lkml separetedly before, but I'm including it again, for a very simple reason: Try to test the paravirt patches without it, and you'll fail miserably ;-) (and it was not yet
2008 Mar 20
0
[RFC/PATCH 02/15] preparation: host memory management changes for s390 kvm
...00000000000UL +#define _PAGE_RCP_GR 0x0004000000000000UL +#define _PAGE_RCP_GC 0x0002000000000000UL + #ifndef __s390x__ /* Bits in the segment table address-space-control-element */ @@ -513,6 +521,67 @@ static inline int pte_file(pte_t pte) #define __HAVE_ARCH_PTE_SAME #define pte_same(a,b) (pte_val(a) == pte_val(b)) +static inline void rcp_lock(pte_t *ptep) +{ +#ifdef CONFIG_PGSTE + atomic64_t *rcp = (atomic64_t *) (ptep + PTRS_PER_PTE); + preempt_disable(); + atomic64_set_mask(_PAGE_RCP_PCL, rcp); +#endif +} + +static inline void rcp_unlock(pte_t *ptep) +{ +#ifdef CONFIG_PGSTE + atomic64_t...
2007 Nov 09
11
[PATCH 0/24] paravirt_ops for unified x86 - that's me again!
Hey folks, Here's a new spin of the pvops64 patch series. We didn't get that many comments from the last time, so it should be probably almost ready to get in. Heya! >From the last version, the most notable changes are: * consolidation of system.h, merging jeremy's comments about ordering concerns * consolidation of smp functions that goes through smp_ops. They're sharing
2007 Nov 09
11
[PATCH 0/24] paravirt_ops for unified x86 - that's me again!
Hey folks, Here's a new spin of the pvops64 patch series. We didn't get that many comments from the last time, so it should be probably almost ready to get in. Heya! >From the last version, the most notable changes are: * consolidation of system.h, merging jeremy's comments about ordering concerns * consolidation of smp functions that goes through smp_ops. They're sharing
2007 Aug 10
9
[PATCH 0/25 -v2] paravirt_ops for x86_64, second round
Here is an slightly updated version of the paravirt_ops patch. If your comments and criticism were welcome before, now it's even more! There are some issues that are _not_ addressed in this revision, and here are the causes: * split debugreg into multiple functions, suggested by Andi: - Me and jsfg agree that introducing more pvops (specially 14!) is not worthwhile. So, although we do
2007 Aug 10
9
[PATCH 0/25 -v2] paravirt_ops for x86_64, second round
Here is an slightly updated version of the paravirt_ops patch. If your comments and criticism were welcome before, now it's even more! There are some issues that are _not_ addressed in this revision, and here are the causes: * split debugreg into multiple functions, suggested by Andi: - Me and jsfg agree that introducing more pvops (specially 14!) is not worthwhile. So, although we do
2007 Aug 15
13
[PATCH 0/25][V3] pvops_64 last round (hopefully)
This is hopefully the last iteration of the pvops64 patch. >From the last version, we have only one change, which is include/asm-x86_64/processor.h: There were still one survivor in raw asm. Also, git screwed me up for some reason, and the 25th patch was missing the new files, paravirt.{c,h}. (although I do remember having git-add'ed it, but who knows...) Andrew, could you please push it
2007 Aug 15
13
[PATCH 0/25][V3] pvops_64 last round (hopefully)
This is hopefully the last iteration of the pvops64 patch. >From the last version, we have only one change, which is include/asm-x86_64/processor.h: There were still one survivor in raw asm. Also, git screwed me up for some reason, and the 25th patch was missing the new files, paravirt.{c,h}. (although I do remember having git-add'ed it, but who knows...) Andrew, could you please push it
2007 Apr 18
0
[patch 6/9] Guest page hinting: writable page table entries.
...ux-2.6/fs/exec.c linux-2.6-patched/fs/exec.c --- linux-2.6/fs/exec.c 2006-09-01 12:49:30.000000000 +0200 +++ linux-2.6-patched/fs/exec.c 2006-09-01 12:50:24.000000000 +0200 @@ -307,6 +307,7 @@ void install_arg_page(struct vm_area_str { struct mm_struct *mm = vma->vm_mm; pte_t * pte; + pte_t pte_val; spinlock_t *ptl; if (unlikely(anon_vma_prepare(vma))) @@ -322,8 +323,9 @@ void install_arg_page(struct vm_area_str } inc_mm_counter(mm, anon_rss); lru_cache_add_active(page); - set_pte_at(mm, address, pte, pte_mkdirty(pte_mkwrite(mk_pte( - page, vma->vm_page_prot)))); + pte_val...
2007 Apr 18
0
[patch 6/9] Guest page hinting: writable page table entries.
...ux-2.6/fs/exec.c linux-2.6-patched/fs/exec.c --- linux-2.6/fs/exec.c 2006-09-01 12:49:30.000000000 +0200 +++ linux-2.6-patched/fs/exec.c 2006-09-01 12:50:24.000000000 +0200 @@ -307,6 +307,7 @@ void install_arg_page(struct vm_area_str { struct mm_struct *mm = vma->vm_mm; pte_t * pte; + pte_t pte_val; spinlock_t *ptl; if (unlikely(anon_vma_prepare(vma))) @@ -322,8 +323,9 @@ void install_arg_page(struct vm_area_str } inc_mm_counter(mm, anon_rss); lru_cache_add_active(page); - set_pte_at(mm, address, pte, pte_mkdirty(pte_mkwrite(mk_pte( - page, vma->vm_page_prot)))); + pte_val...
2007 Apr 18
2
[PATCH] x86_64 paravirt_ops port
...=========================================== --- linux-2.6.19-quilt.orig/include/asm-x86_64/page.h +++ linux-2.6.19-quilt/include/asm-x86_64/page.h @@ -64,16 +64,44 @@ typedef struct { unsigned long pgd; } pg typedef struct { unsigned long pgprot; } pgprot_t; +static inline unsigned long native_pte_val(pte_t pte) +{ + return pte.pte; +} + +static inline unsigned long native_pud_val(pud_t pud) +{ + return pud.pud; +} + + +static inline unsigned long native_pmd_val(pmd_t pmd) +{ + return pmd.pmd; +} + +static inline unsigned long native_pgd_val(pgd_t pgd) +{ + return pgd.pgd; +} + + +#ifdef CONFIG_...
2007 Apr 18
2
[PATCH] x86_64 paravirt_ops port
...=========================================== --- linux-2.6.19-quilt.orig/include/asm-x86_64/page.h +++ linux-2.6.19-quilt/include/asm-x86_64/page.h @@ -64,16 +64,44 @@ typedef struct { unsigned long pgd; } pg typedef struct { unsigned long pgprot; } pgprot_t; +static inline unsigned long native_pte_val(pte_t pte) +{ + return pte.pte; +} + +static inline unsigned long native_pud_val(pud_t pud) +{ + return pud.pud; +} + + +static inline unsigned long native_pmd_val(pmd_t pmd) +{ + return pmd.pmd; +} + +static inline unsigned long native_pgd_val(pgd_t pgd) +{ + return pgd.pgd; +} + + +#ifdef CONFIG_...
2020 Aug 07
0
[PATCH v3 4/7] x86/paravirt: remove 32-bit support from PARAVIRT_XXL
...zeof(pteval_t) > sizeof(long)) - ret = PVOP_CALLEE2(pteval_t, mmu.make_pte, val, (u64)val >> 32); - else - ret = PVOP_CALLEE1(pteval_t, mmu.make_pte, val); + ret = PVOP_CALLEE1(pteval_t, mmu.make_pte, val); return (pte_t) { .pte = ret }; } @@ -389,11 +382,7 @@ static inline pteval_t pte_val(pte_t pte) { pteval_t ret; - if (sizeof(pteval_t) > sizeof(long)) - ret = PVOP_CALLEE2(pteval_t, mmu.pte_val, - pte.pte, (u64)pte.pte >> 32); - else - ret = PVOP_CALLEE1(pteval_t, mmu.pte_val, pte.pte); + ret = PVOP_CALLEE1(pteval_t, mmu.pte_val, pte.pte); return ret; } @...
2020 Aug 15
0
[PATCH v4 1/6] x86/paravirt: remove 32-bit support from PARAVIRT_XXL
...f (sizeof(pteval_t) > sizeof(long)) - ret = PVOP_CALLEE2(pteval_t, mmu.make_pte, val, (u64)val >> 32); - else - ret = PVOP_CALLEE1(pteval_t, mmu.make_pte, val); - - return (pte_t) { .pte = ret }; + return (pte_t) { PVOP_CALLEE1(pteval_t, mmu.make_pte, val) }; } static inline pteval_t pte_val(pte_t pte) { - pteval_t ret; - - if (sizeof(pteval_t) > sizeof(long)) - ret = PVOP_CALLEE2(pteval_t, mmu.pte_val, - pte.pte, (u64)pte.pte >> 32); - else - ret = PVOP_CALLEE1(pteval_t, mmu.pte_val, pte.pte); - - return ret; + return PVOP_CALLEE1(pteval_t, mmu.pte_val, pte.pte); }...
2007 Jul 09
1
[PATCH RFC] first cut at splitting up paravirt_ops
...E(pv_mmu_ops, write_cr3); + SITE(pv_cpu_ops, clts); + SITE(pv_cpu_ops, read_tsc); #undef SITE patch_site: ret = paravirt_patch_insns(insns, len, start, end); break; - case PARAVIRT_PATCH(make_pgd): - case PARAVIRT_PATCH(make_pte): - case PARAVIRT_PATCH(pgd_val): - case PARAVIRT_PATCH(pte_val): + case PARAVIRT_PATCH(pv_mmu_ops.make_pgd): + case PARAVIRT_PATCH(pv_mmu_ops.make_pte): + case PARAVIRT_PATCH(pv_mmu_ops.pgd_val): + case PARAVIRT_PATCH(pv_mmu_ops.pte_val): #ifdef CONFIG_X86_PAE - case PARAVIRT_PATCH(make_pmd): - case PARAVIRT_PATCH(pmd_val): + case PARAVIRT_PATCH(pv_mmu_ops.ma...