From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FSL_HELO_FAKE,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1, USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F7EFC5DF60 for ; Fri, 8 Nov 2019 14:23:43 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E30942246A for ; Fri, 8 Nov 2019 14:23:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="ory/CuML" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E30942246A Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 19CC06B0005; Fri, 8 Nov 2019 09:23:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 127D76B0006; Fri, 8 Nov 2019 09:23:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F303D6B0007; Fri, 8 Nov 2019 09:23:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0063.hostedemail.com [216.40.44.63]) by kanga.kvack.org (Postfix) with ESMTP id D9ED76B0005 for ; Fri, 8 Nov 2019 09:23:41 -0500 (EST) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with SMTP id 22D73181AEF15 for ; Fri, 8 Nov 2019 14:23:41 +0000 (UTC) X-FDA: 76133328642.26.heat09_2fdb157b8828 X-HE-Tag: heat09_2fdb157b8828 X-Filterd-Recvd-Size: 7269 Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by imf48.hostedemail.com (Postfix) with ESMTP for ; Fri, 8 Nov 2019 14:23:40 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id w9so456947wrr.0 for ; Fri, 08 Nov 2019 06:23:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=cE0H/lLtUQTdWA4Vcuht2GzWTV6rZlF0FP9RhMPfa+4=; b=ory/CuML+B+1tukFzKeXnY81XBcGq1vwfIl7kbFAQz+tbADKR+CJPKZy/BESKMtLlE cfe4lPBu0aHoQMgFg3wqNkUUXcZSPOuiHfl+Dp4nenLqnPmRz1Fq9OqGOF3xosOU1zA1 S1Ma9nEpT1N8PhAFz5NQZu3UirsZc6RXdSlnH602I62QBX0NM2NGcSf4hdG9Drm93xJ5 o92Bli0UhHpFi4zTUBHMYr900Pj+qAzWq0/Jn4peXOKpbsgWDJiSk2XL6Y1btlzEP3BO T6T7qIwCGl/ExdpiwKN+PwjdTw4s7MmCYwCu5XqG94A58Z1uzvF1jFnhoOlKEc3iWoal 2JNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=cE0H/lLtUQTdWA4Vcuht2GzWTV6rZlF0FP9RhMPfa+4=; b=dvw9I+MfFnPFJBuLmPwz3n0mqy6U6RKjUJequ513SNDkhCVRJ7aRgw1CVLg+YrMWjr RUChnQLl1cLusowY2bmGd8gs61S1f/xuGI3oqKg8yedWbPxyg6cmkkc6Tg9yL9Yi5JeN /WNJyV0qGf7/fKt93e0hxDNUOaFp4IIg+zUmUk3NafG3N2GUmjLQUuAdZKWrYSd19GJW yZVj+pcL1CM9bHWbEB0BgfWfiSuRLJxiO7nRZ+yOijieRXQpJjJ9n0nTfu/5A+ZN7/QP PfcHBWeXh9wLWsFy2Xp6+gIwPMILcwnqHl0ECDlPXT2umWirgc3xlpDu9Oy3toZbrzDr 8Q3g== X-Gm-Message-State: APjAAAW2S7e2GITnkxc9/oigDjz3L3MeQXVYsEaAEsw5eQAOJd7SWaT4 Uv8mLf+5d9x6mX5d+fR9PqnWBg== X-Google-Smtp-Source: APXvYqz6emxsafgwEh4kYnaj0O+HdDcno9ONkicjP+nqCSK6nZWbJAM5LqbPHf/CTE/PLeuiqFCJBQ== X-Received: by 2002:adf:df09:: with SMTP id y9mr6302486wrl.25.1573223018529; Fri, 08 Nov 2019 06:23:38 -0800 (PST) Received: from google.com ([100.105.32.75]) by smtp.gmail.com with ESMTPSA id d4sm5377200wrw.83.2019.11.08.06.23.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Nov 2019 06:23:37 -0800 (PST) Date: Fri, 8 Nov 2019 15:23:31 +0100 From: Marco Elver To: Bhupesh Sharma Cc: akiyks@gmail.com, stern@rowland.harvard.edu, Alexander Potapenko , parri.andrea@gmail.com, andreyknvl@google.com, Andy Lutomirski , Ard Biesheuvel , Arnd Bergmann , boqun.feng@gmail.com, Borislav Petkov , dja@axtens.net, dlustig@nvidia.com, Dave Hansen , David Howells , Dmitry Vyukov , "H. Peter Anvin" , Ingo Molnar , j.alglave@ucl.ac.uk, joel@joelfernandes.org, Jonathan Corbet , Josh Poimboeuf , luc.maranget@inria.fr, Mark Rutland , npiggin@gmail.com, paulmck@kernel.org, Peter Zijlstra , Thomas Gleixner , Will Deacon , kasan-dev@googlegroups.com, linux-arch@vger.kernel.org, Linux Doc Mailing List , linux-efi@vger.kernel.org, linux-kbuild@vger.kernel.org, Linux Kernel Mailing List , linux-mm@kvack.org, x86@kernel.org Subject: Re: [PATCH v3 1/9] kcsan: Add Kernel Concurrency Sanitizer infrastructure Message-ID: <20191108142331.GA201027@google.com> References: <20191104142745.14722-1-elver@google.com> <20191104142745.14722-2-elver@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Bhupesh, Thanks for your comments, see answers below. On Fri, 08 Nov 2019, Bhupesh Sharma wrote: > Sorry for the late comments, but I am just trying to understand the > new KCSAN feature (which IMO seems very useful for debugging issues). > > Some comments inline: > > On Mon, Nov 4, 2019 at 7:59 PM Marco Elver wrote: > > ... > > diff --git a/include/linux/kcsan.h b/include/linux/kcsan.h > > new file mode 100644 > > index 000000000000..bd8122acae01 > > --- /dev/null > > +++ b/include/linux/kcsan.h > > @@ -0,0 +1,115 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > + > > +#ifndef _LINUX_KCSAN_H > > +#define _LINUX_KCSAN_H > > + > > +#include > > +#include > > For the new changes introduced (especially the new header files), can > we please try to keep the alphabetical order > for the include'd files. > > The same comment applies for changes below ... Done for v4. ... > > +void kcsan_disable_current(void) > > +{ > > + ++get_ctx()->disable_count; > > +} > > +EXPORT_SYMBOL(kcsan_disable_current); > > + > > +void kcsan_enable_current(void) > > +{ > > + if (get_ctx()->disable_count-- == 0) { > > + kcsan_disable_current(); /* restore to 0 */ > > + kcsan_disable_current(); > > + WARN(1, "mismatching %s", __func__); > > I am not sure I understand, why we need to call > 'kcsan_disable_current()' twice and what the WARN message conveys. > May-be you can add a comment here, or a more descriptive WARN meesage. This branch is entered when there is an imbalance between kcsan_disable_current and kcsan_enable_current calls. When entering the branch, the decrement transitioned disable_count to -1, which should not happen. The call to kcsan_disable_current restores it to 0, and the following kcsan_disable_current actually disables KCSAN for generating the warning. > > + kcsan_enable_current(); > > + } > > +} > > +EXPORT_SYMBOL(kcsan_enable_current); > > + > > +void kcsan_nestable_atomic_begin(void) > > +{ > > + /* > > + * Do *not* check and warn if we are in a flat atomic region: nestable > > + * and flat atomic regions are independent from each other. > > + * See include/linux/kcsan.h: struct kcsan_ctx comments for more > > + * comments. > > + */ > > + > > + ++get_ctx()->atomic_nest_count; > > +} > > +EXPORT_SYMBOL(kcsan_nestable_atomic_begin); > > + > > +void kcsan_nestable_atomic_end(void) > > +{ > > + if (get_ctx()->atomic_nest_count-- == 0) { > > + kcsan_nestable_atomic_begin(); /* restore to 0 */ > > + kcsan_disable_current(); > > + WARN(1, "mismatching %s", __func__); > > .. Same as above. Same situation, except for atomic_nest_count. Here also atomic_nest_count is -1 which should not happen. I've added some more comments. > > + kcsan_enable_current(); > > + } > > +} > > +EXPORT_SYMBOL(kcsan_nestable_atomic_end); Best Wishes, -- Marco