public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Minor improvements for the zoned block storage code
@ 2024-12-17 21:03 Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 1/4] blk-zoned: Minimize #include directives Bart Van Assche
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Bart Van Assche @ 2024-12-17 21:03 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Christoph Hellwig, Damien Le Moal, Bart Van Assche

Hi Jens,

This patch series includes several minor improvements for the zoned block
storage code. None of these patches changes the behavior of that code.

Please consider these patches for the next merge window.

Thanks,

Bart.

Changes compared to v1:
 - Dropped two patches about which there is no agreement.
 - Added Reviewed-by: tags.

Bart Van Assche (4):
  blk-zoned: Minimize #include directives
  blk-zoned: Document locking assumptions
  blk-zoned: Improve the queue reference count strategy documentation
  blk-zoned: Split queue_zone_wplugs_show()

 block/blk-zoned.c | 58 ++++++++++++++++++++++++-----------------------
 1 file changed, 30 insertions(+), 28 deletions(-)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/4] blk-zoned: Minimize #include directives
  2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
@ 2024-12-17 21:03 ` Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 2/4] blk-zoned: Document locking assumptions Bart Van Assche
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2024-12-17 21:03 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Christoph Hellwig, Damien Le Moal, Bart Van Assche

Only include those header files that are necessary.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 block/blk-zoned.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 84da1eadff64..1575b887fa38 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -11,12 +11,8 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/module.h>
 #include <linux/blkdev.h>
 #include <linux/blk-mq.h>
-#include <linux/mm.h>
-#include <linux/vmalloc.h>
-#include <linux/sched/mm.h>
 #include <linux/spinlock.h>
 #include <linux/refcount.h>
 #include <linux/mempool.h>

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/4] blk-zoned: Document locking assumptions
  2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 1/4] blk-zoned: Minimize #include directives Bart Van Assche
@ 2024-12-17 21:03 ` Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 3/4] blk-zoned: Improve the queue reference count strategy documentation Bart Van Assche
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2024-12-17 21:03 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Christoph Hellwig, Damien Le Moal, Bart Van Assche

Document which functions expect that their callers must hold a lock.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 block/blk-zoned.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 1575b887fa38..954724a2e3c6 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -459,6 +459,8 @@ static inline void disk_put_zone_wplug(struct blk_zone_wplug *zwplug)
 static inline bool disk_should_remove_zone_wplug(struct gendisk *disk,
 						 struct blk_zone_wplug *zwplug)
 {
+	lockdep_assert_held(&zwplug->lock);
+
 	/* If the zone write plug was already removed, we are done. */
 	if (zwplug->flags & BLK_ZONE_WPLUG_UNHASHED)
 		return false;
@@ -913,6 +915,8 @@ static bool blk_zone_wplug_prepare_bio(struct blk_zone_wplug *zwplug,
 {
 	struct gendisk *disk = bio->bi_bdev->bd_disk;
 
+	lockdep_assert_held(&zwplug->lock);
+
 	/*
 	 * If we lost track of the zone write pointer due to a write error,
 	 * the user must either execute a report zones, reset the zone or finish

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/4] blk-zoned: Improve the queue reference count strategy documentation
  2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 1/4] blk-zoned: Minimize #include directives Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 2/4] blk-zoned: Document locking assumptions Bart Van Assche
@ 2024-12-17 21:03 ` Bart Van Assche
  2024-12-17 21:03 ` [PATCH v2 4/4] blk-zoned: Split queue_zone_wplugs_show() Bart Van Assche
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2024-12-17 21:03 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Christoph Hellwig, Damien Le Moal, Bart Van Assche

For the blk_queue_exit() calls, document where the corresponding code can
be found that increases q->q_usage_counter.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 block/blk-zoned.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 954724a2e3c6..7876a6458022 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -582,6 +582,7 @@ static inline void blk_zone_wplug_bio_io_error(struct blk_zone_wplug *zwplug,
 	bio_clear_flag(bio, BIO_ZONE_WRITE_PLUGGING);
 	bio_io_error(bio);
 	disk_put_zone_wplug(zwplug);
+	/* Drop the reference taken by disk_zone_wplug_add_bio(() */
 	blk_queue_exit(q);
 }
 
@@ -893,10 +894,7 @@ void blk_zone_write_plug_init_request(struct request *req)
 			break;
 		}
 
-		/*
-		 * Drop the extra reference on the queue usage we got when
-		 * plugging the BIO and advance the write pointer offset.
-		 */
+		/* Drop the reference taken by disk_zone_wplug_add_bio(). */
 		blk_queue_exit(q);
 		zwplug->wp_offset += bio_sectors(bio);
 

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/4] blk-zoned: Split queue_zone_wplugs_show()
  2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
                   ` (2 preceding siblings ...)
  2024-12-17 21:03 ` [PATCH v2 3/4] blk-zoned: Improve the queue reference count strategy documentation Bart Van Assche
