Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp1581252rdb; Sat, 2 Dec 2023 01:21:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IHHnbWZ8SBNlho1eviArG7PdR6qG1IjUS4trfahZlDiuCDnLRrOhL1uKMfH8l7iPcEFVLAL X-Received: by 2002:a17:902:c94e:b0:1cf:c67e:8f43 with SMTP id i14-20020a170902c94e00b001cfc67e8f43mr1018303pla.7.1701508874004; Sat, 02 Dec 2023 01:21:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701508873; cv=none; d=google.com; s=arc-20160816; b=o5Vz7153Dwdurv3zk3FwurAEXvC3zSOPubkIK/QBFBuF+SThrnoa6MdYVMDkEjX4Pd wHk6hgFk3cm0Gfhr2hsAsyOOlApSEEuQqMnYMeQ6bZAXcv8bKphLakVRskKH5VJL0oMc SI7FTVjs8j02WX5ZKOKT6nsgs6NyNAw4UTOJc4JGtJVCD82hFxx88wcEEXvAFxrGsTd0 LH5BvcSTfmUJ58xFIg+hURHoYGNWI20PMwWV+BlMZv05o2mF5RiDLTKacUoO6fmEUk0D 3Ueu0NMbOtutB1fb8EU5H7sxfm/CX3E16VJ2+KiAppcmWL6o43u2Jym2YzY3dbusqgpw uJ4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:cc:to :subject; bh=/koFBiPrpnZZb0epY8Ljfy7niYuvHywGkH4en2TXXAk=; fh=IHxq8fTOeRwNunIY89khbuXkRimGkaV6lw1GTLBnfd0=; b=L4lSekt9iBd/3UC8LrBeQtnNxkoofUGwVEZYe154kc073B6xqoxKfESLuctHIFjcEP VfoD5zHA15bm9adJjQeJMbOCTEwkTdlueed4ZtEOsLFEXRE/rEQO5qbrssv75AGvgmIY gA18xVZe0fGvuZN+xK/w9k/ttAkbuHcTykhBnyMsuTXUZRSdvp3rw5sbbmJ4q18QokJB dZHQ2IsCAg3or6/kF0FgW5aZJnekF32eMdO58B6VaJpXKJebGsaCu1bL44Q0v/w+PtDN C28VYJ7Kig+pwfvyxBPM28FUe3H7Hggazg4OFKF3M0spvwV4vsu9aqBbwc4gc9k2l+Xp MfGA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id w13-20020a170902e88d00b001cfa17ec32csi4919724plg.615.2023.12.02.01.21.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 Dec 2023 01:21:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 6459780CE7D5; Sat, 2 Dec 2023 01:21:11 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231851AbjLBJT0 (ORCPT + 99 others); Sat, 2 Dec 2023 04:19:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231732AbjLBJTZ (ORCPT ); Sat, 2 Dec 2023 04:19:25 -0500 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF99D181; Sat, 2 Dec 2023 01:19:31 -0800 (PST) Received: from mail.maildlp.com (unknown [172.19.93.142]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4Sj4BP5ZLTz4f3kFv; Sat, 2 Dec 2023 17:19:25 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.112]) by mail.maildlp.com (Postfix) with ESMTP id CFE961A07F3; Sat, 2 Dec 2023 17:19:27 +0800 (CST) Received: from [10.174.176.73] (unknown [10.174.176.73]) by APP1 (Coremail) with SMTP id cCh0CgA3iA6d9mpldVEZCg--.44620S3; Sat, 02 Dec 2023 17:19:27 +0800 (CST) Subject: Re: [PATCH next] trace/blktrace: fix task hung in blk_trace_ioctl To: Edward Adam Davis , syzbot+ed812ed461471ab17a0c@syzkaller.appspotmail.com Cc: akpm@linux-foundation.org, axboe@kernel.dk, dvyukov@google.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, mhiramat@kernel.org, pengfei.xu@intel.com, rostedt@goodmis.org, syzkaller-bugs@googlegroups.com, "yukuai (C)" References: <00000000000047eb7e060b652d9a@google.com> From: Yu Kuai Message-ID: <5116cbb4-2c85-2459-5499-56c95bb42d16@huaweicloud.com> Date: Sat, 2 Dec 2023 17:19:25 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit X-CM-TRANSID: cCh0CgA3iA6d9mpldVEZCg--.44620S3 X-Coremail-Antispam: 1UD129KBjvJXoW7AFW7Jw1xXw1ktFyUZrW8JFb_yoW8CrW5pa yUGrsIkr95Ars8ta409w1fu397J3yv9FWUJr98Xr1rZ34DAryagF1Ivr4UurW8Kry8tFZ2 yFy5Zr1F9w4UXFDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv2b4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Cr0_Gr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I 0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40E x7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x 0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lFIxGxcIEc7CjxVA2Y2ka0xkIwI1lc7I2V7IY0VAS 07AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c 02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_ GFylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7 CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAF wI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa 7IU1zuWJUUUUU== X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/ X-Spam-Status: No, score=-2.3 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Sat, 02 Dec 2023 01:21:11 -0800 (PST) Hi, ?? 2023/12/02 17:01, Edward Adam Davis ะด??: > The reproducer involves running test programs on multiple processors separately, > in order to enter blkdev_ioctl() and ultimately reach blk_trace_ioctl() through > two different paths, triggering an AA deadlock. > > CPU0 CPU1 > --- --- > mutex_lock(&q->debugfs_mutex) mutex_lock(&q->debugfs_mutex) > mutex_lock(&q->debugfs_mutex) mutex_lock(&q->debugfs_mutex) > > > The first path: > blkdev_ioctl()-> > blk_trace_ioctl()-> > mutex_lock(&q->debugfs_mutex) > > The second path: > blkdev_ioctl()-> > blkdev_common_ioctl()-> > blk_trace_ioctl()-> > mutex_lock(&q->debugfs_mutex) I still don't understand how this AA deadlock is triggered, does the 'debugfs_mutex' already held before calling blk_trace_ioctl()? > > The solution I have proposed is to exit blk_trace_ioctl() to avoid AA locks if > a task has already obtained debugfs_mutex. > > Fixes: 0d345996e4cb ("x86/kernel: increase kcov coverage under arch/x86/kernel folder") > Reported-and-tested-by: syzbot+ed812ed461471ab17a0c@syzkaller.appspotmail.com > Signed-off-by: Edward Adam Davis > --- > kernel/trace/blktrace.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c > index 54ade89a1ad2..34e5bce42b1e 100644 > --- a/kernel/trace/blktrace.c > +++ b/kernel/trace/blktrace.c > @@ -735,7 +735,8 @@ int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg) > int ret, start = 0; > char b[BDEVNAME_SIZE]; > > - mutex_lock(&q->debugfs_mutex); > + if (!mutex_trylock(&q->debugfs_mutex)) > + return -EBUSY; This is absolutely not a proper fix, a lot of user case will fail after this patch. Thanks, Kuai > > switch (cmd) { > case BLKTRACESETUP: >