From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752248Ab0KARzm (ORCPT ); Mon, 1 Nov 2010 13:55:42 -0400 Received: from canuck.infradead.org ([134.117.69.58]:48483 "EHLO canuck.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750991Ab0KARzk convert rfc822-to-8bit (ORCPT ); Mon, 1 Nov 2010 13:55:40 -0400 Subject: Re: [PATCH] Perf, AMD: Prefer kzalloc() over kmalloc()+memset() in amd_alloc_nb() From: Peter Zijlstra To: Jesper Juhl Cc: linux-kernel@vger.kernel.org, Paul Mackerras , Ingo Molnar , Arnaldo Carvalho de Melo , Thomas Gleixner , "H. Peter Anvin" , Stephane Eranian , "robert.richter" , Andreas Herrmann , Borislav Petkov In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Date: Mon, 01 Nov 2010 18:55:13 +0100 Message-ID: <1288634113.2039.20.camel@laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 2010-10-30 at 21:06 +0200, Jesper Juhl wrote: > Hi, > > I believe this would be an improvement? > > Prefer kzalloc() over kmalloc()+memset() in amd_alloc_nb(). > > > Signed-off-by: Jesper Juhl > --- I've changed it to.. --- Subject: perf, amd: Use kmalloc_node(,__GFP_ZERO) for northbridge structure allocation From: Peter Zijlstra Date: Mon Nov 01 18:52:05 CET 2010 Jasper suggested we use the zeroing capability of the allocators instead of calling memset ourselves. Add node affinity while we're at it. Reported-by: Jesper Juhl Signed-off-by: Peter Zijlstra --- Index: linux-2.6/arch/x86/kernel/cpu/perf_event_amd.c =================================================================== --- linux-2.6.orig/arch/x86/kernel/cpu/perf_event_amd.c +++ linux-2.6/arch/x86/kernel/cpu/perf_event_amd.c @@ -280,11 +280,10 @@ static struct amd_nb *amd_alloc_nb(int c struct amd_nb *nb; int i; - nb = kmalloc(sizeof(struct amd_nb), GFP_KERNEL); + nb = kmalloc_node(sizeof(struct amd_nb), GFP_KERNEL | __GFP_ZERO, nb_id); if (!nb) return NULL; - memset(nb, 0, sizeof(*nb)); nb->nb_id = nb_id; /*