All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <error27@gmail.com>
To: linux-block@vger.kernel.org
Cc: Julia Lawall <julia.lawall@inria.fr>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Hongchen Zhang <zhanghongchen@loongson.cn>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Christian Brauner (Microsoft)" <brauner@kernel.org>,
	David Howells <dhowells@redhat.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	"Fabio M. De Francesco" <fmdefrancesco@gmail.com>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	maobibo <maobibo@loongson.cn>,
	Matthew Wilcox <willy@infradead.org>,
	Sedat Dilek <sedat.dilek@gmail.com>
Subject: block: sleeping in atomic warnings
Date: Tue, 7 Feb 2023 17:06:29 +0300	[thread overview]
Message-ID: <Y+Ja5SRs886CEz7a@kadam> (raw)
In-Reply-To: <4ffbb0c8-c5d0-73b3-7a4e-2da9a7b03669@inria.fr>

These are static checker warnings from Smatch.  The line numbers are
based on next-20230203.  To reproduce these warnings then you need to
have the latest Smatch from git and you need to rebuild the cross
function probably four times.  I have reviewed these.  The first few
seem like real issues.  I can't make heads or tails out of the
__blk_mq_run_hw_queue() warning.  I suspect that the last warning is a
false positive.  I remember I reported some a while back but never
heard back.  https://lore.kernel.org/all/YNx1r8Jr3+t4bch%2F@mwanda/

regards,
dan carpenter

block/blk-crypto-profile.c:382 __blk_crypto_evict_key() warn: sleeping in atomic context
block/blk-crypto-profile.c:390 __blk_crypto_evict_key() warn: sleeping in atomic context
put_super() <- disables preempt
__iterate_supers() <- disables preempt
iterate_supers() <- disables preempt
iterate_supers_type() <- disables preempt
get_super() <- disables preempt
user_get_super() <- disables preempt
-> __put_super()
   -> fscrypt_destroy_keyring()
      -> fscrypt_put_master_key_activeref()
         -> fscrypt_destroy_prepared_key()
            -> fscrypt_destroy_inline_crypt_key()
               -> blk_crypto_evict_key()
blk_crypto_evict_key() <duplicate>
-> blk_crypto_fallback_evict_key()
                  -> __blk_crypto_evict_key()

block/blk-mq.c:206 blk_freeze_queue() warn: sleeping in atomic context
rexmit_timer() <- disables preempt
-> aoedev_downdev()
   -> blk_mq_freeze_queue()
      -> blk_freeze_queue()

block/blk-mq.c:4083 blk_mq_destroy_queue() warn: sleeping in atomic context
nvme_fc_match_disconn_ls() <- disables preempt
-> nvme_fc_ctrl_put()
   -> nvme_fc_ctrl_free()
      -> nvme_remove_admin_tag_set()
nvme_fc_ctrl_free() <duplicate>
-> nvme_remove_io_tag_set()
         -> blk_mq_destroy_queue()

block/blk-mq.c:2174 __blk_mq_run_hw_queue() warn: sleeping in atomic context
__blk_mq_run_hw_queue() <duplicate>
-> blk_mq_sched_dispatch_requests()
   -> __blk_mq_sched_dispatch_requests()
      -> blk_mq_do_dispatch_sched()
blk_mq_do_dispatch_sched() <duplicate>
-> __blk_mq_do_dispatch_sched()
   -> blk_mq_dispatch_hctx_list()
__blk_mq_do_dispatch_sched() <duplicate>
__blk_mq_sched_dispatch_requests() <duplicate>
-> blk_mq_do_dispatch_ctx()
__blk_mq_sched_dispatch_requests() <duplicate>
      -> blk_mq_dispatch_rq_list()
__blk_mq_do_dispatch_sched() <duplicate>
blk_mq_do_dispatch_ctx() <duplicate>
-> blk_mq_delay_run_hw_queues()
         -> blk_mq_delay_run_hw_queue()
sg_remove_sfp_usercontext() <- disables preempt
-> sg_finish_rem_req()
dd_insert_requests() <- disables preempt
-> dd_insert_request()
   -> blk_mq_free_requests()
mspro_block_complete_req() <- disables preempt
mspro_queue_rq() <- disables preempt
-> mspro_block_issue_req()
mspro_block_complete_req() <- disables preempt <duplicate>
aoe_flush_iocq_by_index() <- disables preempt
rexmit_timer() <- disables preempt
-> aoedev_downdev()
   -> aoe_failip()
