From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762415AbdEVU4Z (ORCPT ); Mon, 22 May 2017 16:56:25 -0400 Received: from mail-pf0-f171.google.com ([209.85.192.171]:34717 "EHLO mail-pf0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1762375AbdEVU4X (ORCPT ); Mon, 22 May 2017 16:56:23 -0400 Date: Mon, 22 May 2017 13:56:21 -0700 From: Matthias Kaehlcke To: David Rientjes Cc: Christoph Lameter , Pekka Enberg , Joonsoo Kim , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3] mm/slub: Only define kmalloc_large_node_hook() for NUMA systems Message-ID: <20170522205621.GL141096@google.com> References: <20170519210036.146880-1-mka@chromium.org> <20170519210036.146880-2-mka@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org El Mon, May 22, 2017 at 01:39:26PM -0700 David Rientjes ha dit: > On Fri, 19 May 2017, Matthias Kaehlcke wrote: > > > The function is only used when CONFIG_NUMA=y. Placing it in an #ifdef > > block fixes the following warning when building with clang: > > > > mm/slub.c:1246:20: error: unused function 'kmalloc_large_node_hook' > > [-Werror,-Wunused-function] > > > > Is clang not inlining kmalloc_large_node_hook() for some reason? I don't > think this should ever warn on gcc. clang warns about unused static inline functions outside of header files, in difference to gcc. > > Signed-off-by: Matthias Kaehlcke > > Acked-by: David Rientjes > > > --- > > mm/slub.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/mm/slub.c b/mm/slub.c > > index 57e5156f02be..66e1046435b7 100644 > > --- a/mm/slub.c > > +++ b/mm/slub.c > > @@ -1313,11 +1313,14 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node, > > * Hooks for other subsystems that check memory allocations. In a typical > > * production configuration these hooks all should produce no code at all. > > */ > > + > > +#ifdef CONFIG_NUMA > > static inline void kmalloc_large_node_hook(void *ptr, size_t size, gfp_t flags) > > { > > kmemleak_alloc(ptr, size, 1, flags); > > kasan_kmalloc_large(ptr, size, flags); > > } > > +#endif > > > > static inline void kfree_hook(const void *x) > > {