* [patch 08/26] Xen-paravirt_ops: add hooks to intercept mm creation and destruction [not found] <20070227081337.434798469@goop.org> @ 2007-02-27 8:13 ` Jeremy Fitzhardinge 2007-02-27 8:13 ` [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations Jeremy Fitzhardinge 1 sibling, 0 replies; 11+ messages in thread From: Jeremy Fitzhardinge @ 2007-02-27 8:13 UTC (permalink / raw) To: Andi Kleen Cc: Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch [-- Attachment #1: mm-lifetime-hooks.patch --] [-- Type: text/plain, Size: 4176 bytes --] Add hooks to allow a paravirt implementation to track the lifetime of an mm. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Cc: linux-arch@vger.kernel.org --- arch/i386/kernel/paravirt.c | 4 ++++ include/asm-i386/mmu_context.h | 8 ++++++-- include/asm-i386/paravirt.h | 25 +++++++++++++++++++++++++ include/linux/sched.h | 6 ++++++ kernel/fork.c | 2 ++ mm/mmap.c | 3 +++ 6 files changed, 46 insertions(+), 2 deletions(-) =================================================================== --- a/arch/i386/kernel/paravirt.c +++ b/arch/i386/kernel/paravirt.c @@ -700,6 +700,10 @@ struct paravirt_ops paravirt_ops = { .irq_enable_sysexit = native_irq_enable_sysexit, .iret = native_iret, + .dup_mmap = paravirt_nop, + .exit_mmap = paravirt_nop, + .activate_mm = paravirt_nop, + .startup_ipi_hook = paravirt_nop, }; =================================================================== --- a/include/asm-i386/mmu_context.h +++ b/include/asm-i386/mmu_context.h @@ -5,6 +5,7 @@ #include <asm/atomic.h> #include <asm/pgalloc.h> #include <asm/tlbflush.h> +#include <asm/paravirt.h> /* * Used for LDT copy/destruction. @@ -65,7 +66,10 @@ static inline void switch_mm(struct mm_s #define deactivate_mm(tsk, mm) \ asm("movl %0,%%gs": :"r" (0)); -#define activate_mm(prev, next) \ - switch_mm((prev),(next),NULL) +#define activate_mm(prev, next) \ + do { \ + arch_activate_mm(prev, next); \ + switch_mm((prev),(next),NULL); \ + } while(0); #endif =================================================================== --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h @@ -123,6 +123,12 @@ struct paravirt_ops void (*io_delay)(void); void (*const_udelay)(unsigned long loops); + void (*activate_mm)(struct mm_struct *prev, + struct mm_struct *next); + void (*dup_mmap)(struct mm_struct *oldmm, + struct mm_struct *mm); + void (*exit_mmap)(struct mm_struct *mm); + #ifdef CONFIG_X86_LOCAL_APIC void (*apic_write)(unsigned long reg, unsigned long v); void (*apic_write_atomic)(unsigned long reg, unsigned long v); @@ -426,6 +432,24 @@ static inline void startup_ipi_hook(int } #endif +#define __HAVE_ARCH_MM_LIFETIME +static inline void arch_activate_mm(struct mm_struct *prev, + struct mm_struct *next) +{ + paravirt_ops.activate_mm(prev, next); +} + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ + paravirt_ops.dup_mmap(oldmm, mm); +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ + paravirt_ops.exit_mmap(mm); +} + #define __flush_tlb() paravirt_ops.flush_tlb_user() #define __flush_tlb_global() paravirt_ops.flush_tlb_kernel() #define __flush_tlb_single(addr) paravirt_ops.flush_tlb_single(addr) @@ -673,5 +697,6 @@ static inline void paravirt_pagetable_se set_pgd(&base[0], base[USER_PTRS_PER_PGD]); #endif } + #endif /* CONFIG_PARAVIRT */ #endif /* __ASM_PARAVIRT_H */ =================================================================== --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -374,6 +374,12 @@ struct mm_struct { rwlock_t ioctx_list_lock; struct kioctx *ioctx_list; }; + +#ifndef __HAVE_ARCH_MM_LIFETIME +#define arch_activate_mm(prev, next) do {} while(0) +#define arch_dup_mmap(oldmm, mm) do {} while(0) +#define arch_exit_mmap(mm) do {} while(0) +#endif struct sighand_struct { atomic_t count; =================================================================== --- a/kernel/fork.c +++ b/kernel/fork.c @@ -286,6 +286,8 @@ static inline int dup_mmap(struct mm_str if (retval) goto out; } + /* a new mm has just been created */ + arch_dup_mmap(oldmm, mm); retval = 0; out: up_write(&mm->mmap_sem); =================================================================== --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1976,6 +1976,9 @@ void exit_mmap(struct mm_struct *mm) struct vm_area_struct *vma = mm->mmap; unsigned long nr_accounted = 0; unsigned long end; + + /* mm's last user has gone, and its about to be pulled down */ + arch_exit_mmap(mm); lru_add_drain(); flush_cache_mm(mm); -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations [not found] <20070227081337.434798469@goop.org> 2007-02-27 8:13 ` [patch 08/26] Xen-paravirt_ops: add hooks to intercept mm creation and destruction Jeremy Fitzhardinge @ 2007-02-27 8:13 ` Jeremy Fitzhardinge 2007-02-27 15:15 ` James Bottomley 1 sibling, 1 reply; 11+ messages in thread From: Jeremy Fitzhardinge @ 2007-02-27 8:13 UTC (permalink / raw) To: Andi Kleen Cc: Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch [-- Attachment #1: kill-HAVE_ARCH_MM_LIFETIME.patch --] [-- Type: text/plain, Size: 14420 bytes --] akpm: > Can we lose __HAVE_ARCH_MM_LIFETIME? Just define these (preferably in C, > not in cpp) in the appropriate include/asm-foo/ files? Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Cc: linux-arch@vger.kernel.org --- include/asm-alpha/mmu_context.h | 9 +++++++++ include/asm-arm/mmu_context.h | 9 +++++++++ include/asm-arm26/mmu_context.h | 9 +++++++++ include/asm-avr32/mmu_context.h | 9 +++++++++ include/asm-cris/mmu_context.h | 8 ++++++++ include/asm-frv/mmu_context.h | 8 ++++++++ include/asm-h8300/mmu_context.h | 8 ++++++++ include/asm-i386/mmu_context.h | 2 +- include/asm-i386/paravirt.h | 18 +++++++++++++++--- include/asm-ia64/mmu_context.h | 8 ++++++++ include/asm-m32r/mmu_context.h | 8 ++++++++ include/asm-m68k/mmu_context.h | 8 ++++++++ include/asm-m68knommu/mmu_context.h | 8 ++++++++ include/asm-mips/mmu_context.h | 8 ++++++++ include/asm-parisc/mmu_context.h | 9 +++++++++ include/asm-powerpc/mmu_context.h | 10 ++++++++++ include/asm-ppc/mmu_context.h | 9 +++++++++ include/asm-s390/mmu_context.h | 8 ++++++++ include/asm-sh/mmu_context.h | 8 ++++++++ include/asm-sh64/mmu_context.h | 8 ++++++++ include/asm-sparc/mmu_context.h | 8 ++++++++ include/asm-sparc64/mmu_context.h | 8 ++++++++ include/asm-um/mmu_context.h | 8 ++++++++ include/asm-v850/mmu_context.h | 8 ++++++++ include/asm-x86_64/mmu_context.h | 8 ++++++++ include/asm-xtensa/mmu_context.h | 9 +++++++++ include/linux/sched.h | 6 ------ mm/mmap.c | 1 + 28 files changed, 218 insertions(+), 10 deletions(-) =================================================================== --- a/include/asm-alpha/mmu_context.h +++ b/include/asm-alpha/mmu_context.h @@ -256,4 +256,13 @@ enter_lazy_tlb(struct mm_struct *mm, str #undef __MMU_EXTERN_INLINE #endif +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __ALPHA_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-arm/mmu_context.h +++ b/include/asm-arm/mmu_context.h @@ -108,4 +108,13 @@ switch_mm(struct mm_struct *prev, struct #define deactivate_mm(tsk,mm) do { } while (0) #define activate_mm(prev,next) switch_mm(prev, next, NULL) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif =================================================================== --- a/include/asm-arm26/mmu_context.h +++ b/include/asm-arm26/mmu_context.h @@ -48,4 +48,13 @@ static inline void activate_mm(struct mm cpu_switch_mm(next->pgd, next); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif =================================================================== --- a/include/asm-avr32/mmu_context.h +++ b/include/asm-avr32/mmu_context.h @@ -145,4 +145,13 @@ static inline void disable_mmu(void) sysreg_write(MMUCR, SYSREG_BIT(MMUCR_S)); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __ASM_AVR32_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-cris/mmu_context.h +++ b/include/asm-cris/mmu_context.h @@ -21,4 +21,12 @@ static inline void enter_lazy_tlb(struct { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-frv/mmu_context.h +++ b/include/asm-frv/mmu_context.h @@ -46,4 +46,12 @@ do { \ do { \ } while(0) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-h8300/mmu_context.h +++ b/include/asm-h8300/mmu_context.h @@ -28,4 +28,12 @@ static inline void activate_mm(struct mm { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-i386/mmu_context.h +++ b/include/asm-i386/mmu_context.h @@ -68,7 +68,7 @@ static inline void switch_mm(struct mm_s #define activate_mm(prev, next) \ do { \ - arch_activate_mm(prev, next); \ + paravirt_activate_mm(prev, next); \ switch_mm((prev),(next),NULL); \ } while(0); =================================================================== --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h @@ -432,9 +432,8 @@ static inline void startup_ipi_hook(int } #endif -#define __HAVE_ARCH_MM_LIFETIME -static inline void arch_activate_mm(struct mm_struct *prev, - struct mm_struct *next) +static inline void paravirt_activate_mm(struct mm_struct *prev, + struct mm_struct *next) { paravirt_ops.activate_mm(prev, next); } @@ -695,5 +694,18 @@ static inline void paravirt_pagetable_se #endif } +static inline void paravirt_activate_mm(struct mm_struct *prev, + struct mm_struct *next) +{ +} + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* CONFIG_PARAVIRT */ #endif /* __ASM_PARAVIRT_H */ =================================================================== --- a/include/asm-ia64/mmu_context.h +++ b/include/asm-ia64/mmu_context.h @@ -197,5 +197,13 @@ activate_mm (struct mm_struct *prev, str #define switch_mm(prev_mm,next_mm,next_task) activate_mm(prev_mm, next_mm) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} # endif /* ! __ASSEMBLY__ */ #endif /* _ASM_IA64_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-m32r/mmu_context.h +++ b/include/asm-m32r/mmu_context.h @@ -157,6 +157,14 @@ static inline void switch_mm(struct mm_s #define enter_lazy_tlb(mm,tsk) do { } while (0) #endif /* not CONFIG_MMU */ +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* not __ASSEMBLY__ */ #endif /* __KERNEL__ */ =================================================================== --- a/include/asm-m68k/mmu_context.h +++ b/include/asm-m68k/mmu_context.h @@ -149,5 +149,13 @@ static inline void activate_mm(struct mm activate_context(next_mm); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif #endif =================================================================== --- a/include/asm-m68knommu/mmu_context.h +++ b/include/asm-m68knommu/mmu_context.h @@ -29,4 +29,12 @@ static inline void activate_mm(struct mm { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-mips/mmu_context.h +++ b/include/asm-mips/mmu_context.h @@ -293,4 +293,12 @@ drop_mmu_context(struct mm_struct *mm, u local_irq_restore(flags); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* _ASM_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-parisc/mmu_context.h +++ b/include/asm-parisc/mmu_context.h @@ -70,4 +70,13 @@ static inline void activate_mm(struct mm switch_mm(prev,next,current); } + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-powerpc/mmu_context.h +++ b/include/asm-powerpc/mmu_context.h @@ -80,5 +80,15 @@ static inline void activate_mm(struct mm } #endif /* CONFIG_PPC64 */ + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __KERNEL__ */ #endif /* __ASM_POWERPC_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-ppc/mmu_context.h +++ b/include/asm-ppc/mmu_context.h @@ -197,5 +197,14 @@ static inline void switch_mm(struct mm_s extern void mmu_context_init(void); +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __PPC_MMU_CONTEXT_H */ #endif /* __KERNEL__ */ =================================================================== --- a/include/asm-s390/mmu_context.h +++ b/include/asm-s390/mmu_context.h @@ -67,4 +67,12 @@ static inline void activate_mm(struct mm set_fs(current->thread.mm_segment); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __S390_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-sh/mmu_context.h +++ b/include/asm-sh/mmu_context.h @@ -214,5 +214,13 @@ static inline void disable_mmu(void) #define disable_mmu() do { BUG(); } while (0) #endif +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __KERNEL__ */ #endif /* __ASM_SH_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-sh64/mmu_context.h +++ b/include/asm-sh64/mmu_context.h @@ -203,6 +203,14 @@ enter_lazy_tlb(struct mm_struct *mm, str { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __ASSEMBLY__ */ #endif /* __ASM_SH64_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-sparc/mmu_context.h +++ b/include/asm-sparc/mmu_context.h @@ -35,6 +35,14 @@ BTFIXUPDEF_CALL(void, switch_mm, struct /* Activate a new MM instance for the current task. */ #define activate_mm(active_mm, mm) switch_mm((active_mm), (mm), NULL) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC_MMU_CONTEXT_H) */ =================================================================== --- a/include/asm-sparc64/mmu_context.h +++ b/include/asm-sparc64/mmu_context.h @@ -147,6 +147,14 @@ static inline void activate_mm(struct mm spin_unlock_irqrestore(&mm->context.lock, flags); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC64_MMU_CONTEXT_H) */ =================================================================== --- a/include/asm-um/mmu_context.h +++ b/include/asm-um/mmu_context.h @@ -74,6 +74,14 @@ static inline void destroy_context(struc CHOOSE_MODE((void) 0, destroy_context_skas(mm)); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* =================================================================== --- a/include/asm-v850/mmu_context.h +++ b/include/asm-v850/mmu_context.h @@ -8,4 +8,12 @@ #define activate_mm(prev,next) ((void)0) #define enter_lazy_tlb(mm,tsk) ((void)0) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __V850_MMU_CONTEXT_H__ */ =================================================================== --- a/include/asm-x86_64/mmu_context.h +++ b/include/asm-x86_64/mmu_context.h @@ -69,5 +69,13 @@ static inline void switch_mm(struct mm_s #define activate_mm(prev, next) \ switch_mm((prev),(next),NULL) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-xtensa/mmu_context.h +++ b/include/asm-xtensa/mmu_context.h @@ -131,4 +131,13 @@ static inline void enter_lazy_tlb(struct } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* _XTENSA_MMU_CONTEXT_H */ =================================================================== --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -374,12 +374,6 @@ struct mm_struct { rwlock_t ioctx_list_lock; struct kioctx *ioctx_list; }; - -#ifndef __HAVE_ARCH_MM_LIFETIME -#define arch_activate_mm(prev, next) do {} while(0) -#define arch_dup_mmap(oldmm, mm) do {} while(0) -#define arch_exit_mmap(mm) do {} while(0) -#endif struct sighand_struct { atomic_t count; =================================================================== --- a/mm/mmap.c +++ b/mm/mmap.c @@ -29,6 +29,7 @@ #include <asm/uaccess.h> #include <asm/cacheflush.h> #include <asm/tlb.h> +#include <asm/mmu_context.h> #ifndef arch_mmap_check #define arch_mmap_check(addr, len, flags) (0) -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 8:13 ` [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations Jeremy Fitzhardinge @ 2007-02-27 15:15 ` James Bottomley 2007-02-27 17:21 ` Jeremy Fitzhardinge 0 siblings, 1 reply; 11+ messages in thread From: James Bottomley @ 2007-02-27 15:15 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch On Tue, 2007-02-27 at 00:13 -0800, Jeremy Fitzhardinge wrote: > plain text document attachment (kill-HAVE_ARCH_MM_LIFETIME.patch) > akpm: > > Can we lose __HAVE_ARCH_MM_LIFETIME? Just define these (preferably in C, > > not in cpp) in the appropriate include/asm-foo/ files? > > Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> > Cc: linux-arch@vger.kernel.org > > --- > include/asm-alpha/mmu_context.h | 9 +++++++++ > include/asm-arm/mmu_context.h | 9 +++++++++ > include/asm-arm26/mmu_context.h | 9 +++++++++ > include/asm-avr32/mmu_context.h | 9 +++++++++ > include/asm-cris/mmu_context.h | 8 ++++++++ > include/asm-frv/mmu_context.h | 8 ++++++++ > include/asm-h8300/mmu_context.h | 8 ++++++++ > include/asm-i386/mmu_context.h | 2 +- > include/asm-i386/paravirt.h | 18 +++++++++++++++--- > include/asm-ia64/mmu_context.h | 8 ++++++++ > include/asm-m32r/mmu_context.h | 8 ++++++++ > include/asm-m68k/mmu_context.h | 8 ++++++++ > include/asm-m68knommu/mmu_context.h | 8 ++++++++ > include/asm-mips/mmu_context.h | 8 ++++++++ > include/asm-parisc/mmu_context.h | 9 +++++++++ > include/asm-powerpc/mmu_context.h | 10 ++++++++++ > include/asm-ppc/mmu_context.h | 9 +++++++++ > include/asm-s390/mmu_context.h | 8 ++++++++ > include/asm-sh/mmu_context.h | 8 ++++++++ > include/asm-sh64/mmu_context.h | 8 ++++++++ > include/asm-sparc/mmu_context.h | 8 ++++++++ > include/asm-sparc64/mmu_context.h | 8 ++++++++ > include/asm-um/mmu_context.h | 8 ++++++++ > include/asm-v850/mmu_context.h | 8 ++++++++ > include/asm-x86_64/mmu_context.h | 8 ++++++++ > include/asm-xtensa/mmu_context.h | 9 +++++++++ > include/linux/sched.h | 6 ------ > mm/mmap.c | 1 + > 28 files changed, 218 insertions(+), 10 deletions(-) Wouldn't it be a lot easier to do this via asm-generic? James ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 15:15 ` James Bottomley @ 2007-02-27 17:21 ` Jeremy Fitzhardinge 2007-02-27 17:35 ` James Bottomley 0 siblings, 1 reply; 11+ messages in thread From: Jeremy Fitzhardinge @ 2007-02-27 17:21 UTC (permalink / raw) To: James Bottomley Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch James Bottomley wrote: > On Tue, 2007-02-27 at 00:13 -0800, Jeremy Fitzhardinge wrote: > >> plain text document attachment (kill-HAVE_ARCH_MM_LIFETIME.patch) >> akpm: >> >>> Can we lose __HAVE_ARCH_MM_LIFETIME? Just define these (preferably in C, >>> not in cpp) in the appropriate include/asm-foo/ files? >>> >> Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> >> Cc: linux-arch@vger.kernel.org >> >> --- >> include/asm-alpha/mmu_context.h | 9 +++++++++ >> include/asm-arm/mmu_context.h | 9 +++++++++ >> include/asm-arm26/mmu_context.h | 9 +++++++++ >> include/asm-avr32/mmu_context.h | 9 +++++++++ >> include/asm-cris/mmu_context.h | 8 ++++++++ >> include/asm-frv/mmu_context.h | 8 ++++++++ >> include/asm-h8300/mmu_context.h | 8 ++++++++ >> include/asm-i386/mmu_context.h | 2 +- >> include/asm-i386/paravirt.h | 18 +++++++++++++++--- >> include/asm-ia64/mmu_context.h | 8 ++++++++ >> include/asm-m32r/mmu_context.h | 8 ++++++++ >> include/asm-m68k/mmu_context.h | 8 ++++++++ >> include/asm-m68knommu/mmu_context.h | 8 ++++++++ >> include/asm-mips/mmu_context.h | 8 ++++++++ >> include/asm-parisc/mmu_context.h | 9 +++++++++ >> include/asm-powerpc/mmu_context.h | 10 ++++++++++ >> include/asm-ppc/mmu_context.h | 9 +++++++++ >> include/asm-s390/mmu_context.h | 8 ++++++++ >> include/asm-sh/mmu_context.h | 8 ++++++++ >> include/asm-sh64/mmu_context.h | 8 ++++++++ >> include/asm-sparc/mmu_context.h | 8 ++++++++ >> include/asm-sparc64/mmu_context.h | 8 ++++++++ >> include/asm-um/mmu_context.h | 8 ++++++++ >> include/asm-v850/mmu_context.h | 8 ++++++++ >> include/asm-x86_64/mmu_context.h | 8 ++++++++ >> include/asm-xtensa/mmu_context.h | 9 +++++++++ >> include/linux/sched.h | 6 ------ >> mm/mmap.c | 1 + >> 28 files changed, 218 insertions(+), 10 deletions(-) >> > > Wouldn't it be a lot easier to do this via asm-generic? > You mean add the two stubs to asm-generic/mmu_context.h, and then include that in all these files? That would be cleaner, but it wouldn't remove the need to touch all these files, would it? J ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 17:21 ` Jeremy Fitzhardinge @ 2007-02-27 17:35 ` James Bottomley 2007-02-27 17:56 ` Jeremy Fitzhardinge 0 siblings, 1 reply; 11+ messages in thread From: James Bottomley @ 2007-02-27 17:35 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch On Tue, 2007-02-27 at 09:21 -0800, Jeremy Fitzhardinge wrote: > You mean add the two stubs to asm-generic/mmu_context.h, and then > include that in all these files? That would be cleaner, but it > wouldn't > remove the need to touch all these files, would it? it would if you added asm-generic/mmu_context_paravirt.h and only included that in the main kernel files that need the three operations (that's just fork.c and mmap.c, isn't it)? James ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 17:35 ` James Bottomley @ 2007-02-27 17:56 ` Jeremy Fitzhardinge 2007-02-27 18:04 ` James Bottomley 0 siblings, 1 reply; 11+ messages in thread From: Jeremy Fitzhardinge @ 2007-02-27 17:56 UTC (permalink / raw) To: James Bottomley Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch James Bottomley wrote: > On Tue, 2007-02-27 at 09:21 -0800, Jeremy Fitzhardinge wrote: > >> You mean add the two stubs to asm-generic/mmu_context.h, and then >> include that in all these files? That would be cleaner, but it >> wouldn't >> remove the need to touch all these files, would it? >> > > it would if you added asm-generic/mmu_context_paravirt.h > include/asm-generic isn't in the compile include path; its contents are only ever used if they're explicitly included by some other asm/ header. I seem to remember there was some debate about this, but I don't really understand the rationale for the current arrangement; it makes sense to me to have asm-generic as a set of fallback default includes. > and only included that in the main kernel files that need the three > operations (that's just fork.c and mmap.c, isn't it)? > Yeah, it's really only two operations. activate_mm happens in arch code anyway, so there's no need to make a fuss about it. J ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 17:56 ` Jeremy Fitzhardinge @ 2007-02-27 18:04 ` James Bottomley 2007-02-27 18:48 ` Jeremy Fitzhardinge 0 siblings, 1 reply; 11+ messages in thread From: James Bottomley @ 2007-02-27 18:04 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch On Tue, 2007-02-27 at 09:56 -0800, Jeremy Fitzhardinge wrote: > include/asm-generic isn't in the compile include path; its contents are > only ever used if they're explicitly included by some other asm/ > header. I seem to remember there was some debate about this, but I > don't really understand the rationale for the current arrangement; it > makes sense to me to have asm-generic as a set of fallback default includes. Yes ... I forgot about that ... we'd need an asm/mmu_context_paravirt.h on every arch. I suppose this is just me being lazy ... I'm currently doing a bit of a rewrite in asm-parisc/mmu_context.h and I didn't want a massive merge conflict. James ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 18:04 ` James Bottomley @ 2007-02-27 18:48 ` Jeremy Fitzhardinge 2007-02-27 18:53 ` James Bottomley 0 siblings, 1 reply; 11+ messages in thread From: Jeremy Fitzhardinge @ 2007-02-27 18:48 UTC (permalink / raw) To: James Bottomley Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch James Bottomley wrote: > Yes ... I forgot about that ... we'd need an asm/mmu_context_paravirt.h > on every arch. > Yep. And I'm not too keen on that name; one could imagine other uses for those hooks, even if they're being used for x86 paravirtualization in this instance. > I suppose this is just me being lazy ... I'm currently doing a bit of a > rewrite in asm-parisc/mmu_context.h and I didn't want a massive merge > conflict. > Well, I'm happy to create asm-generic/mm_hooks.h or something, and reduce all the changes to asm-*/mmu_context.h to a one-liner. J ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-02-27 18:48 ` Jeremy Fitzhardinge @ 2007-02-27 18:53 ` James Bottomley 0 siblings, 0 replies; 11+ messages in thread From: James Bottomley @ 2007-02-27 18:53 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch On Tue, 2007-02-27 at 10:48 -0800, Jeremy Fitzhardinge wrote: > Well, I'm happy to create asm-generic/mm_hooks.h or something, and > reduce all the changes to asm-*/mmu_context.h to a one-liner. If no-one else objects, that will certainly make my life easier, thanks! James ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20070301232443.195603797@goop.org>]
* [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations [not found] <20070301232443.195603797@goop.org> @ 2007-03-01 23:24 ` Jeremy Fitzhardinge 2007-03-16 9:27 ` Ingo Molnar 0 siblings, 1 reply; 11+ messages in thread From: Jeremy Fitzhardinge @ 2007-03-01 23:24 UTC (permalink / raw) To: Andi Kleen Cc: Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch, James Bottomley [-- Attachment #1: kill-HAVE_ARCH_MM_LIFETIME.patch --] [-- Type: text/plain, Size: 12359 bytes --] akpm: > Can we lose __HAVE_ARCH_MM_LIFETIME? Just define these (preferably in C, > not in cpp) in the appropriate include/asm-foo/ files? Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Cc: linux-arch@vger.kernel.org Cc: James Bottomley <James.Bottomley@SteelEye.com> --- include/asm-alpha/mmu_context.h | 1 + include/asm-arm/mmu_context.h | 1 + include/asm-arm26/mmu_context.h | 2 ++ include/asm-avr32/mmu_context.h | 1 + include/asm-cris/mmu_context.h | 2 ++ include/asm-frv/mmu_context.h | 1 + include/asm-generic/mm_hooks.h | 18 ++++++++++++++++++ include/asm-h8300/mmu_context.h | 1 + include/asm-i386/mmu_context.h | 11 ++++++++++- include/asm-i386/paravirt.h | 5 ++--- include/asm-ia64/mmu_context.h | 1 + include/asm-m32r/mmu_context.h | 1 + include/asm-m68k/mmu_context.h | 1 + include/asm-m68knommu/mmu_context.h | 1 + include/asm-mips/mmu_context.h | 1 + include/asm-parisc/mmu_context.h | 1 + include/asm-powerpc/mmu_context.h | 1 + include/asm-ppc/mmu_context.h | 1 + include/asm-s390/mmu_context.h | 2 ++ include/asm-sh/mmu_context.h | 1 + include/asm-sh64/mmu_context.h | 2 +- include/asm-sparc/mmu_context.h | 2 ++ include/asm-sparc64/mmu_context.h | 1 + include/asm-um/mmu_context.h | 2 ++ include/asm-v850/mmu_context.h | 2 ++ include/asm-x86_64/mmu_context.h | 1 + include/asm-xtensa/mmu_context.h | 1 + include/linux/sched.h | 6 ------ mm/mmap.c | 1 + 29 files changed, 61 insertions(+), 11 deletions(-) =================================================================== --- a/include/asm-alpha/mmu_context.h +++ b/include/asm-alpha/mmu_context.h @@ -10,6 +10,7 @@ #include <asm/system.h> #include <asm/machvec.h> #include <asm/compiler.h> +#include <asm-generic/mm_hooks.h> /* * Force a context reload. This is needed when we change the page =================================================================== --- a/include/asm-arm/mmu_context.h +++ b/include/asm-arm/mmu_context.h @@ -16,6 +16,7 @@ #include <linux/compiler.h> #include <asm/cacheflush.h> #include <asm/proc-fns.h> +#include <asm-generic/mm_hooks.h> void __check_kvm_seq(struct mm_struct *mm); =================================================================== --- a/include/asm-arm26/mmu_context.h +++ b/include/asm-arm26/mmu_context.h @@ -12,6 +12,8 @@ */ #ifndef __ASM_ARM_MMU_CONTEXT_H #define __ASM_ARM_MMU_CONTEXT_H + +#include <asm-generic/mm_hooks.h> #define init_new_context(tsk,mm) 0 #define destroy_context(mm) do { } while(0) =================================================================== --- a/include/asm-avr32/mmu_context.h +++ b/include/asm-avr32/mmu_context.h @@ -15,6 +15,7 @@ #include <asm/tlbflush.h> #include <asm/pgalloc.h> #include <asm/sysreg.h> +#include <asm-generic/mm_hooks.h> /* * The MMU "context" consists of two things: =================================================================== --- a/include/asm-cris/mmu_context.h +++ b/include/asm-cris/mmu_context.h @@ -1,5 +1,7 @@ #ifndef __CRIS_MMU_CONTEXT_H #define __CRIS_MMU_CONTEXT_H + +#include <asm-generic/mm_hooks.h> extern int init_new_context(struct task_struct *tsk, struct mm_struct *mm); extern void get_mmu_context(struct mm_struct *mm); =================================================================== --- a/include/asm-frv/mmu_context.h +++ b/include/asm-frv/mmu_context.h @@ -15,6 +15,7 @@ #include <asm/setup.h> #include <asm/page.h> #include <asm/pgalloc.h> +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- /dev/null +++ b/include/asm-generic/mm_hooks.h @@ -0,0 +1,18 @@ +/* + * Define generic no-op hooks for arch_dup_mmap and arch_exit_mmap, to + * be included in asm-FOO/mmu_context.h for any arch FOO which doesn't + * need to hook these. + */ +#ifndef _ASM_GENERIC_MM_HOOKS_H +#define _ASM_GENERIC_MM_HOOKS_H + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + +#endif /* _ASM_GENERIC_MM_HOOKS_H */ =================================================================== --- a/include/asm-h8300/mmu_context.h +++ b/include/asm-h8300/mmu_context.h @@ -4,6 +4,7 @@ #include <asm/setup.h> #include <asm/page.h> #include <asm/pgalloc.h> +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- a/include/asm-i386/mmu_context.h +++ b/include/asm-i386/mmu_context.h @@ -6,6 +6,15 @@ #include <asm/pgalloc.h> #include <asm/tlbflush.h> #include <asm/paravirt.h> +#ifndef CONFIG_PARAVIRT +#include <asm-generic/mm_hooks.h> + +static inline void paravirt_activate_mm(struct mm_struct *prev, + struct mm_struct *next) +{ +} +#endif /* !CONFIG_PARAVIRT */ + /* * Used for LDT copy/destruction. @@ -68,7 +77,7 @@ static inline void switch_mm(struct mm_s #define activate_mm(prev, next) \ do { \ - arch_activate_mm(prev, next); \ + paravirt_activate_mm(prev, next); \ switch_mm((prev),(next),NULL); \ } while(0); =================================================================== --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h @@ -403,9 +403,8 @@ static inline void startup_ipi_hook(int } #endif -#define __HAVE_ARCH_MM_LIFETIME -static inline void arch_activate_mm(struct mm_struct *prev, - struct mm_struct *next) +static inline void paravirt_activate_mm(struct mm_struct *prev, + struct mm_struct *next) { paravirt_ops.activate_mm(prev, next); } =================================================================== --- a/include/asm-ia64/mmu_context.h +++ b/include/asm-ia64/mmu_context.h @@ -29,6 +29,7 @@ #include <linux/spinlock.h> #include <asm/processor.h> +#include <asm-generic/mm_hooks.h> struct ia64_ctx { spinlock_t lock; =================================================================== --- a/include/asm-m32r/mmu_context.h +++ b/include/asm-m32r/mmu_context.h @@ -15,6 +15,7 @@ #include <asm/pgalloc.h> #include <asm/mmu.h> #include <asm/tlbflush.h> +#include <asm-generic/mm_hooks.h> /* * Cache of MMU context last used. =================================================================== --- a/include/asm-m68k/mmu_context.h +++ b/include/asm-m68k/mmu_context.h @@ -1,6 +1,7 @@ #ifndef __M68K_MMU_CONTEXT_H #define __M68K_MMU_CONTEXT_H +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- a/include/asm-m68knommu/mmu_context.h +++ b/include/asm-m68knommu/mmu_context.h @@ -4,6 +4,7 @@ #include <asm/setup.h> #include <asm/page.h> #include <asm/pgalloc.h> +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- a/include/asm-mips/mmu_context.h +++ b/include/asm-mips/mmu_context.h @@ -20,6 +20,7 @@ #include <asm/mipsmtregs.h> #include <asm/smtc.h> #endif /* SMTC */ +#include <asm-generic/mm_hooks.h> /* * For the fast tlb miss handlers, we keep a per cpu array of pointers =================================================================== --- a/include/asm-parisc/mmu_context.h +++ b/include/asm-parisc/mmu_context.h @@ -5,6 +5,7 @@ #include <asm/atomic.h> #include <asm/pgalloc.h> #include <asm/pgtable.h> +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- a/include/asm-powerpc/mmu_context.h +++ b/include/asm-powerpc/mmu_context.h @@ -10,6 +10,7 @@ #include <linux/mm.h> #include <asm/mmu.h> #include <asm/cputable.h> +#include <asm-generic/mm_hooks.h> /* * Copyright (C) 2001 PPC 64 Team, IBM Corp =================================================================== --- a/include/asm-ppc/mmu_context.h +++ b/include/asm-ppc/mmu_context.h @@ -6,6 +6,7 @@ #include <asm/bitops.h> #include <asm/mmu.h> #include <asm/cputable.h> +#include <asm-generic/mm_hooks.h> /* * On 32-bit PowerPC 6xx/7xx/7xxx CPUs, we use a set of 16 VSIDs =================================================================== --- a/include/asm-s390/mmu_context.h +++ b/include/asm-s390/mmu_context.h @@ -10,6 +10,8 @@ #define __S390_MMU_CONTEXT_H #include <asm/pgalloc.h> +#include <asm-generic/mm_hooks.h> + /* * get a new mmu context.. S390 don't know about contexts. */ =================================================================== --- a/include/asm-sh/mmu_context.h +++ b/include/asm-sh/mmu_context.h @@ -12,6 +12,7 @@ #include <asm/tlbflush.h> #include <asm/uaccess.h> #include <asm/io.h> +#include <asm-generic/mm_hooks.h> /* * The MMU "context" consists of two things: =================================================================== --- a/include/asm-sh64/mmu_context.h +++ b/include/asm-sh64/mmu_context.h @@ -27,7 +27,7 @@ extern unsigned long mmu_context_cache; extern unsigned long mmu_context_cache; #include <asm/page.h> - +#include <asm-generic/mm_hooks.h> /* Current mm's pgd */ extern pgd_t *mmu_pdtp_cache; =================================================================== --- a/include/asm-sparc/mmu_context.h +++ b/include/asm-sparc/mmu_context.h @@ -4,6 +4,8 @@ #include <asm/btfixup.h> #ifndef __ASSEMBLY__ + +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- a/include/asm-sparc64/mmu_context.h +++ b/include/asm-sparc64/mmu_context.h @@ -9,6 +9,7 @@ #include <linux/spinlock.h> #include <asm/system.h> #include <asm/spitfire.h> +#include <asm-generic/mm_hooks.h> static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { =================================================================== --- a/include/asm-um/mmu_context.h +++ b/include/asm-um/mmu_context.h @@ -5,6 +5,8 @@ #ifndef __UM_MMU_CONTEXT_H #define __UM_MMU_CONTEXT_H + +#include <asm-generic/mm_hooks.h> #include "linux/sched.h" #include "choose-mode.h" =================================================================== --- a/include/asm-v850/mmu_context.h +++ b/include/asm-v850/mmu_context.h @@ -1,5 +1,7 @@ #ifndef __V850_MMU_CONTEXT_H__ #define __V850_MMU_CONTEXT_H__ + +#include <asm-generic/mm_hooks.h> #define destroy_context(mm) ((void)0) #define init_new_context(tsk,mm) 0 =================================================================== --- a/include/asm-x86_64/mmu_context.h +++ b/include/asm-x86_64/mmu_context.h @@ -7,6 +7,7 @@ #include <asm/pda.h> #include <asm/pgtable.h> #include <asm/tlbflush.h> +#include <asm-generic/mm_hooks.h> /* * possibly do the LDT unload here? =================================================================== --- a/include/asm-xtensa/mmu_context.h +++ b/include/asm-xtensa/mmu_context.h @@ -18,6 +18,7 @@ #include <asm/pgtable.h> #include <asm/cacheflush.h> #include <asm/tlbflush.h> +#include <asm-generic/mm_hooks.h> #define XCHAL_MMU_ASID_BITS 8 =================================================================== --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -374,12 +374,6 @@ struct mm_struct { rwlock_t ioctx_list_lock; struct kioctx *ioctx_list; }; - -#ifndef __HAVE_ARCH_MM_LIFETIME -#define arch_activate_mm(prev, next) do {} while(0) -#define arch_dup_mmap(oldmm, mm) do {} while(0) -#define arch_exit_mmap(mm) do {} while(0) -#endif struct sighand_struct { atomic_t count; =================================================================== --- a/mm/mmap.c +++ b/mm/mmap.c @@ -29,6 +29,7 @@ #include <asm/uaccess.h> #include <asm/cacheflush.h> #include <asm/tlb.h> +#include <asm/mmu_context.h> #ifndef arch_mmap_check #define arch_mmap_check(addr, len, flags) (0) -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations 2007-03-01 23:24 ` Jeremy Fitzhardinge @ 2007-03-16 9:27 ` Ingo Molnar 0 siblings, 0 replies; 11+ messages in thread From: Ingo Molnar @ 2007-03-16 9:27 UTC (permalink / raw) To: Jeremy Fitzhardinge Cc: Andi Kleen, Andrew Morton, linux-kernel, virtualization, xen-devel, Chris Wright, Zachary Amsden, Rusty Russell, linux-arch, James Bottomley * Jeremy Fitzhardinge <jeremy@goop.org> wrote: > akpm: > > Can we lose __HAVE_ARCH_MM_LIFETIME? Just define these (preferably in C, > > not in cpp) in the appropriate include/asm-foo/ files? Acked-by: Ingo Molnar <mingo@elte.hu> Ingo ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2007-03-16 9:34 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20070227081337.434798469@goop.org>
2007-02-27 8:13 ` [patch 08/26] Xen-paravirt_ops: add hooks to intercept mm creation and destruction Jeremy Fitzhardinge
2007-02-27 8:13 ` [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations Jeremy Fitzhardinge
2007-02-27 15:15 ` James Bottomley
2007-02-27 17:21 ` Jeremy Fitzhardinge
2007-02-27 17:35 ` James Bottomley
2007-02-27 17:56 ` Jeremy Fitzhardinge
2007-02-27 18:04 ` James Bottomley
2007-02-27 18:48 ` Jeremy Fitzhardinge
2007-02-27 18:53 ` James Bottomley
[not found] <20070301232443.195603797@goop.org>
2007-03-01 23:24 ` Jeremy Fitzhardinge
2007-03-16 9:27 ` Ingo Molnar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).