Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp38528ybe; Wed, 4 Sep 2019 14:42:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqzKV3S3E6XxVqKsj8lQbEp31jrbO0+x1377y1R2OKqGDn9BStHH64NOsQ2FAAHvNXlcHztC X-Received: by 2002:a17:902:ac94:: with SMTP id h20mr16716617plr.117.1567633320910; Wed, 04 Sep 2019 14:42:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567633320; cv=none; d=google.com; s=arc-20160816; b=L7oqJY+6zMR5heP4KCF/n1eKcQdSt3KDdax2vpa1IuocPE2skAld0dmV5+Y9y0s6oU crUfyHJ19R74egF1yYgQwBGoRWTK5cyH9ODCIgxZuRnAVOtHb5csgBAEMIshJJUEEBxl WiqSs5YILHol6LJHDvLU+droXJ4fkfGxSo8no3mk2G3gr6BndNojHDc/UKSstng6BOGM dmrpI+Zgd4gt3if9Esh1JcVtzi6w5s7ajNDkFNQoZLPu1x084yd41mLfn13ZuulvXljz 2ELVBt/317pivQQKRwRI2j+Hj9SwWLgiBEqx6oWNbQ5o2QWK8m9S5J2s4Lvo//t5Wxrq /bJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:message-id :subject:cc:to:from:date:dkim-signature; bh=0MXlNdDRrqJRDTO11X2I0qzQabr7EuyoaDjlEW34sB0=; b=HgWPmXpJQ8gEqMeCEzVT3/U7wQBZbwD6EZ9nkzyLr0z+4KF/sWFsjOWpQuV3BDKKW6 NlahqWjHsiC/pa2lUb+/B3f89D52UENISlw37HCKyHkerqLGrSX2/a+rnGiL1CKfpvkp ruY6UrCqOlw8PSZqOzV8e813TbvRMg0v07WVCpn2nXxsIvbEIKqB8WuIAC0k1+y++mnP ufpWYvf3KgHOFqwx9lJpdD51ilvtN/et1yhJTcV56T7Xs3VM9E7A48XDnMvQYsxAYweJ sGfEnPff3pXF4IFsNv2GEFK7v6UaQeiPDGwgZqqFIF6FSAB86+86w1/r2RXL0v/c6Gi3 edZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=lLktABIC; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j9si83171plt.315.2019.09.04.14.41.45; Wed, 04 Sep 2019 14:42:00 -0700 (PDT) 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=@google.com header.s=20161025 header.b=lLktABIC; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729640AbfIDVkq (ORCPT + 99 others); Wed, 4 Sep 2019 17:40:46 -0400 Received: from mail-pg1-f171.google.com ([209.85.215.171]:33359 "EHLO mail-pg1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726495AbfIDVkq (ORCPT ); Wed, 4 Sep 2019 17:40:46 -0400 Received: by mail-pg1-f171.google.com with SMTP id n190so161879pgn.0 for ; Wed, 04 Sep 2019 14:40:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:user-agent:mime-version; bh=0MXlNdDRrqJRDTO11X2I0qzQabr7EuyoaDjlEW34sB0=; b=lLktABICp/dvvtoR977IgPSzkDXv4FGqn/UXm18OEzW4/3HhYg/BmIbVEJkyQYN2Ug u/jrBaW67FFBDe5RJ6c6c/jJWQHUe53l0qwGkkp72YDS8XB02+xGC6j13I9X4yZ0Gqhq /5EDhlLzBcgJ/j4QgPKhYwEdHDogbBDjowAsXbYMGMSGCnoryjDu8Lx+6I1S86yFaiZS V9EEbi7L0eFN2ZaVFA9dNOEJSCJEPKPJJMhAcqBKzQ1/vnLMlWl9vZW9RAwCfNtiphBy zMa/fg6MSD2SP921/BC2v9vUe3NKDMrrMXBIi5v3U7BGXcb/6N68Imvz46imZVO23unc 20nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:user-agent :mime-version; bh=0MXlNdDRrqJRDTO11X2I0qzQabr7EuyoaDjlEW34sB0=; b=kREKzd59gOxTr8cXrzwFxkBdO0gXlqqh9qBeMG1la33l+H4Fw8jzqPw6We/DkbVIPp nfnGp/yjgETVVPhGHtNB+3fdQV6NY6NnDrKXVvOD5e+BeZWH8MpUygxDS0HXFSa2O34K zEWb39gLujCc2dym/ZpzJWgXl24Y30TEdNs9caZcdLoUWmB5ChSTt1lNltfVhBjg3YWY Ykt+mbbiqXcCvy4DLKSL0z+GEM60cwUXbJff4EchkpXHLbyxjo5BKagYMY+bbkwEfgBA 0OOAoQZwWLwpOqeZwfpyDOQpyitGm7VbNVIfy1i1ZbFVLeF/lH7gYh69R2HnKvozDNhi XrgQ== X-Gm-Message-State: APjAAAVW7tHHe8kcVsFEcO4ztd/IJhG8GhwVb7LZTb5S1uMNA8dKVBah oNQ4Q9NhS8h7E7pJiHVcUQrDSw== X-Received: by 2002:a62:cf82:: with SMTP id b124mr28032810pfg.159.1567633245566; Wed, 04 Sep 2019 14:40:45 -0700 (PDT) Received: from [2620:15c:17:3:3a5:23a7:5e32:4598] ([2620:15c:17:3:3a5:23a7:5e32:4598]) by smtp.gmail.com with ESMTPSA id b5sm17228pfp.38.2019.09.04.14.40.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Sep 2019 14:40:44 -0700 (PDT) Date: Wed, 4 Sep 2019 14:40:44 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: Tom Lendacky , Brijesh Singh , Christoph Hellwig , Jens Axboe , Ming Lei cc: Peter Gonda , Jianxiong Gao , linux-kernel@vger.kernel.org Subject: [bug] __blk_mq_run_hw_queue suspicious rcu usage Message-ID: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Christoph, Jens, and Ming, While booting a 5.2 SEV-enabled guest we have encountered the following WARNING that is followed up by a BUG because we are in atomic context while trying to call set_memory_decrypted: WARNING: suspicious RCU usage 5.2.0 #1 Not tainted ----------------------------- include/linux/rcupdate.h:266 Illegal context switch in RCU read-side critical section! other info that might help us debug this: rcu_scheduler_active = 2, debug_locks = 1 3 locks held by kworker/0:1H/97: #0: 0000000016e1b654 ((wq_completion)kblockd){+.+.}, at: process_one_work+0x1b5/0x5e0 #1: 00000000002674ff ((work_completion)(&(&hctx->run_work)->work)){+.+.}, at: process_one_work+0x1b5/0x5e0 #2: 00000000addb6aba (rcu_read_lock){....}, at: hctx_lock+0x17/0xe0 stack backtrace: CPU: 0 PID: 97 Comm: kworker/0:1H Not tainted 5.2.0 #1 Workqueue: kblockd blk_mq_run_work_fn Call Trace: dump_stack+0x67/0x90 ___might_sleep+0xfb/0x180 _vm_unmap_aliases+0x3e/0x1f0 __set_memory_enc_dec+0x7b/0x120 dma_direct_alloc_pages+0xcc/0x100 dma_pool_alloc+0xcf/0x1e0 nvme_queue_rq+0x5fb/0x9f0 blk_mq_dispatch_rq_list+0x350/0x5a0 blk_mq_do_dispatch_sched+0x76/0x110 blk_mq_sched_dispatch_requests+0x119/0x170 __blk_mq_run_hw_queue+0x6c/0xf0 process_one_work+0x23b/0x5e0 worker_thread+0x3d/0x390 kthread+0x121/0x140 ret_from_fork+0x27/0x50 hctx_lock() in __blk_mq_run_hw_queue() takes rcu_read_lock or srcu_read_lock depending on BLK_MQ_F_BLOCKING. dma_direct_alloc_pages() can then call set_memory_decrypted() which must be allowed to block. Any ideas on how to address this?