From: Mike Snitzer <snitzer@kernel.org>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Matthew Sakai <msakai@redhat.com>,
linux-kernel@vger.kernel.org, oe-kbuild-all@lists.linux.dev,
dm-devel@list.linux.dev
Subject: Re: drivers/md/dm-vdo/data-vio.c:969:2-8: preceding lock on line 966 (fwd)
Date: Wed, 3 Apr 2024 13:06:17 -0400 [thread overview]
Message-ID: <Zg2MiSlrQ9zTna6q@redhat.com> (raw)
In-Reply-To: <801d737e-f7c0-b853-d7e-63eb68c7fd7b@inria.fr>
On Wed, Apr 03 2024 at 12:47P -0400,
Julia Lawall <julia.lawall@inria.fr> wrote:
> Hello,
>
> Please check whether the lock should be released before the returns.
>
> julia
>
> ---------- Forwarded message ----------
> Date: Wed, 3 Apr 2024 22:16:44 +0800
> From: kernel test robot <lkp@intel.com>
> To: oe-kbuild@lists.linux.dev
> Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
> Subject: drivers/md/dm-vdo/data-vio.c:969:2-8: preceding lock on line 966
>
> BCC: lkp@intel.com
> CC: oe-kbuild-all@lists.linux.dev
> CC: linux-kernel@vger.kernel.org
> TO: Mike Snitzer <snitzer@kernel.org>
> CC: Matthew Sakai <msakai@redhat.com>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 3e92c1e6cd876754b64d1998ec0a01800ed954a6
> commit: f36b1d3ba533d21b5b793623f05761b0297d114e dm vdo: use a proper Makefile for dm-vdo
> date: 6 weeks ago
> :::::: branch date: 11 hours ago
> :::::: commit date: 6 weeks ago
> config: s390-randconfig-r052-20240403 (https://download.01.org/0day-ci/archive/20240403/202404032212.NV7EJ2Zj-lkp@intel.com/config)
> compiler: s390-linux-gcc (GCC) 13.2.0
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Julia Lawall <julia.lawall@inria.fr>
> | Closes: https://lore.kernel.org/r/202404032212.NV7EJ2Zj-lkp@intel.com/
>
> cocci warnings: (new ones prefixed by >>)
> >> drivers/md/dm-vdo/data-vio.c:969:2-8: preceding lock on line 966
> drivers/md/dm-vdo/data-vio.c:972:2-8: preceding lock on line 966
>
> vim +969 drivers/md/dm-vdo/data-vio.c
>
> 79535a7881c0cb Matthew Sakai 2023-11-16 952
> 79535a7881c0cb Matthew Sakai 2023-11-16 953 /**
> 79535a7881c0cb Matthew Sakai 2023-11-16 954 * vdo_launch_bio() - Acquire a data_vio from the pool, assign the bio to it, and launch it.
> 79535a7881c0cb Matthew Sakai 2023-11-16 955 *
> 79535a7881c0cb Matthew Sakai 2023-11-16 956 * This will block if data_vios or discard permits are not available.
> 79535a7881c0cb Matthew Sakai 2023-11-16 957 */
> 79535a7881c0cb Matthew Sakai 2023-11-16 958 void vdo_launch_bio(struct data_vio_pool *pool, struct bio *bio)
> 79535a7881c0cb Matthew Sakai 2023-11-16 959 {
> 79535a7881c0cb Matthew Sakai 2023-11-16 960 struct data_vio *data_vio;
> 79535a7881c0cb Matthew Sakai 2023-11-16 961
> 79535a7881c0cb Matthew Sakai 2023-11-16 962 ASSERT_LOG_ONLY(!vdo_is_state_quiescent(&pool->state),
> 79535a7881c0cb Matthew Sakai 2023-11-16 963 "data_vio_pool not quiescent on acquire");
> 79535a7881c0cb Matthew Sakai 2023-11-16 964
> 79535a7881c0cb Matthew Sakai 2023-11-16 965 bio->bi_private = (void *) jiffies;
> 79535a7881c0cb Matthew Sakai 2023-11-16 @966 spin_lock(&pool->lock);
> 79535a7881c0cb Matthew Sakai 2023-11-16 967 if ((bio_op(bio) == REQ_OP_DISCARD) &&
> 79535a7881c0cb Matthew Sakai 2023-11-16 968 !acquire_permit(&pool->discard_limiter, bio))
> 79535a7881c0cb Matthew Sakai 2023-11-16 @969 return;
> 79535a7881c0cb Matthew Sakai 2023-11-16 970
> 79535a7881c0cb Matthew Sakai 2023-11-16 971 if (!acquire_permit(&pool->limiter, bio))
> 79535a7881c0cb Matthew Sakai 2023-11-16 972 return;
> 79535a7881c0cb Matthew Sakai 2023-11-16 973
> 79535a7881c0cb Matthew Sakai 2023-11-16 974 data_vio = get_available_data_vio(pool);
> 79535a7881c0cb Matthew Sakai 2023-11-16 975 spin_unlock(&pool->lock);
> 79535a7881c0cb Matthew Sakai 2023-11-16 976 launch_bio(pool->completion.vdo, data_vio, bio);
> 79535a7881c0cb Matthew Sakai 2023-11-16 977 }
> 79535a7881c0cb Matthew Sakai 2023-11-16 978
>
> :::::: The code at line 969 was first introduced by commit
> :::::: 79535a7881c0cbe95063a2670d840cc950ae9282 dm vdo: add data_vio, the request object which services incoming bios
>
> :::::: TO: Matthew Sakai <msakai@redhat.com>
> :::::: CC: Mike Snitzer <snitzer@kernel.org>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
Thanks for the report but this is reacting to older code. Changes were
made to address sparse's concerns about this same code, please see:
commit 872564c501b7 ("dm vdo data-vio: silence sparse warnings about
locking context imbalance").
If wait_permit()'s sparse __releases annotation is somehow
insufficient for silencing cocci please let me know.
Thanks,
Mike
next prev parent reply other threads:[~2024-04-03 17:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-03 16:47 drivers/md/dm-vdo/data-vio.c:969:2-8: preceding lock on line 966 (fwd) Julia Lawall
2024-04-03 17:06 ` Mike Snitzer [this message]
2024-04-03 17:09 ` Julia Lawall
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=Zg2MiSlrQ9zTna6q@redhat.com \
--to=snitzer@kernel.org \
--cc=dm-devel@list.linux.dev \
--cc=julia.lawall@inria.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=msakai@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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.