search for: pgd_alloc

Displaying 20 results from an estimated 66 matches for "pgd_alloc".

2007 Apr 18
2
pgd_alloc and [cd]tors
Is there any real use in having a ctor/dtor for the pgd cache? Given that all pgd allocation happens via pgd_alloc/pgd_free, why not just fold the [cd]tor in? I'm asking because Xen wants pgd[3] to be unshared in the PAE case, and it looks to me like the easiest way to handle that is by making pgd_alloc/free pv-ops and doing the appropriate thing in the Xen code. Would need to sort out the vmalloc mapping...
2007 Apr 18
2
pgd_alloc and [cd]tors
Is there any real use in having a ctor/dtor for the pgd cache? Given that all pgd allocation happens via pgd_alloc/pgd_free, why not just fold the [cd]tor in? I'm asking because Xen wants pgd[3] to be unshared in the PAE case, and it looks to me like the easiest way to handle that is by making pgd_alloc/free pv-ops and doing the appropriate thing in the Xen code. Would need to sort out the vmalloc mapping...
2007 Mar 16
4
Re: Fwd: Re: struct page field arrangement
Btw., another question that made me wonder already when doing the original patch: why is it that x86-64 properly uses locking for mm_pin_all(), yet i386 doesn''t need to? Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
2008 Mar 17
1
Running CentOS 4.6 domUs on CentOS 5.1 dom0 and domUs crash
...0 00000001 000000d0 c1a1b080 0000000c c19fde08 c19fdd80 c0141f2e c19fdd80 Call Trace: [<c0141bbd>] cache_init_objs+0x35/0x56 [<c0141d3f>] cache_grow+0xfb/0x187 [<c0141f2e>] cache_alloc_refill+0x163/0x19c [<c0142149>] kmem_cache_alloc+0x67/0x97 [<c0111671>] pgd_alloc+0x17/0x336 [<c01199d4>] mm_init+0xd7/0x116 [<c01199e4>] mm_init+0xe7/0x116 [<c0119a3d>] mm_alloc+0x2a/0x31 [<c0163097>] do_execve+0x82/0x210 [<c0105d79>] sys_execve+0x2c/0x8e [<c010737f>] syscall_call+0x7/0xb Code: 74 02 66 a5 a8 01 74 01 a4 5e 5b 5e 5f c3...
2008 Mar 17
1
Running CentOS 4.6 domUs on CentOS 5.1 dom0 and domUs crash
...0 00000001 000000d0 c1a1b080 0000000c c19fde08 c19fdd80 c0141f2e c19fdd80 Call Trace: [<c0141bbd>] cache_init_objs+0x35/0x56 [<c0141d3f>] cache_grow+0xfb/0x187 [<c0141f2e>] cache_alloc_refill+0x163/0x19c [<c0142149>] kmem_cache_alloc+0x67/0x97 [<c0111671>] pgd_alloc+0x17/0x336 [<c01199d4>] mm_init+0xd7/0x116 [<c01199e4>] mm_init+0xe7/0x116 [<c0119a3d>] mm_alloc+0x2a/0x31 [<c0163097>] do_execve+0x82/0x210 [<c0105d79>] sys_execve+0x2c/0x8e [<c010737f>] syscall_call+0x7/0xb Code: 74 02 66 a5 a8 01 74 01 a4 5e 5b 5e 5f c3...
2006 May 09
5
ParaGuest cannot see 30GB memory
Hi, I have buit Xen (32 bit) with PAE and can start multiple Paraguests with 4 gig memory, but cannot launch a single VM with more than 4 gb memory. I would like to launch 1 VM with 30GB or so memory. Are there any config paramters like kernel,/inittrd that need to be changed. I have the ramdisk set to the initrd I used to boot xen with PAE. Thanks - padma
2023 Feb 07
1
[PATCH v2] x86/paravirt: merge activate_mm and dup_mmap callbacks
...t_enter_mmap(struct mm_struct *next) { - PVOP_VCALL2(mmu.activate_mm, prev, next); -} - -static inline void paravirt_arch_dup_mmap(struct mm_struct *oldmm, - struct mm_struct *mm) -{ - PVOP_VCALL2(mmu.dup_mmap, oldmm, mm); + PVOP_VCALL1(mmu.enter_mmap, next); } static inline int paravirt_pgd_alloc(struct mm_struct *mm) @@ -787,8 +780,7 @@ extern void default_banner(void); #ifndef __ASSEMBLY__ #ifndef CONFIG_PARAVIRT_XXL -static inline void paravirt_arch_dup_mmap(struct mm_struct *oldmm, - struct mm_struct *mm) +static inline void paravirt_enter_mmap(struct mm_struct *mm) { } #en...
2007 Apr 18
1
[PATCH 1/5] Add pagetable allocation notifiers
...6 +228,7 @@ void pgd_dtor(void *pgd, kmem_cache_t *c { unsigned long flags; /* can be called from interrupt context */ + ClearPagePDE(virt_to_page(pgd)); spin_lock_irqsave(&pgd_lock, flags); pgd_list_del(pgd); spin_unlock_irqrestore(&pgd_lock, flags); @@ -244,13 +246,16 @@ pgd_t *pgd_alloc(struct mm_struct *mm) pmd_t *pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL); if (!pmd) goto out_oom; + SetPagePDE(virt_to_page(pmd)); set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); } return pgd; out_oom: - for (i--; i >= 0; i--) + for (i--; i >= 0; i--) { + ClearPagePDE(pfn_...
2007 Apr 18
1
[PATCH 1/5] Add pagetable allocation notifiers
...6 +228,7 @@ void pgd_dtor(void *pgd, kmem_cache_t *c { unsigned long flags; /* can be called from interrupt context */ + ClearPagePDE(virt_to_page(pgd)); spin_lock_irqsave(&pgd_lock, flags); pgd_list_del(pgd); spin_unlock_irqrestore(&pgd_lock, flags); @@ -244,13 +246,16 @@ pgd_t *pgd_alloc(struct mm_struct *mm) pmd_t *pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL); if (!pmd) goto out_oom; + SetPagePDE(virt_to_page(pmd)); set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); } return pgd; out_oom: - for (i--; i >= 0; i--) + for (i--; i >= 0; i--) { + ClearPagePDE(pfn_...
2007 Apr 18
0
[PATCH 2/2] Use page present for pae pdpes
...rs Index: linux-2.6.13/arch/i386/mm/pgtable.c =================================================================== --- linux-2.6.13.orig/arch/i386/mm/pgtable.c 2005-08-31 14:48:17.000000000 -0700 +++ linux-2.6.13/arch/i386/mm/pgtable.c 2005-08-31 14:48:53.000000000 -0700 @@ -247,14 +247,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm) if (!pmd) goto out_oom; SetPagePDE(virt_to_page(pmd)); - set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); + set_pgd(&pgd[i], __pgd(_PAGE_PRESENT | __pa(pmd))); } return pgd; out_oom: for (i--; i >= 0; i--) { ClearPagePDE(pfn_to_page(pgd_val(pgd[i]) &g...
2007 Apr 18
0
[PATCH 2/2] Use page present for pae pdpes
...rs Index: linux-2.6.13/arch/i386/mm/pgtable.c =================================================================== --- linux-2.6.13.orig/arch/i386/mm/pgtable.c 2005-08-31 14:48:17.000000000 -0700 +++ linux-2.6.13/arch/i386/mm/pgtable.c 2005-08-31 14:48:53.000000000 -0700 @@ -247,14 +247,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm) if (!pmd) goto out_oom; SetPagePDE(virt_to_page(pmd)); - set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); + set_pgd(&pgd[i], __pgd(_PAGE_PRESENT | __pa(pmd))); } return pgd; out_oom: for (i--; i >= 0; i--) { ClearPagePDE(pfn_to_page(pgd_val(pgd[i]) &g...
2007 Apr 18
0
[PATCH 1/5] Paravirt page alloc.patch
...d_dtor(void *pgd, kmem_cache_t *c { unsigned long flags; /* can be called from interrupt context */ + paravirt_release_pd(__pa(pgd) >> PAGE_SHIFT); spin_lock_irqsave(&pgd_lock, flags); pgd_list_del(pgd); spin_unlock_irqrestore(&pgd_lock, flags); @@ -274,13 +281,18 @@ pgd_t *pgd_alloc(struct mm_struct *mm) pmd_t *pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL); if (!pmd) goto out_oom; + paravirt_alloc_pd(__pa(pmd) >> PAGE_SHIFT); set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); } return pgd; out_oom: - for (i--; i >= 0; i--) - kmem_cache_free(pmd_cache, (...
2007 Apr 18
0
[PATCH 1/5] Paravirt page alloc.patch
...d_dtor(void *pgd, kmem_cache_t *c { unsigned long flags; /* can be called from interrupt context */ + paravirt_release_pd(__pa(pgd) >> PAGE_SHIFT); spin_lock_irqsave(&pgd_lock, flags); pgd_list_del(pgd); spin_unlock_irqrestore(&pgd_lock, flags); @@ -274,13 +281,18 @@ pgd_t *pgd_alloc(struct mm_struct *mm) pmd_t *pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL); if (!pmd) goto out_oom; + paravirt_alloc_pd(__pa(pmd) >> PAGE_SHIFT); set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); } return pgd; out_oom: - for (i--; i >= 0; i--) - kmem_cache_free(pmd_cache, (...
2015 Nov 17
1
[PATCH] paravirt: remove paravirt ops pmd_update_defer and pte_update_defer
...b/arch/x86/xen/mmu.c index ac161db..896dc14 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -2436,7 +2436,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { .flush_tlb_others = xen_flush_tlb_others, .pte_update = paravirt_nop, - .pte_update_defer = paravirt_nop, .pgd_alloc = xen_pgd_alloc, .pgd_free = xen_pgd_free, -- 2.6.2
2015 Nov 17
1
[PATCH] paravirt: remove paravirt ops pmd_update_defer and pte_update_defer
...b/arch/x86/xen/mmu.c index ac161db..896dc14 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -2436,7 +2436,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { .flush_tlb_others = xen_flush_tlb_others, .pte_update = paravirt_nop, - .pte_update_defer = paravirt_nop, .pgd_alloc = xen_pgd_alloc, .pgd_free = xen_pgd_free, -- 2.6.2
2015 Nov 17
0
[PATCH] paravirt: remove paravirt ops pmd_update[_defer] and pte_update_defer
...b/arch/x86/xen/mmu.c index ac161db..896dc14 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -2436,7 +2436,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { .flush_tlb_others = xen_flush_tlb_others, .pte_update = paravirt_nop, - .pte_update_defer = paravirt_nop, .pgd_alloc = xen_pgd_alloc, .pgd_free = xen_pgd_free, -- 2.6.2
2015 Nov 17
0
[PATCH] paravirt: remove paravirt ops pmd_update[_defer] and pte_update_defer
...b/arch/x86/xen/mmu.c index ac161db..896dc14 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -2436,7 +2436,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { .flush_tlb_others = xen_flush_tlb_others, .pte_update = paravirt_nop, - .pte_update_defer = paravirt_nop, .pgd_alloc = xen_pgd_alloc, .pgd_free = xen_pgd_free, -- 2.6.2
2007 Apr 18
0
[PATCH 1/6] Page allocation hooks for VMI backend
...d_dtor(void *pgd, kmem_cache_t *c { unsigned long flags; /* can be called from interrupt context */ + paravirt_release_pd(__pa(pgd) >> PAGE_SHIFT); spin_lock_irqsave(&pgd_lock, flags); pgd_list_del(pgd); spin_unlock_irqrestore(&pgd_lock, flags); @@ -274,13 +281,18 @@ pgd_t *pgd_alloc(struct mm_struct *mm) pmd_t *pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL); if (!pmd) goto out_oom; + paravirt_alloc_pd(__pa(pmd) >> PAGE_SHIFT); set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); } return pgd; out_oom: - for (i--; i >= 0; i--) - kmem_cache_free(pmd_cache, (...
2007 Apr 18
0
[PATCH 1/6] Page allocation hooks for VMI backend
...d_dtor(void *pgd, kmem_cache_t *c { unsigned long flags; /* can be called from interrupt context */ + paravirt_release_pd(__pa(pgd) >> PAGE_SHIFT); spin_lock_irqsave(&pgd_lock, flags); pgd_list_del(pgd); spin_unlock_irqrestore(&pgd_lock, flags); @@ -274,13 +281,18 @@ pgd_t *pgd_alloc(struct mm_struct *mm) pmd_t *pmd = kmem_cache_alloc(pmd_cache, GFP_KERNEL); if (!pmd) goto out_oom; + paravirt_alloc_pd(__pa(pmd) >> PAGE_SHIFT); set_pgd(&pgd[i], __pgd(1 + __pa(pmd))); } return pgd; out_oom: - for (i--; i >= 0; i--) - kmem_cache_free(pmd_cache, (...
2015 Mar 30
2
[PATCH 0/9] qspinlock stuff -v15
...cess_callbacks |--2.93%-- __pte_alloc |--2.68%-- __drain_alien_cache |--2.56%-- ext4_do_update_inode |--2.54%-- try_to_wake_up |--2.46%-- pgd_free |--2.32%-- cache_alloc_refill |--2.32%-- pgd_alloc |--2.32%-- free_pcppages_bulk |--1.88%-- do_wp_page |--1.77%-- handle_pte_fault |--1.58%-- do_anonymous_page |--1.56%-- rmqueue_bulk.clone.0 |--1.35%-- copy_pte_range |--1.25%-- zap_pte_r...