@ 2024-12-17 21:03 ` Bart Van Assche
  2024-12-20 18:18 ` [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
  2024-12-21 16:47 ` Jens Axboe
  5 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2024-12-17 21:03 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-block, Christoph Hellwig, Damien Le Moal, Bart Van Assche

Reduce the indentation level of the code in queue_zone_wplugs_show() by
moving the body of the loop in that function into a new function.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 block/blk-zoned.c | 44 ++++++++++++++++++++++++--------------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 7876a6458022..4b0be40a8ea7 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -1774,37 +1774,41 @@ int blk_zone_issue_zeroout(struct block_device *bdev, sector_t sector,
 EXPORT_SYMBOL_GPL(blk_zone_issue_zeroout);
 
 #ifdef CONFIG_BLK_DEBUG_FS
+static void queue_zone_wplug_show(struct blk_zone_wplug *zwplug,
+				  struct seq_file *m)
+{
+	unsigned int zwp_wp_offset, zwp_flags;
+	unsigned int zwp_zone_no, zwp_ref;
+	unsigned int zwp_bio_list_size;
+	unsigned long flags;
+
+	spin_lock_irqsave(&zwplug->lock, flags);
+	zwp_zone_no = zwplug->zone_no;
+	zwp_flags = zwplug->flags;
+	zwp_ref = refcount_read(&zwplug->ref);
+	zwp_wp_offset = zwplug->wp_offset;
+	zwp_bio_list_size = bio_list_size(&zwplug->bio_list);
+	spin_unlock_irqrestore(&zwplug->lock, flags);
+
+	seq_printf(m, "%u 0x%x %u %u %u\n", zwp_zone_no, zwp_flags, zwp_ref,
+		   zwp_wp_offset, zwp_bio_list_size);
+}
 
 int queue_zone_wplugs_show(void *data, struct seq_file *m)
 {
 	struct request_queue *q = data;
 	struct gendisk *disk = q->disk;
 	struct blk_zone_wplug *zwplug;
-	unsigned int zwp_wp_offset, zwp_flags;
-	unsigned int zwp_zone_no, zwp_ref;
-	unsigned int zwp_bio_list_size, i;
-	unsigned long flags;
+	unsigned int i;
 
 	if (!disk->zone_wplugs_hash)
 		return 0;
 
 	rcu_read_lock();
-	for (i = 0; i < disk_zone_wplugs_hash_size(disk); i++) {
-		hlist_for_each_entry_rcu(zwplug,
-					 &disk->zone_wplugs_hash[i], node) {
-			spin_lock_irqsave(&zwplug->lock, flags);
-			zwp_zone_no = zwplug->zone_no;
-			zwp_flags = zwplug->flags;
-			zwp_ref = refcount_read(&zwplug->ref);
-			zwp_wp_offset = zwplug->wp_offset;
-			zwp_bio_list_size = bio_list_size(&zwplug->bio_list);
-			spin_unlock_irqrestore(&zwplug->lock, flags);
-
-			seq_printf(m, "%u 0x%x %u %u %u\n",
-				   zwp_zone_no, zwp_flags, zwp_ref,
-				   zwp_wp_offset, zwp_bio_list_size);
-		}
-	}
+	for (i = 0; i < disk_zone_wplugs_hash_size(disk); i++)
+		hlist_for_each_entry_rcu(zwplug, &disk->zone_wplugs_hash[i],
+					 node)
+			queue_zone_wplug_show(zwplug, m);
 	rcu_read_unlock();
 
 	return 0;

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/4] Minor improvements for the zoned block storage code
  2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
                   ` (3 preceding siblings ...)
  2024-12-17 21:03 ` [PATCH v2 4/4] blk-zoned: Split queue_zone_wplugs_show() Bart Van Assche
@ 2024-12-20 18:18 ` Bart Van Assche
  2024-12-21 16:47 ` Jens Axboe
  5 siblings, 0 replies; 7+ messages in thread
From: Bart Van Assche @ 2024-12-20 18:18 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-block, Christoph Hellwig, Damien Le Moal

On 12/17/24 1:03 PM, Bart Van Assche wrote:
> This patch series includes several minor improvements for the zoned block
> storage code. None of these patches changes the behavior of that code.

(replying to my own email)

Hi Jens,

Can you please take a look at this patch series and also at the patch
series "[PATCH v3 0/2] Two blk_mq_submit_bio() patches"? All patches in
both patch series received one or two positive reviews and no negative
feedback.

Thanks,

Bart.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/4] Minor improvements for the zoned block storage code
  2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
                   ` (4 preceding siblings ...)
  2024-12-20 18:18 ` [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
@ 2024-12-21 16:47 ` Jens Axboe
  5 siblings, 0 replies; 7+ messages in thread
From: Jens Axboe @ 2024-12-21 16:47 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: linux-block, Christoph Hellwig, Damien Le Moal


On Tue, 17 Dec 2024 13:03:06 -0800, Bart Van Assche wrote:
> This patch series includes several minor improvements for the zoned block
> storage code. None of these patches changes the behavior of that code.
> 
> Please consider these patches for the next merge window.
> 
> Thanks,
> 
> [...]

Applied, thanks!

[1/4] blk-zoned: Minimize #include directives
      commit: 812047bc7e7754dc9d9a9f42685a006f064cd16a
[2/4] blk-zoned: Document locking assumptions
      commit: 27eb21b36c60a3986cfc7d374f066fbdebb8b3ed
[3/4] blk-zoned: Improve the queue reference count strategy documentation
      commit: e3d334adc3aea20e3caf16d408c1f5b04a59eed0
[4/4] blk-zoned: Split queue_zone_wplugs_show()
      commit: 736a8772092fa8e3a87bf8768e47d6bc1fcbc149

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-12-21 16:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-17 21:03 [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
2024-12-17 21:03 ` [PATCH v2 1/4] blk-zoned: Minimize #include directives Bart Van Assche
2024-12-17 21:03 ` [PATCH v2 2/4] blk-zoned: Document locking assumptions Bart Van Assche
2024-12-17 21:03 ` [PATCH v2 3/4] blk-zoned: Improve the queue reference count strategy documentation Bart Van Assche
2024-12-17 21:03 ` [PATCH v2 4/4] blk-zoned: Split queue_zone_wplugs_show() Bart Van Assche
2024-12-20 18:18 ` [PATCH v2 0/4] Minor improvements for the zoned block storage code Bart Van Assche
2024-12-21 16:47 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox