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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 31C2DC71149 for ; Fri, 18 Aug 2023 13:37:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9F477280051; Fri, 18 Aug 2023 09:37:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9A4E5940053; Fri, 18 Aug 2023 09:37:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89539280051; Fri, 18 Aug 2023 09:37:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7B803940053 for ; Fri, 18 Aug 2023 09:37:20 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5C2AC1A086A for ; Fri, 18 Aug 2023 13:37:20 +0000 (UTC) X-FDA: 81137327040.29.ADC315F Received: from domac.alu.hr (domac.alu.unizg.hr [161.53.235.3]) by imf27.hostedemail.com (Postfix) with ESMTP id CD0F740019 for ; Fri, 18 Aug 2023 13:37:16 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=alu.unizg.hr header.s=mail header.b=QFceNfqk; dkim=pass header.d=alu.unizg.hr header.s=mail header.b=JY+M12w0; dmarc=pass (policy=none) header.from=alu.unizg.hr; spf=pass (imf27.hostedemail.com: domain of mirsad.todorovac@alu.unizg.hr designates 161.53.235.3 as permitted sender) smtp.mailfrom=mirsad.todorovac@alu.unizg.hr ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692365837; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=HtR5djQMUNyoaImMKaFZDMY62q6/s9ly4ltBgBCpzyw=; b=AR1uTtDcAhXtDtlHiixVqHWgJtUVBsnew1uaLNt8aj3Tq3WYagjdUf/pXs1Zr2PK0Ye+Rj XSDTruhheIygu1ZLYe7W0hV9P/Li2Yj1g2YZXTMb1S0K9PDO3wVWx5DDyjqjemzvSI3OD6 NQjaK8dJuUC+RKz9+3hL1s0pOtaWVmk= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=alu.unizg.hr header.s=mail header.b=QFceNfqk; dkim=pass header.d=alu.unizg.hr header.s=mail header.b=JY+M12w0; dmarc=pass (policy=none) header.from=alu.unizg.hr; spf=pass (imf27.hostedemail.com: domain of mirsad.todorovac@alu.unizg.hr designates 161.53.235.3 as permitted sender) smtp.mailfrom=mirsad.todorovac@alu.unizg.hr ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692365837; a=rsa-sha256; cv=none; b=rWA3XDMzgIHuh6gotPG6l3yrYKJ3lvhW9kTxxzsxaLGZh7EbjpIp0vynGyIIeqyU4yPRhx x1oM8i5nFpl9piV7S9R44YB0FWlscILdaBt45gjSP4VZ4oR1A1hoIX+mboG4lJ+NsUvKML DlR/MTVe4abl6ObMp445YIIyBHe0j/0= Received: from localhost (localhost [127.0.0.1]) by domac.alu.hr (Postfix) with ESMTP id 1870360174; Fri, 18 Aug 2023 15:37:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=alu.unizg.hr; s=mail; t=1692365834; bh=9ABLKJW3znMF+2BnIavfP3lVeGPtkFRbVSJFS/sFuwU=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=QFceNfqkxa6IrvniGKAkiEIFCCiDprfZ6RUexdlhUg+UVodUoc5t8EVtgDyAl+M63 Ff14aJnlr9p6idlaqs+oGJeLOt8XtlCpkH0CWNBaRF2PqmG83BUIwnxQXJb8qlnpsw zMkj9avzFk6FpjM/G2jm525Fh+t+hxF6E3UEkszLeG76dT811M3I2UgtRz49fRdQpl carSUgKaq9wK/hrxcUqu4a+E1CpBzLS59Od05QXQvJWTENSiok0BlS1J1nGExrJb6O w4WyntMaZmM40XDJ5QTB3qjgzM1JlZhSkZpGFjIugGhkTiEli0w8xS4x1iBAYdvqn2 d4Ash8fp73BGw== X-Virus-Scanned: Debian amavisd-new at domac.alu.hr Received: from domac.alu.hr ([127.0.0.1]) by localhost (domac.alu.hr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5xledPWCeM6A; Fri, 18 Aug 2023 15:37:11 +0200 (CEST) Received: from [192.168.1.6] (unknown [94.250.191.183]) by domac.alu.hr (Postfix) with ESMTPSA id 799646015E; Fri, 18 Aug 2023 15:37:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=alu.unizg.hr; s=mail; t=1692365831; bh=9ABLKJW3znMF+2BnIavfP3lVeGPtkFRbVSJFS/sFuwU=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=JY+M12w0DrzenKc08++lqJyPfBRwl7mMBflod1nU9OXh4D4BuygYLgQsd9abfumXb s4LxvVe/Zb3DCupIxtEqauGp72PXFg53GAEumzGglOwZ7WlyWlSsDzZzOWPknC6S+S LMfMc0gzz//kZkuYtW/frocVvlNrSr97K919PBaOBwSzrGZGPdtOK75TAwLY836ZoD fxpadD15/1v4xfp4EYHFVueXXkEQBTEFy/6v21aWK6oRMitKq6uHS9UJFVXFk0/n89 yE4+n9Mic2RUcUbxfzplHpm/SpNoo3zJzrBwjz8ptGPveGXE4Fskh26ryl1klYccj+ pBtZJN47m2uXQ== Message-ID: <873686fb-6e42-493d-2dcd-f0f04cbcb0c0@alu.unizg.hr> Date: Fri, 18 Aug 2023 15:37:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 Subject: Re: [BUG] KCSAN: data-race in xas_clear_mark / xas_find_marked Content-Language: en-US To: Matthew Wilcox Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton , linux-mm@kvack.org, Chris Mason , Josef Bacik , David Sterba , linux-btrfs@vger.kernel.org References: <06645d2b-a964-1c4c-15cf-42ccc6c6e19b@alu.unizg.hr> From: Mirsad Todorovac In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: ia3i8jg56kdrrccr7od5risrje8exuur X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: CD0F740019 X-HE-Tag: 1692365836-617827 X-HE-Meta: U2FsdGVkX19S+hvH5n/RPPnxkN0p2dVEfH0q1HDnRARlolBEI6FcDxxeGIJfD+4kmisnCYTXqWbS7F8gA/ApFizFXFuWuRbbJEG6jZYSUs7spubPG4r1f9bk9pCV+8AkU8IjTSCk4y1DxG7eQVrU0ovSuGSqpUKzmotyw6Nb0NcI7y9hTvhOlcgkAQBQsLNjKrCOcnZJ2qgR5jNP1bwwqSjC6lu/4/I64llMb0yZrucFlC0l5Sf6w72PHnHS4bBu46I241pH4r0t8TeDX+IponxTy9IQgIOzl7SjQhz7nV4zHiYvmhV6KtvsVeKoU/0NmfTb+yy9IPikjLlbYGwj5BpOuJYyiz4m2I/MPiwmTersXAPCNWCpwfGMwI7SADtYvTEW0gu8M/bmVeMnrEW0ocisfH8eYsT/8JAcxjJbt8lxbE+u5QCs6S0zaODY7JW+4EIBNYZ0oRSFuUOTD13hsRtsDNAfndFKWhkWMNJFUplEkVb3MJHMm4OFoEWqIjHXhsZi2WFwOiO3JJ5kLJ3YO9YDQDQL56n43inyTMls2BQuhDXhTIYvx746erfGBv2ckO0qP4MDYhzch11PdtvJB5HvP0+s13+xVnE5oocPqXs/6ESOy8e/00n7OYB8MyPtanBjzp09j6kuNtZMmpEy2Ss+PWfbNDaBE++tQ556eDI8NrxP1GooGILpH0ICIch3khKDm6akWqZXy4XEIestzBoDRAgr8UXDRf+3oZ07s9esKfvmbb6ahpX9ULZTXa8Tjm6q3DgNhEqV3iMRgDJkVYWk7jtUvEkKq8Bf00bTXJWNk0FG1wrdN30sQLJHUgpHBhSJ+VYX8qZdAWRbGdYptJ1yi6ExqT3IDq0043FRJXXHZRohIFZGm5ExgdwrcCovy3/18WPB7jqFuJKeZVS9+pmrY2AhbXU5DIyYe0JouiMDAMw0+rD1tJD4NsjmVc2NWrSBYXW84JsfrsPaIAn s8FNQ1Nk GNl9942CpJ9n69lvq9RBBpI+W9P7kK/1FG52LboFchKway7VLhG8DBanD7NnR0+G2UbdkkNs/zso6mJLKPojR1Jz0wYlso4h3Pvy2zye/iMfu0e9ScewlHc4vZ2duHMqTlatwEpPf6eS7DVFvSo+Su2ohAwY8tIOSD8IVkrUoZEpK2/5DafFx7WDUQYR+wkXrwjTTwT2WJOzaa041tMN4Pxgqbw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000211, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 8/18/23 14:21, Matthew Wilcox wrote: > On Fri, Aug 18, 2023 at 10:01:32AM +0200, Mirsad Todorovac wrote: >> [ 206.510010] ================================================================== >> [ 206.510035] BUG: KCSAN: data-race in xas_clear_mark / xas_find_marked >> >> [ 206.510067] write to 0xffff963df6a90fe0 of 8 bytes by interrupt on cpu 22: >> [ 206.510081] xas_clear_mark+0xd5/0x180 >> [ 206.510097] __xa_clear_mark+0xd1/0x100 >> [ 206.510114] __folio_end_writeback+0x293/0x5a0 >> [ 206.520722] read to 0xffff963df6a90fe0 of 8 bytes by task 2793 on cpu 6: >> [ 206.520735] xas_find_marked+0xe5/0x600 >> [ 206.520750] filemap_get_folios_tag+0xf9/0x3d0 > Also, before submitting this kind of report, you should run the > trace through scripts/decode_stacktrace.sh to give us line numbers > instead of hex offsets, which are useless to anyone who doesn't have > your exact kernel build. > >> [ 206.510010] ================================================================== >> [ 206.510035] BUG: KCSAN: data-race in xas_clear_mark / xas_find_marked >> >> [ 206.510067] write to 0xffff963df6a90fe0 of 8 bytes by interrupt on cpu 22: >> [ 206.510081] xas_clear_mark (./arch/x86/include/asm/bitops.h:178 ./include/asm-generic/bitops/instrumented-non-atomic.h:115 lib/xarray.c:102 lib/xarray.c:914) >> [ 206.510097] __xa_clear_mark (lib/xarray.c:1923) >> [ 206.510114] __folio_end_writeback (mm/page-writeback.c:2981) > > This path is properly using xa_lock_irqsave() before calling > __xa_clear_mark(). > >> [ 206.520722] read to 0xffff963df6a90fe0 of 8 bytes by task 2793 on cpu 6: >> [ 206.520735] xas_find_marked (./include/linux/xarray.h:1706 lib/xarray.c:1354) >> [ 206.520750] filemap_get_folios_tag (mm/filemap.c:1975 mm/filemap.c:2273) > > This takes the RCU read lock before calling xas_find_marked() as it's > supposed to. > > What garbage do I have to write to tell KCSAN it's wrong? The line > that's probably triggering it is currently: > > unsigned long data = *addr & (~0UL << offset); Hi, Mr. Wilcox, Thank you for your evaluation of the bug report. I am new to KCSAN. I was not aware of KCSAN false positives thus far, so my best bet was to report them. I thought that maybe READ_ONCE() was required, but I will trust your judgment. I hope I can find this resolved. Best regards, Mirsad Todorovac