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 7A026C6FD1D for ; Wed, 15 Mar 2023 16:14:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 18D986B0071; Wed, 15 Mar 2023 12:14:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 13E5E6B0072; Wed, 15 Mar 2023 12:14:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0059F6B0075; Wed, 15 Mar 2023 12:14:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id E5BCE6B0071 for ; Wed, 15 Mar 2023 12:14:19 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 8BACCC0968 for ; Wed, 15 Mar 2023 16:14:19 +0000 (UTC) X-FDA: 80571629838.15.D0A983F Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf19.hostedemail.com (Postfix) with ESMTP id D8D8A1A000E for ; Wed, 15 Mar 2023 16:14:16 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf19.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678896857; 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; bh=nZthY0/asZyctHEIC32DoXuEUzPdqSM1HWUTVNHBwls=; b=CRUKoTA5wt90Vi15B7vlmfLU630+qM09IP3LUbL+FJ2b9ummOFc4FkMKa1PRQHINCtF5Ay sg8GO9OZxbmUNVrl747affGmq6DDW5yIGq8cXr7Y6ud7MjlXKWf85mKtD4IIZrQ6hgblo8 c4TvJvMEpHDFVT0qrGN08IveiYC1XxE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf19.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678896857; a=rsa-sha256; cv=none; b=HSF7RfupvIv0lNdu4PWqRYjkhMx/pGua+luunmuMnLh0fxU+VIagXQz1g96bwNhNx3UwSw HgxFaHXEMO9xOGnTs6r0yerD98TvhOJcEW9IuEMJGuy31M7bH7lLfouS0JKuM2DHaUogJA VLnajcGE+tHhrn6XUbmN6/fVKeYcMKI= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 33603B81E67; Wed, 15 Mar 2023 16:14:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4CCC9C433D2; Wed, 15 Mar 2023 16:14:11 +0000 (UTC) Date: Wed, 15 Mar 2023 16:14:08 +0000 From: Catalin Marinas To: Andrey Konovalov Cc: Peter Collingbourne , =?utf-8?B?6KKB5biFKFNodWFpIFl1YW4p?= , Dmitry Vyukov , =?utf-8?B?5qyn6Ziz54Kc6ZKKKFdlaXpoYW8gT3V5YW5nKQ==?= , Andrey Ryabinin , Alexander Potapenko , Vincenzo Frascino , Andrew Morton , "kasan-dev@googlegroups.com" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Weizhao Ouyang , =?utf-8?B?5Lu756uL6bmPKFBlbmcgUmVuKQ==?= Subject: Re: [PATCH v2] kasan: fix deadlock in start_report() Message-ID: References: <93b94f59016145adbb1e01311a1103f8@zeku.com> <2b57491a9fab4ce9a643bd0922e03e73@zeku.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: D8D8A1A000E X-Stat-Signature: gb54ons9ohckox4rr6aym1p5fxnrp6u9 X-HE-Tag: 1678896856-93185 X-HE-Meta: U2FsdGVkX1//tEaDyCTg20HSc8r1AZhaphmAW4lu5ccFJ6dXxBoV+O0Sf4UR7q/DQJJTdvO57jpB+zScOGJv6Lpml/+cdy6BclFYyGMFlPpsyI+GuPkN2i0Efk6YfDAa9N4oYwE2s/MwYyTZaTMj08usbfUkHf/Pk+XLsvcKdMpy6DCoxvg+0hNN2G/mFJ6Qe4ebtToTCUe7ZO/Lmx+8xecPz9YILEOqtsQlyaOLdJh5ewBy4n/Qwx8RFotNr5gninYqGrhzDbUmMwvd7f2f4GaxJ7N50DoxGxMCD3oQsJqxen3E01Iw1GKnc4CLPblL0yp7mJZLlRRKP6ciyz5iGkuwmcLt2nkH/p+UaEurkolHKTnlFwNZaF7A7fmFTLAbJ6z7YWGpoH6+6DFybPiMlJiawpyeB3/yiBPSi1sO5MLIw1ezSm9gjYIsNVRwf2p8IhtVXa2tlJsK2T1ic5XQRxfH4xrb60C+tSfvMQFCHhEkpoJvrXklh/hkLyRATMmbh1LMfJmVG3fGfa4sk21GqAImi37I9LncuUo9ZVHU7blnC8YNFEOWsqrgW81AxZAsckX7ZW8v8X+gbYoeAU6pWDGwI6Bn+GViVcb12G0RoCPZt9VPV9+Lcb0YlvmFuSicJyOnYrQSinAkF7NOEj28s1Wlv5w5xxJ79r39UW48E3x1pPhAILu8WG8CvCnz7Aq7f5Mwmvg9ctIM7YyJjgMkElElUdtzPZhcH9cvOj9OvKJicXdJaLJsKFHWy0Bsr5FUdJbfynMGG0+xHmv8hdG7nMkWrEfqv1sYh7p3UntHcJ2cw4L4mzGLsoZkFhKKRU1Kk3PG3zQyJOPQIcL47w/Xsx54/l4m/lMyZw2GRqQWg3qvoJWeWn8LV2ZslSJQBrk999/8tcYRvFWgDsakRpxuE1anSrBfEv/S/bUlJPkNNcXppJ9B0KwQlmENbBL/Itvr7q2oTZ7fviybBMwZOZF Bh742dEk RBt4yQSny6m7UQbjhsdbdOf5yqye+xBLZCEflpoBZYsUn53eSczm53sHfCjJZaM19HDwkaQOljGqEz2WB+O4Pc8Y/9i/dmxqvfYifahW+PwohHne1M1+rdAeDBeeg0UkDHa/hKNOVj+A4mIAZsaFnpKmGcOL0N8v9Jjf0otgFJjYKloFRT3cDZ+zWGACbQVpYA+npwC3O/d0KeTHh340b00XcpFS7nxfi/kmV0z0/717DFD3JLEnLzP31IdsB1BddgyLNH83SpDZol003VgVvpoDe2hA+8Jf3HgHqtkc9Nd+S2wDTmHt/LISgUFeE12UgKBfIhpKmM5vX+NYBsEbLL2mydPo8kLUNeRvy3l0vopNDYi2qzESzbadpYL0Mt6UfdCzDthBR3VRESeWs0CL38KL3u0WDsy0UBif85y/c63mz9h2P0MVsiRTvm3vD66VT7GgTpzoFmEVaHwZMHnER/FDS628K0k6i0rOZb86RhaThpUOnIx+M+SnwBEiDST2J3qBuwp81JVM4hUu+CyvSJaCL0ZSvghCNiZrHc4A9plhrjmApmTIda+Wq6tSWNUj5qKls8LRc4GO19uEqVlt1K2+bf2orJbSaUe8HBW61rBKBTLNLjCykPIg5qtXBN7Y3YUnWGeqf7K9csofVlfq+O3yXFQ== 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: On Sat, Mar 11, 2023 at 12:42:20AM +0100, Andrey Konovalov wrote: > On Wed, Mar 1, 2023 at 6:00 PM Catalin Marinas wrote: > > Yes. I'm including Vincenzo's patch below (part of fixing some potential > > strscpy() faults with its unaligned accesses eager reading; we'll get to > > posting that eventually). You can add some arch_kasan_enable/disable() > > macros on top and feel free to include the patch below. > > Ah, perfect! I'll send a patchset soon. Thanks! > > > Now, I wonder whether we should link those into kasan_disable_current(). > > These functions only deal with the depth for KASAN_SW_TAGS but it would > > make sense for KASAN_HW_TAGS to enable tag-check-override so that we > > don't need to bother with a match-all tags on pointer dereferencing. > > Using these TCO routines requires having (at least) migration disabled, right? Not necessarily. The TCO is set per CPU and disabling preemption (I don't think migration is sufficient) would work but these routines are also called on a uaccess fault path, so it needs to be preemptible. We used to clear TCO on exception entry prior to commit 38ddf7dafaea ("arm64: mte: avoid clearing PSTATE.TCO on entry unless necessary") but we restore it anyway on exception return. I think the only problem is if between these routines, we invoke cond_resched() directly. Not sure what the kasan code does but disabling preemption should avoid a reschedule. Another option is for mte_thread_switch() to context switch the TCO state. -- Catalin