search for: clone_pgd_range

Displaying 20 results from an estimated 35 matches for "clone_pgd_range".

2007 Apr 18
3
[PATCH] abstract out bits of ldt.c
Chris Wright wrote: >* Zachary Amsden (zach@vmware.com) wrote: > > >>Does Xen assume page aligned descriptor tables? I assume from this >> >> > >Yes. > > > >>patch and snippets I have gathered from others, that is a yes, and other >>things here imply that DT pages are not shadowed. If so, Xen itself >>must have live segments
2007 Apr 18
3
[PATCH] abstract out bits of ldt.c
Chris Wright wrote: >* Zachary Amsden (zach@vmware.com) wrote: > > >>Does Xen assume page aligned descriptor tables? I assume from this >> >> > >Yes. > > > >>patch and snippets I have gathered from others, that is a yes, and other >>things here imply that DT pages are not shadowed. If so, Xen itself >>must have live segments
2007 Nov 16
1
paravirt_alloc_pd_clone() useful?
Do you use paravirt_alloc_pd_clone()? I seem to you remember you mentioning that it doesn't help you very much. I'm in the process of unifying pgalloc*, and it seems to me that it would be a bit cleaner without needing to worry about paravirt_alloc_pd_clone()... J
2007 Apr 18
1
[PATCH 4/10] I386 pgd clone under lock fix.patch
...2007 -0700 +++ b/arch/i386/mm/pgtable.c Thu Apr 05 17:40:02 2007 -0700 @@ -241,18 +241,16 @@ void pgd_ctor(void *pgd, struct kmem_cac /* !PAE, no pagetable sharing */ memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t)); + spin_lock_irqsave(&pgd_lock, flags); + + /* must happen under lock */ clone_pgd_range((pgd_t *)pgd + USER_PTRS_PER_PGD, swapper_pg_dir + USER_PTRS_PER_PGD, KERNEL_PGD_PTRS); - - spin_lock_irqsave(&pgd_lock, flags); - - /* must happen under lock */ paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, __pa(swapper_pg_dir) >> PAGE_SHIFT, USER_PTRS_PER_PG...
2007 Apr 18
1
[PATCH 4/10] I386 pgd clone under lock fix.patch
...2007 -0700 +++ b/arch/i386/mm/pgtable.c Thu Apr 05 17:40:02 2007 -0700 @@ -241,18 +241,16 @@ void pgd_ctor(void *pgd, struct kmem_cac /* !PAE, no pagetable sharing */ memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t)); + spin_lock_irqsave(&pgd_lock, flags); + + /* must happen under lock */ clone_pgd_range((pgd_t *)pgd + USER_PTRS_PER_PGD, swapper_pg_dir + USER_PTRS_PER_PGD, KERNEL_PGD_PTRS); - - spin_lock_irqsave(&pgd_lock, flags); - - /* must happen under lock */ paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, __pa(swapper_pg_dir) >> PAGE_SHIFT, USER_PTRS_PER_PG...
2007 Nov 16
1
paravirt_alloc_pd_clone() useful?
Do you use paravirt_alloc_pd_clone()? I seem to you remember you mentioning that it doesn't help you very much. I'm in the process of unifying pgalloc*, and it seems to me that it would be a bit cleaner without needing to worry about paravirt_alloc_pd_clone()... J
2007 Apr 18
0
[PATCH 2/5] Add subarch mmu queue flush hook
...============================================================== --- linux-2.6.13.orig/include/asm-i386/mach-default/pgtable-ops.h 2005-08-24 09:30:53.000000000 -0700 +++ linux-2.6.13/include/asm-i386/mach-default/pgtable-ops.h 2005-08-24 09:43:27.000000000 -0700 @@ -40,4 +40,16 @@ static inline void clone_pgd_range(pgd_t memcpy(dst, src, count * sizeof(pgd_t)); } +/* + * The i386 doesn't have any external MMU info: the kernel page + * tables contain all the necessary information. + * + * Also, we only update the dirty/accessed state if we set + * the dirty bit by hand in the kernel, since the h...
2007 Apr 18
0
[PATCH 2/5] Add subarch mmu queue flush hook
...============================================================== --- linux-2.6.13.orig/include/asm-i386/mach-default/pgtable-ops.h 2005-08-24 09:30:53.000000000 -0700 +++ linux-2.6.13/include/asm-i386/mach-default/pgtable-ops.h 2005-08-24 09:43:27.000000000 -0700 @@ -40,4 +40,16 @@ static inline void clone_pgd_range(pgd_t memcpy(dst, src, count * sizeof(pgd_t)); } +/* + * The i386 doesn't have any external MMU info: the kernel page + * tables contain all the necessary information. + * + * Also, we only update the dirty/accessed state if we set + * the dirty bit by hand in the kernel, since the h...
2007 Apr 18
0
[PATCH 1/5] Paravirt page alloc.patch
...fn(kpte_page)); list_add(&kpte_page->lru, &df_list); revert_page(kpte_page, address); } =================================================================== --- a/arch/i386/mm/pgtable.c +++ b/arch/i386/mm/pgtable.c @@ -245,8 +245,14 @@ void pgd_ctor(void *pgd, kmem_cache_t *c clone_pgd_range((pgd_t *)pgd + USER_PTRS_PER_PGD, swapper_pg_dir + USER_PTRS_PER_PGD, KERNEL_PGD_PTRS); + if (PTRS_PER_PMD > 1) return; + + /* must happen under lock */ + paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, + __pa(swapper_pg_dir) >> PAGE_SHIFT, + USER_PTRS_PER_PGD, PTRS...
2007 Apr 18
0
[PATCH 1/5] Paravirt page alloc.patch
...fn(kpte_page)); list_add(&kpte_page->lru, &df_list); revert_page(kpte_page, address); } =================================================================== --- a/arch/i386/mm/pgtable.c +++ b/arch/i386/mm/pgtable.c @@ -245,8 +245,14 @@ void pgd_ctor(void *pgd, kmem_cache_t *c clone_pgd_range((pgd_t *)pgd + USER_PTRS_PER_PGD, swapper_pg_dir + USER_PTRS_PER_PGD, KERNEL_PGD_PTRS); + if (PTRS_PER_PMD > 1) return; + + /* must happen under lock */ + paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, + __pa(swapper_pg_dir) >> PAGE_SHIFT, + USER_PTRS_PER_PGD, PTRS...
2007 Apr 18
0
[PATCH 1/6] Page allocation hooks for VMI backend
...fn(kpte_page)); list_add(&kpte_page->lru, &df_list); revert_page(kpte_page, address); } =================================================================== --- a/arch/i386/mm/pgtable.c +++ b/arch/i386/mm/pgtable.c @@ -245,8 +245,14 @@ void pgd_ctor(void *pgd, kmem_cache_t *c clone_pgd_range((pgd_t *)pgd + USER_PTRS_PER_PGD, swapper_pg_dir + USER_PTRS_PER_PGD, KERNEL_PGD_PTRS); + if (PTRS_PER_PMD > 1) return; + + /* must happen under lock */ + paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, + __pa(swapper_pg_dir) >> PAGE_SHIFT, + USER_PTRS_PER_PGD, PTRS...
2007 Apr 18
0
[PATCH 1/6] Page allocation hooks for VMI backend
...fn(kpte_page)); list_add(&kpte_page->lru, &df_list); revert_page(kpte_page, address); } =================================================================== --- a/arch/i386/mm/pgtable.c +++ b/arch/i386/mm/pgtable.c @@ -245,8 +245,14 @@ void pgd_ctor(void *pgd, kmem_cache_t *c clone_pgd_range((pgd_t *)pgd + USER_PTRS_PER_PGD, swapper_pg_dir + USER_PTRS_PER_PGD, KERNEL_PGD_PTRS); + if (PTRS_PER_PMD > 1) return; + + /* must happen under lock */ + paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, + __pa(swapper_pg_dir) >> PAGE_SHIFT, + USER_PTRS_PER_PGD, PTRS...
2007 Apr 18
1
[RFC, PATCH 19/24] i386 Vmi mmu changes
...e ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \ + do { \ + if (__dirty) { \ + (__ptep)->pte_low = (__entry).pte_low; \ + flush_tlb_page(__vma, __address); \ + } \ + } while (0) +#endif /* !__HAVE_SUBARCH_PTE_WRITE_FUNCTIONS */ + /* * clone_pgd_range(pgd_t *dst, pgd_t *src, int count); * @@ -397,11 +414,26 @@ extern pte_t *lookup_address(unsigned lo extern void noexec_setup(const char *str); +#include <asm/pgalloc.h> #if defined(CONFIG_HIGHPTE) -#define pte_offset_map(dir, address) \ - ((pte_t *)kmap_atomic(pmd_page(*(dir)),KM_PTE...
2007 Apr 18
1
[RFC, PATCH 19/24] i386 Vmi mmu changes
...e ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \ + do { \ + if (__dirty) { \ + (__ptep)->pte_low = (__entry).pte_low; \ + flush_tlb_page(__vma, __address); \ + } \ + } while (0) +#endif /* !__HAVE_SUBARCH_PTE_WRITE_FUNCTIONS */ + /* * clone_pgd_range(pgd_t *dst, pgd_t *src, int count); * @@ -397,11 +414,26 @@ extern pte_t *lookup_address(unsigned lo extern void noexec_setup(const char *str); +#include <asm/pgalloc.h> #if defined(CONFIG_HIGHPTE) -#define pte_offset_map(dir, address) \ - ((pte_t *)kmap_atomic(pmd_page(*(dir)),KM_PTE...
2007 Apr 18
17
[patch 00/17] paravirt_ops updates
Hi Andi, This series of patches updates paravirt_ops in various ways. Some of the changes are plain cleanups and improvements, and some add some interfaces necessary for Xen. The brief overview: add-MAINTAINERS.patch - obvious remove-CONFIG_DEBUG_PARAVIRT.patch - no longer needed paravirt-nop.patch - mark nop operations consistently paravirt-pte-accessors.patch - operations to pack/unpack
2007 Apr 18
17
[patch 00/17] paravirt_ops updates
Hi Andi, This series of patches updates paravirt_ops in various ways. Some of the changes are plain cleanups and improvements, and some add some interfaces necessary for Xen. The brief overview: add-MAINTAINERS.patch - obvious remove-CONFIG_DEBUG_PARAVIRT.patch - no longer needed paravirt-nop.patch - mark nop operations consistently paravirt-pte-accessors.patch - operations to pack/unpack
2007 Apr 18
23
[patch 00/20] paravirt_ops updates
Hi Andi, Here's a repost of the paravirt_ops update series I posted the other day. Since then, I found a few potential bugs with patching clobbering, cleaned up and documented paravirt.h and the patching machinery. Overview: add-MAINTAINERS.patch obvious remove-CONFIG_DEBUG_PARAVIRT.patch No longer meaningful or needed. paravirt-nop.patch Clean up nop paravirt_ops functions, mainly to
2007 Apr 18
23
[patch 00/20] paravirt_ops updates
Hi Andi, Here's a repost of the paravirt_ops update series I posted the other day. Since then, I found a few potential bugs with patching clobbering, cleaned up and documented paravirt.h and the patching machinery. Overview: add-MAINTAINERS.patch obvious remove-CONFIG_DEBUG_PARAVIRT.patch No longer meaningful or needed. paravirt-nop.patch Clean up nop paravirt_ops functions, mainly to
2007 Apr 18
20
[patch 00/20] XEN-paravirt: Xen guest implementation for paravirt_ops interface
This patch series implements the Linux Xen guest in terms of the paravirt-ops interface. The features in implemented this patch series are: * domU only * UP only (most code is SMP-safe, but there's no way to create a new vcpu) * writable pagetables, with late pinning/early unpinning (no shadow pagetable support) * supports both PAE and non-PAE modes * xen console * virtual block
2007 Apr 18
20
[patch 00/20] XEN-paravirt: Xen guest implementation for paravirt_ops interface
This patch series implements the Linux Xen guest in terms of the paravirt-ops interface. The features in implemented this patch series are: * domU only * UP only (most code is SMP-safe, but there's no way to create a new vcpu) * writable pagetables, with late pinning/early unpinning (no shadow pagetable support) * supports both PAE and non-PAE modes * xen console * virtual block