Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3965975pxj; Tue, 11 May 2021 16:25:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy8K8VJuAeScDKtiDnzAFNxMSHFnobsews0dNYCHm4iftwMUkN++ikKq1TQEMx8ewjTQUU+ X-Received: by 2002:a4a:a58f:: with SMTP id d15mr25294865oom.32.1620775545839; Tue, 11 May 2021 16:25:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620775545; cv=none; d=google.com; s=arc-20160816; b=loQ0oHZvuC+UNcv4FpG03PXXNAW1dNgxvU9QcnKqqaAx7MAR+PDkvMXSzVLhO+mMVG O/pF8McV1oBu2hADqrmaQtYQppLuWbMXsVg7HZJ5Tr45WWB9+8V51f1xepUxI7F18gYP LGrihMm4+VR0XHKWf5s89F7RIvAC7xOjf8XozBdqYz3odD9a4q3E0eQ8HXENwZS5F6hc GlJ/nYRMuP2rf5mMkIqyaUSjP5UpIcH8gF0Dx+6SMHy8N0OZpWp39vTtk+Hu/KUleK7l M/Xk3kAcqdhpAxynNo7Iq322H20aJ5Kg/N8wDagNxXE0HmVuW0WKnlY2vPkVE24g5SrO trZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=lr1xxAMohpXDjBZCP9VjhU21lShEPNCBRmlKff5WngQ=; b=sPXusAtQw37x96H0X6NkEdvjlzylkLtFH0+lEMxJGys2ZhzV8qHeVmjQZq6W5x83BI UDYpWtEZmDqkOe4/orhVO7ge3QrI9CJLQZaFtuFSvsJ7H1fei1xAj6gYp7deiNK8WZAY hPM+Y7OVtBgJFdPjx0ODo+zgsFE1skZi/SahbYY4XaXAUVrEmuwMKhzwpA2xHqpCIr7H OK32cql3pIXJ70OPTTAMKANYx/hRiwMZuTEiV2rUZkpZBESfdY30KlrKDOPgFb3VEqrR PKlKu3m3AVEiU/h3Jrhme4BQxNgX0lEIhKdBopjvPrVjm4iwA51438R/8VZfQ4NKWwAn yqtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tDIr4JWH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q7si17248412otn.319.2021.05.11.16.25.32; Tue, 11 May 2021 16:25:45 -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; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=tDIr4JWH; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230349AbhEKXZ0 (ORCPT + 99 others); Tue, 11 May 2021 19:25:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:52682 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230023AbhEKXZO (ORCPT ); Tue, 11 May 2021 19:25:14 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 53DAA61937; Tue, 11 May 2021 23:24:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620775447; bh=ZA9l0CqxGhiZpHarCz0uOvPkWZNqN4WRtJYXfdcXC5I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tDIr4JWHHOPNDeKtm3lDrbSuif2HphuSzax4vsKy0KXCohnZfrIxQh90aTyMzlgrh CjFRU4V4y4RRGC+o0TjOhomLRqedqxvSS2i1xHsJKcAFcke+8an9ddPSSyDXr8Dhus qfzTEeqiwLGpLoZzaZ6WX8qvqSWAMVwL6IMNGNO+nnGvxs5+4E8jJA1LQIEUr6Q89h RjOeDHZTW4gs8j/sxcc9VKv2yxzOPpf+WFbmkHS39wRKX50KsHxR9HC+evrYHP9/VC 53y0WRkGyYIaqGsltAUF9O6pN3Z51wp34RbKMMfU/nzuIALFbuJhM0aaCugKuJwJRl Aj5CgHtwIn7xg== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id ABD925C0DEA; Tue, 11 May 2021 16:24:06 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, kernel-team@fb.com, mingo@kernel.org Cc: elver@google.com, andreyknvl@google.com, glider@google.com, dvyukov@google.com, cai@lca.pw, boqun.feng@gmail.com, "Paul E . McKenney" Subject: [PATCH tip/core/rcu 10/10] kcsan: Document "value changed" line Date: Tue, 11 May 2021 16:24:01 -0700 Message-Id: <20210511232401.2896217-10-paulmck@kernel.org> X-Mailer: git-send-email 2.31.1.189.g2e36527f23 In-Reply-To: <20210511231149.GA2895263@paulmck-ThinkPad-P17-Gen-1> References: <20210511231149.GA2895263@paulmck-ThinkPad-P17-Gen-1> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Marco Elver Update the example reports based on the latest reports generated by kcsan_test module, which now include the "value changed" line. Add a brief description of the "value changed" line. Signed-off-by: Marco Elver Signed-off-by: Paul E. McKenney --- Documentation/dev-tools/kcsan.rst | 88 ++++++++++++------------------- 1 file changed, 35 insertions(+), 53 deletions(-) diff --git a/Documentation/dev-tools/kcsan.rst b/Documentation/dev-tools/kcsan.rst index 80894664a44c..d1efd9cef6a2 100644 --- a/Documentation/dev-tools/kcsan.rst +++ b/Documentation/dev-tools/kcsan.rst @@ -27,75 +27,57 @@ Error reports A typical data race report looks like this:: ================================================================== - BUG: KCSAN: data-race in generic_permission / kernfs_refresh_inode - - write to 0xffff8fee4c40700c of 4 bytes by task 175 on cpu 4: - kernfs_refresh_inode+0x70/0x170 - kernfs_iop_permission+0x4f/0x90 - inode_permission+0x190/0x200 - link_path_walk.part.0+0x503/0x8e0 - path_lookupat.isra.0+0x69/0x4d0 - filename_lookup+0x136/0x280 - user_path_at_empty+0x47/0x60 - vfs_statx+0x9b/0x130 - __do_sys_newlstat+0x50/0xb0 - __x64_sys_newlstat+0x37/0x50 - do_syscall_64+0x85/0x260 - entry_SYSCALL_64_after_hwframe+0x44/0xa9 - - read to 0xffff8fee4c40700c of 4 bytes by task 166 on cpu 6: - generic_permission+0x5b/0x2a0 - kernfs_iop_permission+0x66/0x90 - inode_permission+0x190/0x200 - link_path_walk.part.0+0x503/0x8e0 - path_lookupat.isra.0+0x69/0x4d0 - filename_lookup+0x136/0x280 - user_path_at_empty+0x47/0x60 - do_faccessat+0x11a/0x390 - __x64_sys_access+0x3c/0x50 - do_syscall_64+0x85/0x260 - entry_SYSCALL_64_after_hwframe+0x44/0xa9 + BUG: KCSAN: data-race in test_kernel_read / test_kernel_write + + write to 0xffffffffc009a628 of 8 bytes by task 487 on cpu 0: + test_kernel_write+0x1d/0x30 + access_thread+0x89/0xd0 + kthread+0x23e/0x260 + ret_from_fork+0x22/0x30 + + read to 0xffffffffc009a628 of 8 bytes by task 488 on cpu 6: + test_kernel_read+0x10/0x20 + access_thread+0x89/0xd0 + kthread+0x23e/0x260 + ret_from_fork+0x22/0x30 + + value changed: 0x00000000000009a6 -> 0x00000000000009b2 Reported by Kernel Concurrency Sanitizer on: - CPU: 6 PID: 166 Comm: systemd-journal Not tainted 5.3.0-rc7+ #1 - Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 + CPU: 6 PID: 488 Comm: access_thread Not tainted 5.12.0-rc2+ #1 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 ================================================================== The header of the report provides a short summary of the functions involved in the race. It is followed by the access types and stack traces of the 2 threads -involved in the data race. +involved in the data race. If KCSAN also observed a value change, the observed +old value and new value are shown on the "value changed" line respectively. The other less common type of data race report looks like this:: ================================================================== - BUG: KCSAN: data-race in e1000_clean_rx_irq+0x551/0xb10 - - race at unknown origin, with read to 0xffff933db8a2ae6c of 1 bytes by interrupt on cpu 0: - e1000_clean_rx_irq+0x551/0xb10 - e1000_clean+0x533/0xda0 - net_rx_action+0x329/0x900 - __do_softirq+0xdb/0x2db - irq_exit+0x9b/0xa0 - do_IRQ+0x9c/0xf0 - ret_from_intr+0x0/0x18 - default_idle+0x3f/0x220 - arch_cpu_idle+0x21/0x30 - do_idle+0x1df/0x230 - cpu_startup_entry+0x14/0x20 - rest_init+0xc5/0xcb - arch_call_rest_init+0x13/0x2b - start_kernel+0x6db/0x700 + BUG: KCSAN: data-race in test_kernel_rmw_array+0x71/0xd0 + + race at unknown origin, with read to 0xffffffffc009bdb0 of 8 bytes by task 515 on cpu 2: + test_kernel_rmw_array+0x71/0xd0 + access_thread+0x89/0xd0 + kthread+0x23e/0x260 + ret_from_fork+0x22/0x30 + + value changed: 0x0000000000002328 -> 0x0000000000002329 Reported by Kernel Concurrency Sanitizer on: - CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.3.0-rc7+ #2 - Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 + CPU: 2 PID: 515 Comm: access_thread Not tainted 5.12.0-rc2+ #1 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 ================================================================== This report is generated where it was not possible to determine the other racing thread, but a race was inferred due to the data value of the watched -memory location having changed. These can occur either due to missing -instrumentation or e.g. DMA accesses. These reports will only be generated if -``CONFIG_KCSAN_REPORT_RACE_UNKNOWN_ORIGIN=y`` (selected by default). +memory location having changed. These reports always show a "value changed" +line. A common reason for reports of this type are missing instrumentation in +the racing thread, but could also occur due to e.g. DMA accesses. Such reports +are shown only if ``CONFIG_KCSAN_REPORT_RACE_UNKNOWN_ORIGIN=y``, which is +enabled by default. Selective analysis ~~~~~~~~~~~~~~~~~~ -- 2.31.1.189.g2e36527f23