Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp9265941ybl; Fri, 17 Jan 2020 09:01:20 -0800 (PST) X-Google-Smtp-Source: APXvYqxx/Uo/ZXdeNQTkIR6ovWqA1KyDGTHrUR6F5i0hcJPCr7bjwJRFQmf7JOGvSn66GTpZVR0K X-Received: by 2002:aca:36c1:: with SMTP id d184mr4151888oia.70.1579280480449; Fri, 17 Jan 2020 09:01:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579280480; cv=none; d=google.com; s=arc-20160816; b=J3m7EMgSQUzQnOrjB/gOqo588IIoTzXKUBO0Bk9btmKe6BGECpz4SXSPagh2ks2HKR N9HTxlVcFdo/blWEOJaN0eShbpdBhJJ+NWB55sd08yyf1omen0E/iCr94MVrVMU7tTeA oeQI/djxNsDIqmnqddKXTzAnnRZlyxbnrQc9pGJ8O0+QsJTAPdDw8mD1Qm8hND6RISGI iOtm/YlObN5xRN5ND+BuIt/0Qcxj7q8chh28ro7pC82mRdDMhhJLcmnCgBn3ETDUhCXL fNKRKV6H21bhvKkULIEsKmfvdRnyKkSEdTf5ffmk5i5WkVnxC/QLshBGGQ1oEj5C0sgR X1DQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:in-reply-to:cc:references:message-id :date:subject:mime-version:from:content-transfer-encoding :dkim-signature; bh=qmz6hTLuOQmdpf5d+5xaf/MlGzIX54pPDySUObs3zSo=; b=XvbYzdpd77Ks6vnbqLnV5JOuQl4T2Jj4czEGy09EbMWuaCuUai7RkbajsZ4g+rXkay rBaO1ff/oLS5GvXRGvAaMkx1Pkjwd9+LA0I20K9GzbVlCw4lDnAv5Ptv7COsUp/45jHj O2LTI3vWWlb9JTMQjpBeontKYWY27Woi90WJ4OP/IJGEMwyx2FbbuV2Oy/rxi4YMmI+B qJ3GuXw1q506NEr/U6OL5EdFnENpsgXZQkqiaUuHSMIHzHD9rDeQwWXAUfKf1mUvkx0q pwdkc1Fel0LZ3MW9VsFen5B55XYwuhmoCSay0CZghaHGNISJIWpXUQbQWwdfDgbHPcNz Qjhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=fC8+V8B4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p12si13970893otk.141.2020.01.17.09.01.07; Fri, 17 Jan 2020 09:01:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=fC8+V8B4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729195AbgAQQ7l (ORCPT + 99 others); Fri, 17 Jan 2020 11:59:41 -0500 Received: from mail-qk1-f194.google.com ([209.85.222.194]:45854 "EHLO mail-qk1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726559AbgAQQ7l (ORCPT ); Fri, 17 Jan 2020 11:59:41 -0500 Received: by mail-qk1-f194.google.com with SMTP id x1so23270794qkl.12 for ; Fri, 17 Jan 2020 08:59:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=content-transfer-encoding:from:mime-version:subject:date:message-id :references:cc:in-reply-to:to; bh=qmz6hTLuOQmdpf5d+5xaf/MlGzIX54pPDySUObs3zSo=; b=fC8+V8B4/Q49oLtUmXQzCaUE2HrPNrU5+qTKR20TwRpH0EpUTlorqh6rLGCRtqZDuZ oK1T0DCe90DLkLB7SUAj7COfaO+9o3dbvAx1IAl8OlxjFPR6nkG+SFRlPHrom9HLHRBa o+wctd7pLL+nWCP/D00p9y51mMwZwgElCFrthZR26sg4PhPIYfSEaUvfJUN715ImMA7B tRKsVbExDG6AlkS2uws2GAzYL+UxSappwaAQxNHttOEAbNwHeAdpvkKjciKuWQf9BnG5 nZV928pBeNAEPaDDNz3KCoIHmvH14wh7GyID2+Ox7KwgoPC7y34/3peoy+iAVlzhuI+M 1ckw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version :subject:date:message-id:references:cc:in-reply-to:to; bh=qmz6hTLuOQmdpf5d+5xaf/MlGzIX54pPDySUObs3zSo=; b=Vur7QXfarqIRMtyjcUp8U5ymESgwhkRMvQaU8WMxxC/Q67uBSh9kd3uvr162TdHwrN v4cQCe25GFKtVHhSVJLVXUNGba2MyL3+q50Civ9IIrBaRYlm5VsSyUrHilTiNit0lpDD KwG148zOFj40SXu7bt6huAuMRNL18oG7QYN+hQQlmhkSNTJAmChr7xRS+ELlZ+Tz5F24 Gldva7+zlr7woP0iofCtVXT3ywLbJm/63niQRvdx59mEfb+CxPxFn1Q2KtwAdVFoNzML 0bvG5Kk7nSHJO+oENiB6lhHiJQxtDzNtTZRLVlwAuCK0Hqz4gTrk9bH1c5dhc1eJcXO5 FOoQ== X-Gm-Message-State: APjAAAWciXIT2YFG8i9MdhFHzm5UBFaZTHkSk1kKI4NT0Zu5DCxVBSM7 YeeCUZIDTx+SacmR6UpMX8G9Lw== X-Received: by 2002:a05:620a:164e:: with SMTP id c14mr37395038qko.19.1579280380505; Fri, 17 Jan 2020 08:59:40 -0800 (PST) Received: from [192.168.1.183] (pool-71-184-117-43.bstnma.fios.verizon.net. [71.184.117.43]) by smtp.gmail.com with ESMTPSA id 21sm12014926qky.41.2020.01.17.08.59.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 17 Jan 2020 08:59:40 -0800 (PST) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable From: Qian Cai Mime-Version: 1.0 (1.0) Subject: Re: [PATCH -rcu] kcsan: Make KCSAN compatible with lockdep Date: Fri, 17 Jan 2020 11:59:39 -0500 Message-Id: <3760F60F-4133-4FE1-9A4C-F335A8230285@lca.pw> References: <20200117164017.GA21582@paulmck-ThinkPad-P72> Cc: Marco Elver , Alexander Potapenko , Andrey Konovalov , Dmitriy Vyukov , kasan-dev , LKML , Peter Zijlstra , Ingo Molnar , Will Deacon In-Reply-To: <20200117164017.GA21582@paulmck-ThinkPad-P72> To: paulmck@kernel.org X-Mailer: iPhone Mail (17C54) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Jan 17, 2020, at 11:40 AM, Paul E. McKenney wrote:= >=20 > True enough, but even if we reach the nirvana state where there is general= > agreement on what constitutes a data race in need of fixing and KCSAN > faithfully checks based on that data-race definition, we need to handle > the case where someone introduces a bug that results in a destructive > off-CPU access to a per-CPU variable, which is exactly the sort of thing > that KCSAN is supposed to detect. But suppose that this variable is > frequently referenced from functions that are inlined all over the place. >=20 > Then that one bug might result in huge numbers of data-race reports in > a very short period of time, especially on a large system. It sounds like the case with debug_pagealloc where it prints a spam of those= , and then the system is just dead. [ 28.992752][ T394] Reported by Kernel Concurrency Sanitizer on:=20 [ 28.992752][ T394] CPU: 0 PID: 394 Comm: pgdatinit0 Not tainted 5.5.0-rc= 6-next-20200115+ #3=20 [ 28.992752][ T394] Hardware name: HP ProLiant XL230a Gen9/ProLiant XL230= a Gen9, BIOS U13 01/22/2018=20 [ 28.992752][ T394] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 [ 28.992752][ T394] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 [ 28.992752][ T394] BUG: KCSAN: data-race in __change_page_attr / __chang= e_page_attr=20 [ 28.992752][ T394] =20 [ 28.992752][ T394] read to 0xffffffffa01a6de0 of 8 bytes by task 395 on c= pu 16:=20 [ 28.992752][ T394] __change_page_attr+0xe81/0x1620=20 [ 28.992752][ T394] __change_page_attr_set_clr+0xde/0x4c0=20 [ 28.992752][ T394] __set_pages_np+0xcc/0x100=20 [ 28.992752][ T394] __kernel_map_pages+0xd6/0xdb=20 [ 28.992752][ T394] __free_pages_ok+0x1a8/0x730=20 [ 28.992752][ T394] __free_pages+0x51/0x90=20 [ 28.992752][ T394] __free_pages_core+0x1c7/0x2c0=20 [ 28.992752][ T394] deferred_free_range+0x59/0x8f=20 [ 28.992752][ T394] deferred_init_max21d=20 [ 28.992752][ T394] deferred_init_memmap+0x14a/0x1c1=20 [ 28.992752][ T394] kthread+0x1e0/0x200=20 [ 28.992752][ T394] ret_from_fork+0x3a/0x50=20 [ 28.992752][ T394] =20 [ 28.992752][ T394] write to 0xffffffffa01a6de0 of 8 bytes by task 394 on= cpu 0:=20 [ 28.992752][ T394] __change_page_attr+0xe9c/0x1620=20 [ 28.992752][ T394] __change_page_attr_set_clr+0xde/0x4c0=20 [ 28.992752][ T394] __set_pages_np+0xcc/0x100=20 [ 28.992752][ T394] __kernel_map_pages+0xd6/0xdb=20 [ 28.992752][ T394] __free_pages_ok+0x1a8/0x730=20 [ 28.992752][ T394] __free_pages+0x51/0x90=20 [ 28.992752][ T394] __free_pages_core+0x1c7/0x2c0=20 [ 28.992752][ T394] deferred_free_range+0x59/0x8f=20 [ 28.992752][ T394] deferred_init_maxorder+0x1d6/0x21d=20 [ 28.992752][ T394] deferred_init_memmap+0x14a/0x1c1=20 [ 28.992752][ T394] kthread+0x1e0/0x200=20 [ 28.992752][ T394] ret_from_fork+0x3a/0x50=20 It point out to this, pgprot_val(new_prot) &=3D ~pgprot_val(cpa->mask_clr); pgprot_val(new_prot) |=3D pgprot_val(cpa->mask_set); cpa_inc_4k_install(); /* Hand in lpsize =3D 0 to enforce the protection mechanism= */ new_prot =3D static_protections(new_prot, address, pfn, 1, 0= , CPA_PROTECT); In static_protections(), /* * There is no point in checking RW/NX conflicts when the requested= * mapping is setting the page !PRESENT. */ if (!(pgprot_val(prot) & _PAGE_PRESENT)) return prot; Is there a data race there?