[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20121114084355.GK22290@secunet.com>
Date: Wed, 14 Nov 2012 09:43:55 +0100
From: Steffen Klassert <steffen.klassert@...unet.com>
To: Shan Wei <shanwei88@...il.com>
Cc: Christoph Lameter <cl@...ux.com>,
David Miller <davem@...emloft.net>,
NetDev <netdev@...r.kernel.org>,
Herbert Xu <herbert@...dor.apana.org.au>,
Kernel-Maillist <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v5 3/9] net: xfrm: use __this_cpu_read per-cpu helper
On Tue, Nov 13, 2012 at 08:36:00PM +0800, Shan Wei wrote:
> Steffen Klassert said, at 2012/11/13 18:48:
> >
> > Ok, so please add a commit message to describe your changes.
> >
> > Thanks.
> >
>
> [PATCH v5] net: xfrm: use __this_cpu_read per-cpu helper
>
> this_cpu_ptr/this_cpu_read is faster than per_cpu_ptr(p, smp_processor_id())
> and can reduce memory accesses.
> The latter helper needs to find the offset for current cpu,
> and needs more assembler instructions which objdump shows in following.
>
> this_cpu_ptr relocates and address. this_cpu_read() relocates the address
> and performs the fetch. this_cpu_read() saves you more instructions
> since it can do the relocation and the fetch in one instruction.
>
> per_cpu_ptr(p, smp_processor_id()):
> 1e: 65 8b 04 25 00 00 00 00 mov %gs:0x0,%eax
> 26: 48 98 cltq
> 28: 31 f6 xor %esi,%esi
> 2a: 48 c7 c7 00 00 00 00 mov $0x0,%rdi
> 31: 48 8b 04 c5 00 00 00 00 mov 0x0(,%rax,8),%rax
> 39: c7 44 10 04 14 00 00 00 movl $0x14,0x4(%rax,%rdx,1)
>
> this_cpu_ptr(p)
> 1e: 65 48 03 14 25 00 00 00 00 add %gs:0x0,%rdx
> 27: 31 f6 xor %esi,%esi
> 29: c7 42 04 14 00 00 00 movl $0x14,0x4(%rdx)
> 30: 48 c7 c7 00 00 00 00 mov $0x0,%rdi
>
> Signed-off-by: Shan Wei <davidshan@...cent.com>
Applied to ipsec-next, thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists