All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Bart Van Assche <bvanassche@acm.org>
Cc: Jens Axboe <axboe@kernel.dk>,
	linux-block@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
	Damien Le Moal <dlemoal@kernel.org>, Tejun Heo <tj@kernel.org>,
	Josef Bacik <josef@toxicpanda.com>,
	Marco Elver <elver@google.com>
Subject: Re: [PATCH v5 08/12] block/blk-iocost: Add lock context annotations
Date: Mon, 1 Jun 2026 09:32:20 +0200	[thread overview]
Message-ID: <20260601073220.GD7799@lst.de> (raw)
In-Reply-To: <669c0e4dd3a8e8e038dff8c19aa61f0359df2bd8.1779997063.git.bvanassche@acm.org>

On Thu, May 28, 2026 at 12:45:45PM -0700, Bart Van Assche wrote:
> Since iocg_lock() and iocg_unlock() both use conditional locking,
> annotate both with __no_context_analysis and use token_context_lock() to
> introduce a new lock context.

Both of these are only called from two funtions.  Have you looked into
merging the locking logic into these helpers to see if this improves
the situation?  __no_context_analysis just seems like a big hammer
for something relatively simple like this.

> 
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
>  block/blk-iocost.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/block/blk-iocost.c b/block/blk-iocost.c
> index 353c165c5cd4..3bb8ce50af42 100644
> --- a/block/blk-iocost.c
> +++ b/block/blk-iocost.c
> @@ -727,7 +727,11 @@ static void iocg_commit_bio(struct ioc_gq *iocg, struct bio *bio,
>  	put_cpu_ptr(gcs);
>  }
>  
> +token_context_lock(ioc_lock);
> +
>  static void iocg_lock(struct ioc_gq *iocg, bool lock_ioc, unsigned long *flags)
> +	__acquires(ioc_lock)
> +	__context_unsafe(conditional locking)
>  {
>  	if (lock_ioc) {
>  		spin_lock_irqsave(&iocg->ioc->lock, *flags);
> @@ -738,6 +742,8 @@ static void iocg_lock(struct ioc_gq *iocg, bool lock_ioc, unsigned long *flags)
>  }
>  
>  static void iocg_unlock(struct ioc_gq *iocg, bool unlock_ioc, unsigned long *flags)
> +	__releases(ioc_lock)
> +	__context_unsafe(conditional locking)
>  {
>  	if (unlock_ioc) {
>  		spin_unlock(&iocg->waitq.lock);
---end quoted text---

  parent reply	other threads:[~2026-06-01  7:32 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-28 19:45 [PATCH v5 00/12] Enable lock context analysis Bart Van Assche
2026-05-28 19:45 ` [PATCH v5 01/12] block: Annotate the queue limits functions Bart Van Assche
2026-05-29  6:23   ` Hannes Reinecke
2026-05-28 19:45 ` [PATCH v5 02/12] block/bdev: Annotate the blk_holder_ops callback functions Bart Van Assche
2026-05-29  6:24   ` Hannes Reinecke
2026-06-01  7:28   ` Christoph Hellwig
2026-05-28 19:45 ` [PATCH v5 03/12] block/cgroup: Split blkg_conf_prep() Bart Van Assche
2026-05-29  6:26   ` Hannes Reinecke
2026-05-28 19:45 ` [PATCH v5 04/12] block/cgroup: Split blkg_conf_exit() Bart Van Assche
2026-05-29  6:27   ` Hannes Reinecke
2026-05-28 19:45 ` [PATCH v5 05/12] block/cgroup: Improve lock context annotations Bart Van Assche
2026-05-29  6:27   ` Hannes Reinecke
2026-06-01  7:28   ` Christoph Hellwig
2026-05-28 19:45 ` [PATCH v5 06/12] block/cgroup: Inline blkg_conf_{open,close}_bdev_frozen() Bart Van Assche
2026-05-29  6:29   ` Hannes Reinecke
2026-06-01  7:30   ` Christoph Hellwig
2026-05-28 19:45 ` [PATCH v5 07/12] block/crypto: Annotate the crypto functions Bart Van Assche
2026-05-29  6:30   ` Hannes Reinecke
2026-05-28 19:45 ` [PATCH v5 08/12] block/blk-iocost: Add lock context annotations Bart Van Assche
2026-05-29  6:31   ` Hannes Reinecke
2026-06-01  7:32   ` Christoph Hellwig [this message]
2026-06-01 19:46     ` Bart Van Assche
2026-05-28 19:45 ` [PATCH v5 09/12] block/blk-mq-debugfs: Improve " Bart Van Assche
2026-05-29  6:34   ` Hannes Reinecke
2026-06-01  7:33   ` Christoph Hellwig
2026-06-01 20:00     ` Bart Van Assche
2026-05-28 19:45 ` [PATCH v5 10/12] block/kyber: Make the lock context annotations compatible with Clang Bart Van Assche
2026-05-29  6:35   ` Hannes Reinecke
2026-06-01  7:34   ` Christoph Hellwig
2026-05-28 19:45 ` [PATCH v5 11/12] block/mq-deadline: " Bart Van Assche
2026-05-29  6:35   ` Hannes Reinecke
2026-06-01  7:34   ` Christoph Hellwig
2026-05-28 19:45 ` [PATCH v5 12/12] block: Enable lock context analysis Bart Van Assche
2026-05-29  6:36   ` Hannes Reinecke
2026-06-01  7:34   ` Christoph Hellwig

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=20260601073220.GD7799@lst.de \
    --to=hch@lst.de \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=dlemoal@kernel.org \
    --cc=elver@google.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-block@vger.kernel.org \
    --cc=tj@kernel.org \
    /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.