Re: [PATCH] i386-pda UP optimization
From: Eric Dumazet
Date: Wed Nov 29 2006 - 04:30:57 EST
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/