Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752191AbdI0PCM (ORCPT ); Wed, 27 Sep 2017 11:02:12 -0400 Received: from mx2.suse.de ([195.135.220.15]:53138 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751907AbdI0PCL (ORCPT ); Wed, 27 Sep 2017 11:02:11 -0400 Date: Wed, 27 Sep 2017 17:02:07 +0200 From: Michal Hocko To: "Levin, Alexander (Sasha Levin)" Cc: "akpm@linux-foundation.org" , "linux-kernel@vger.kernel.org" , Steven Rostedt , "David S . Miller" Subject: Re: [PATCH] mm: kill kmemcheck again Message-ID: <20170927150207.swmcarc4lqlklohr@dhcp22.suse.cz> References: <20170927112723.16862-1-alexander.levin@verizon.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="6n4oegzj5nxstky6" Content-Disposition: inline In-Reply-To: <20170927112723.16862-1-alexander.levin@verizon.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 14498 Lines: 292 --6n4oegzj5nxstky6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed 27-09-17 11:27:40, Sasha Levin wrote: > 2 Years ago I proposed to kill kmemcheck: > > > As discussed on LSF/MM, kill kmemcheck. > > > > KASan is a replacement that is able to work without the limitation of > > kmemcheck (single CPU, slow). KASan is already upstream. > > > > We are also not aware of any users of kmemcheck (or users who don't consider > > KASan as a suitable replacement). > > The only objection was that since KASAN wasn't supported by all GCC > versions provided by distros at that time we should hold off for 2 > years, and try again. > > Now that 2 years have passed, and all distros provide gcc that supports > KASAN, kill kmemcheck again for the very same reasons. This is just too large to review manually. How have you generated the patch? My compile test batery failed for i386 allyesconfig for some reason which is not entirely clear to me (see attached). I have applied on top of dc972a67cc54585bd83ad811c4e9b6ab3dcd427e and that one compiles fine. > Cc: Steven Rostedt (VMware) > Cc: David S. Miller > Signed-off-by: Sasha Levin Anyway I fully support this removal. It is a lot of rarely used code and KASAN is much more usable. -- Michal Hocko SUSE Labs --6n4oegzj5nxstky6 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="i386_20170927_163226.log" === Config allyesconfig drivers/clk/renesas/clk-sh73a0.c: In function 'sh73a0_cpg_clocks_init': drivers/clk/renesas/clk-sh73a0.c:155:3: warning: 'parent_name' may be used uninitialized in this function [-Wmaybe-uninitialized] return clk_register_fixed_factor(NULL, name, parent_name, 0, ^ drivers/clk/renesas/clk-sh73a0.c:82:14: note: 'parent_name' was declared here const char *parent_name; ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:19:1: error: redefinition of 'xor_8regs_2' xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:19:1: note: previous definition of 'xor_8regs_2' was here xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:38:1: error: redefinition of 'xor_8regs_3' xor_8regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:38:1: note: previous definition of 'xor_8regs_3' was here xor_8regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:59:1: error: redefinition of 'xor_8regs_4' xor_8regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:59:1: note: previous definition of 'xor_8regs_4' was here xor_8regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:81:1: error: redefinition of 'xor_8regs_5' xor_8regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:81:1: note: previous definition of 'xor_8regs_5' was here xor_8regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:104:1: error: redefinition of 'xor_32regs_2' xor_32regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:104:1: note: previous definition of 'xor_32regs_2' was here xor_32regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:140:1: error: redefinition of 'xor_32regs_3' xor_32regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:140:1: note: previous definition of 'xor_32regs_3' was here xor_32regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:186:1: error: redefinition of 'xor_32regs_4' xor_32regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:186:1: note: previous definition of 'xor_32regs_4' was here xor_32regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:241:1: error: redefinition of 'xor_32regs_5' xor_32regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:241:1: note: previous definition of 'xor_32regs_5' was here xor_32regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:305:1: error: redefinition of 'xor_8regs_p_2' xor_8regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:305:1: note: previous definition of 'xor_8regs_p_2' was here xor_8regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:331:1: error: redefinition of 'xor_8regs_p_3' xor_8regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:331:1: note: previous definition of 'xor_8regs_p_3' was here xor_8regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:361:1: error: redefinition of 'xor_8regs_p_4' xor_8regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:361:1: note: previous definition of 'xor_8regs_p_4' was here xor_8regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:395:1: error: redefinition of 'xor_8regs_p_5' xor_8regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:395:1: note: previous definition of 'xor_8regs_p_5' was here xor_8regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:432:1: error: redefinition of 'xor_32regs_p_2' xor_32regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:432:1: note: previous definition of 'xor_32regs_p_2' was here xor_32regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:477:1: error: redefinition of 'xor_32regs_p_3' xor_32regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:477:1: note: previous definition of 'xor_32regs_p_3' was here xor_32regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:534:1: error: redefinition of 'xor_32regs_p_4' xor_32regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:534:1: note: previous definition of 'xor_32regs_p_4' was here xor_32regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:602:1: error: redefinition of 'xor_32regs_p_5' xor_32regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:602:1: note: previous definition of 'xor_32regs_p_5' was here xor_32regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:680:34: error: redefinition of 'xor_block_8regs' static struct xor_block_template xor_block_8regs = { ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:680:34: note: previous definition of 'xor_block_8regs' was here static struct xor_block_template xor_block_8regs = { ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:688:34: error: redefinition of 'xor_block_32regs' static struct xor_block_template xor_block_32regs = { ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:688:34: note: previous definition of 'xor_block_32regs' was here static struct xor_block_template xor_block_32regs = { ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:696:34: error: redefinition of 'xor_block_8regs_p' static struct xor_block_template xor_block_8regs_p __maybe_unused = { ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:696:34: note: previous definition of 'xor_block_8regs_p' was here static struct xor_block_template xor_block_8regs_p __maybe_unused = { ^ In file included from ./arch/x86/include/asm/xor_32.h:544:0, from ./arch/x86/include/asm/xor.h:489, from crypto/xor.c:25: ./include/asm-generic/xor.h:704:34: error: redefinition of 'xor_block_32regs_p' static struct xor_block_template xor_block_32regs_p __maybe_unused = { ^ In file included from ./arch/x86/include/asm/xor.h:1:0, from crypto/xor.c:25: ./include/asm-generic/xor.h:704:34: note: previous definition of 'xor_block_32regs_p' was here static struct xor_block_template xor_block_32regs_p __maybe_unused = { ^ ./include/asm-generic/xor.h:680:34: warning: 'xor_block_8regs' defined but not used [-Wunused-variable] static struct xor_block_template xor_block_8regs = { ^ ./include/asm-generic/xor.h:688:34: warning: 'xor_block_32regs' defined but not used [-Wunused-variable] static struct xor_block_template xor_block_32regs = { ^ make[1]: *** [crypto/xor.o] Error 1 make[1]: *** Waiting for unfinished jobs.... lib/raid6/recov_avx512.c:387:2: warning: #warning "your version of binutils lacks AVX512 support" [-Wcpp] #warning "your version of binutils lacks AVX512 support" ^ make: *** [crypto] Error 2 make: *** Waiting for unfinished jobs.... drivers/net/ieee802154/ca8210.c: In function 'ca8210_skb_tx': drivers/net/ieee802154/ca8210.c:1947:9: warning: missing braces around initializer [-Wmissing-braces] struct ieee802154_hdr header = { 0 }; ^ drivers/net/ieee802154/ca8210.c:1947:9: warning: (near initialization for 'header.fc') [-Wmissing-braces] --6n4oegzj5nxstky6--