Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936170AbdCXOWd (ORCPT ); Fri, 24 Mar 2017 10:22:33 -0400 Received: from mail-vk0-f46.google.com ([209.85.213.46]:35385 "EHLO mail-vk0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936085AbdCXOWX (ORCPT ); Fri, 24 Mar 2017 10:22:23 -0400 MIME-Version: 1.0 In-Reply-To: <20170324141053.lte3qq7mfl6krlkb@hirez.programming.kicks-ass.net> References: <20170317120837.pr74cv3xuj7qpoin@hirez.programming.kicks-ass.net> <20170317180350.63jjysejk2i6vkon@pd.tnic> <20170317185720.5s7qa6hl233t24ag@pd.tnic> <20170317192642.qnrf7xuopxzapl2r@hirez.programming.kicks-ass.net> <20170317192935.d5almj4brat6uvlt@hirez.programming.kicks-ass.net> <20170324141053.lte3qq7mfl6krlkb@hirez.programming.kicks-ass.net> From: Dmitry Vyukov Date: Fri, 24 Mar 2017 15:22:00 +0100 Message-ID: Subject: Re: [PATCH 6/7] md/raid10, LLVM: get rid of variable length array To: Peter Zijlstra Cc: Borislav Petkov , Alexander Potapenko , Michael Davidson , Michal Marek , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Herbert Xu , "David S. Miller" , Shaohua Li , Matthias Kaehlcke , "x86@kernel.org" , "open list:KERNEL BUILD + fi..." , LKML , linux-crypto@vger.kernel.org, linux-raid@vger.kernel.org, kbuild-all@01.org, Fengguang Wu Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1228 Lines: 32 On Fri, Mar 24, 2017 at 3:10 PM, Peter Zijlstra wrote: > On Fri, Mar 24, 2017 at 02:50:24PM +0100, Dmitry Vyukov wrote: >> OK, I guess should not have referenced the llvm-linux page. >> So here are reasons on our side that I am ready to vouch: >> >> - clang make it possible to implement KMSAN (dynamic detection of >> uses of uninit memory) > > How does GCC make this impossible? Too complex and too difficult to implement correctly on all corner cases. All other sanitizers were ported to gcc very quickly, but msan wasn't. Nobody is brave enough to even approach it. >> - better code coverage for fuzzing > > How so? Why can't the same be achieved using GCC? Same reason. >> - why simpler and faster development (e.g. we can port our user-space >> hardening technologies -- CFI and SafeStack) > > That's just because you've already implemented this in clang, right? So > less work for you. Not because its impossible. I am not saying that it's impossible. It would just require unreasonable amount of time, and then perpetual maintenance to fix corner cases and regressions. For background: I implemented the current fuzzing coverage (KCOV) in gcc, and user-space tsan instrumentation in gcc.