aoedev_downdev() <duplicate>
-> downdev_frame()
      -> aoe_failbuf()
         -> aoe_end_buf()
aoe_failip() <duplicate>
            -> aoe_end_request()
               -> __blk_mq_end_request()
                  -> blk_mq_free_request()
                     -> __blk_mq_free_request()
                        -> blk_mq_sched_restart()
                           -> __blk_mq_sched_restart()
blk_mq_sched_dispatch_requests() <duplicate>
blk_mq_dispatch_rq_list() <duplicate>
rexmit_timer() <- disables preempt <duplicate>
aoe_end_request() <duplicate>
bfq_finish_requeue_request() <- disables preempt
-> bfq_completed_request()
bfq_idle_slice_timer_body() <- disables preempt
bfq_pd_offline() <- disables preempt
-> bfq_put_async_queues()
   -> __bfq_put_async_bfqq()
bfq_bio_merge() <- disables preempt
bfq_insert_request() <- disables preempt
-> bfq_init_rq()
   -> bfq_bic_update_cgroup()
      -> __bfq_bic_change_cgroup()
         -> bfq_sync_bfqq_move()
bfq_pd_offline() <- disables preempt <duplicate>
-> bfq_reparent_active_queues()
   -> bfq_reparent_leaf_entity()
            -> bfq_bfqq_move()
               -> bfq_schedule_dispatch()
nvme_fc_match_disconn_ls() <- disables preempt
-> nvme_fc_ctrl_put()
   -> nvme_fc_ctrl_free()
      -> nvme_unquiesce_admin_queue()
         -> blk_mq_unquiesce_queue()
                  -> blk_mq_run_hw_queues()
virtblk_done() <- disables preempt
virtblk_poll() <- disables preempt
-> blk_mq_start_stopped_hw_queues()
   -> blk_mq_start_stopped_hw_queue()
                              -> blk_mq_run_hw_queue()
                                 -> __blk_mq_delay_run_hw_queue()
                                    -> __blk_mq_run_hw_queue()

block/blk-wbt.c:843 wbt_init() warn: sleeping in atomic context
ioc_qos_write() <- disables preempt
-> wbt_enable_default()
   -> wbt_init()


  parent reply	other threads:[~2023-02-07 14:06 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-29  6:04 [PATCH v4] pipe: use __pipe_{lock,unlock} instead of spinlock Hongchen Zhang
2023-01-29  7:33 ` Linus Torvalds
2023-02-03  2:24   ` Hongchen Zhang
2023-02-06 15:58   ` Luis Chamberlain
2023-02-06 16:07     ` Linus Torvalds
2023-02-06 16:13     ` Julia Lawall
2023-02-06 16:45       ` Dan Carpenter
2023-02-06 17:54         ` Luis Chamberlain
2023-02-07  7:02           ` Dan Carpenter
2023-02-06 18:25         ` Linus Torvalds
2023-02-07 13:37         ` xen: sleeping in atomic warnings Dan Carpenter
2023-02-07 14:03           ` Juergen Gross
2023-02-07 14:06       ` Dan Carpenter [this message]
2023-02-07 16:15         ` block: " Linus Torvalds
2023-02-07 17:53           ` Eric Biggers
2023-02-07 18:24             ` Linus Torvalds
2023-02-07 18:36               ` Eric Biggers
2023-02-07 18:57                 ` Linus Torvalds
2023-02-07 19:09                   ` Linus Torvalds
2023-02-07 19:35                   ` Eric Biggers
2023-02-07 19:49                     ` Linus Torvalds
2023-02-08  6:53                     ` Eric Biggers
2023-02-07 18:31         ` Jens Axboe
2023-02-08  3:15           ` Yu Kuai
2023-02-03  1:42 ` [PATCH v4] pipe: use __pipe_{lock,unlock} instead of spinlock Hongchen Zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+Ja5SRs886CEz7a@kadam \
    --to=error27@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=dhowells@redhat.com \
    --cc=edumazet@google.com \
    --cc=fmdefrancesco@gmail.com \
    --cc=julia.lawall@inria.fr \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maobibo@loongson.cn \
    --cc=mcgrof@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sedat.dilek@gmail.com \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    --cc=zhanghongchen@loongson.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.