On Wednesday 29 November 2006 00:12, Jeremy Fitzhardinge wrote: > Hi Eric, > > Could you try this patch out and see if it makes much performance > difference for you. You should apply this on top of the %fs patch I > posted earlier (and use the %fs patch as the baseline for your > comparisons).
Hi Jeremy I will try this as soon as possible, thank you. However I have some remarks browsing your patch. > +#ifdef CONFIG_SMP > +#define LOAD_PDA_SEG(reg) \ > + movl $(__KERNEL_PDA), reg; \ > + movl reg, %fs > +#define CUR_CPU(reg) movl %fs:PDA_cpu, reg > +#else > +#define LOAD_PDA_SEG(reg) > +#define CUR_CPU(reg) movl boot_pda+PDA_cpu, reg if !CONFIG_SMP, why even dereferencing boot_pda+PDA_cpu to get 0 ? and as PER_CPU(cpu_gdt_descr, %ebx) in !CONFIG_SMP doesnt need the a value in ebx, you can just do : #define CUR_CPU(reg) /* nothing */ > --- a/include/asm-i386/pda.h Tue Nov 21 18:54:56 2006 -0800 > +++ b/include/asm-i386/pda.h Wed Nov 22 02:35:24 2006 -0800 > @@ -22,6 +22,16 @@ extern struct i386_pda *_cpu_pda[]; > My patch was better IMHO : we dont need to force asm () instructions to perform regular C variable reading/writing in !CONFIG_SMP case. Using plain C allows compiler to generate a better code. Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/