Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2075297pxa; Fri, 7 Aug 2020 02:25:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwxLu9LWLdSCIOKku0uFXVEwtx+UDZydj3mb4dXzpvJ0srjmTOdUuPw0NJ/G3DvReEz0RSq X-Received: by 2002:a05:6402:785:: with SMTP id d5mr8090014edy.370.1596792333890; Fri, 07 Aug 2020 02:25:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596792333; cv=none; d=google.com; s=arc-20160816; b=D1P/mcGStHg5rk6m59o11mT00ezgsRvue4i1V6/9+/CBIxU1iNV4azxtV9fU12qaB4 rmozyHTFyeGm0rgeprzpKpBoshgtIuuAaDDsax1Os5Wo8jKoYlk2YSRug78u3Fo7fPaf hcxUY0DpOgKvD2s6xZeRAtfinO22cBXpFX061KTrfJMncVnRyogYqklhlyjWw3piv9fA qThD+FicUyKO+xU+NWYXIA0Mcj8HuJNOMmSS4sIvzkImag5O15HkdHcM6vLOoq2zet6M 4SyaZdJ/P5CiliA7A+/9QKDYsWchjfVHmz9Z4qy+IDp+RieW77dsafer8g6Y8amGrjCf fXcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=VQgKwFNvqs9fGowcPc8swQqkbq8N0bf3Fo7DaJIBwtA=; b=fSR79oQ2wdgrnX+JtPqY4Am7foeSs07qIuDzVPYmOcXrdJNDx8K7wTSElEwJ006Oik n/sOCzUoZOcpwKW8IBaotzjIOKs4rLrb1ijKjdqVNxhtZ5QxHyP6TMn6A0dbQrlVshgh lkWCDRAPxsfhqImZ+ukcIoSnohTWX7xpgebo11Ye2bwFCq6fLIfLk6lQCuV2WVWl975D bqjeyjMAizqAYwQhm4r6KSm6+u+Kk5AVgqJKxynY1W20352UrubdGP9uEp3c65iNkDn6 DL5TfpnV3fL5Rg13p+e0hGTMPgD3M9e9xQAxq7ueO7QsgWHET543WBy9yNkA6s60MdGR C6jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x18si5372259ejd.265.2020.08.07.02.25.10; Fri, 07 Aug 2020 02:25:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728027AbgHGJY3 (ORCPT + 99 others); Fri, 7 Aug 2020 05:24:29 -0400 Received: from mx2.suse.de ([195.135.220.15]:58146 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725881AbgHGJY3 (ORCPT ); Fri, 7 Aug 2020 05:24:29 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 5CA28AC55; Fri, 7 Aug 2020 09:24:45 +0000 (UTC) Subject: Re: [PATCH] x86/paravirt: Add missing noinstr to arch_local*() helpers To: Marco Elver , Peter Zijlstra Cc: Borislav Petkov , Dave Hansen , fenghua.yu@intel.com, "H. Peter Anvin" , LKML , Ingo Molnar , syzkaller-bugs , Thomas Gleixner , "Luck, Tony" , the arch/x86 maintainers , yu-cheng.yu@intel.com, sdeep@vmware.com, virtualization@lists.linux-foundation.org, kasan-dev , syzbot , "Paul E. McKenney" References: <0000000000007d3b2d05ac1c303e@google.com> <20200805132629.GA87338@elver.google.com> <20200805134232.GR2674@hirez.programming.kicks-ass.net> <20200805135940.GA156343@elver.google.com> <20200805141237.GS2674@hirez.programming.kicks-ass.net> <20200805141709.GD35926@hirez.programming.kicks-ass.net> <20200806074723.GA2364872@elver.google.com> <20200806113236.GZ2674@hirez.programming.kicks-ass.net> <20200806131702.GA3029162@elver.google.com> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: Date: Fri, 7 Aug 2020 11:24:26 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07.08.20 11:01, Marco Elver wrote: > On Thu, 6 Aug 2020 at 18:06, Marco Elver wrote: >> On Thu, 6 Aug 2020 at 15:17, Marco Elver wrote: >>> On Thu, Aug 06, 2020 at 01:32PM +0200, peterz@infradead.org wrote: >>>> On Thu, Aug 06, 2020 at 09:47:23AM +0200, Marco Elver wrote: >>>>> Testing my hypothesis that raw then nested non-raw >>>>> local_irq_save/restore() breaks IRQ state tracking -- see the reproducer >>>>> below. This is at least 1 case I can think of that we're bound to hit. >>> ... >>>> >>>> /me goes ponder things... >>>> >>>> How's something like this then? >>>> >>>> --- >>>> include/linux/sched.h | 3 --- >>>> kernel/kcsan/core.c | 62 ++++++++++++++++++++++++++++++++++++--------------- >>>> 2 files changed, 44 insertions(+), 21 deletions(-) >>> >>> Thank you! That approach seems to pass syzbot (also with >>> CONFIG_PARAVIRT) and kcsan-test tests. >>> >>> I had to modify it some, so that report.c's use of the restore logic >>> works and not mess up the IRQ trace printed on KCSAN reports (with >>> CONFIG_KCSAN_VERBOSE). >>> >>> I still need to fully convince myself all is well now and we don't end >>> up with more fixes. :-) If it passes further testing, I'll send it as a >>> real patch (I want to add you as Co-developed-by, but would need your >>> Signed-off-by for the code you pasted, I think.) > > I let it run on syzbot through the night, and it's fine without > PARAVIRT (see below). I have sent the patch (need your Signed-off-by > as it's based on your code, thank you!): > https://lkml.kernel.org/r/20200807090031.3506555-1-elver@google.com > >> With CONFIG_PARAVIRT=y (without the notrace->noinstr patch), I still >> get lockdep DEBUG_LOCKS_WARN_ON(!lockdep_hardirqs_enabled()), although >> it takes longer for syzbot to hit them. But I think that's expected >> because we can still get the recursion that I pointed out, and will >> need that patch. > > Never mind, I get these warnings even if I don't turn on KCSAN > (CONFIG_KCSAN=n). Something else is going on with PARAVIRT=y that > throws off IRQ state tracking. :-/ What are the settings of CONFIG_PARAVIRT_XXL and CONFIG_PARAVIRT_SPINLOCKS in this case? Juergen