diff mbox series

[v11,02/16] block: Only use write locking if necessary

Message ID 20230822191822.337080-3-bvanassche@acm.org (mailing list archive)
State New, archived
Headers show
Series Improve write performance for zoned UFS devices | expand

Commit Message

Bart Van Assche Aug. 22, 2023, 7:16 p.m. UTC
Make blk_req_needs_zone_write_lock() return false if
q->limits.use_zone_write_lock is false.

Cc: Damien Le Moal <dlemoal@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 block/blk-zoned.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Hannes Reinecke Aug. 23, 2023, 6:19 a.m. UTC | #1
On 8/22/23 21:16, Bart Van Assche wrote:
> Make blk_req_needs_zone_write_lock() return false if
> q->limits.use_zone_write_lock is false.
> 
> Cc: Damien Le Moal <dlemoal@kernel.org>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: Ming Lei <ming.lei@redhat.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
>   block/blk-zoned.c | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
Nitesh Shetty Aug. 23, 2023, 8:09 a.m. UTC | #2
On 23/08/22 12:16PM, Bart Van Assche wrote:
>Make blk_req_needs_zone_write_lock() return false if
>q->limits.use_zone_write_lock is false.
>
>Cc: Damien Le Moal <dlemoal@kernel.org>
>Cc: Christoph Hellwig <hch@lst.de>
>Cc: Ming Lei <ming.lei@redhat.com>
>Signed-off-by: Bart Van Assche <bvanassche@acm.org>
>---
> block/blk-zoned.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
>diff --git a/block/blk-zoned.c b/block/blk-zoned.c
>index 112620985bff..d8a80cce832f 100644
>--- a/block/blk-zoned.c
>+++ b/block/blk-zoned.c
>@@ -53,11 +53,16 @@ const char *blk_zone_cond_str(enum blk_zone_cond zone_cond)
> EXPORT_SYMBOL_GPL(blk_zone_cond_str);
>
> /*
>- * Return true if a request is a write requests that needs zone write locking.
>+ * Return true if a request is a write request that needs zone write locking.
>  */
> bool blk_req_needs_zone_write_lock(struct request *rq)
> {
>-	if (!rq->q->disk->seq_zones_wlock)
>+	struct request_queue *q = rq->q;
>+
>+	if (!q->limits.use_zone_write_lock)
>+		return false;
>+
>+	if (!q->disk->seq_zones_wlock)
> 		return false;
>
> 	return blk_rq_is_seq_zoned_write(rq);

Reviewed-by: Nitesh Shetty <nj.shetty@samsung.com>
diff mbox series

Patch

diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 112620985bff..d8a80cce832f 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -53,11 +53,16 @@  const char *blk_zone_cond_str(enum blk_zone_cond zone_cond)
 EXPORT_SYMBOL_GPL(blk_zone_cond_str);
 
 /*
- * Return true if a request is a write requests that needs zone write locking.
+ * Return true if a request is a write request that needs zone write locking.
  */
 bool blk_req_needs_zone_write_lock(struct request *rq)
 {
-	if (!rq->q->disk->seq_zones_wlock)
+	struct request_queue *q = rq->q;
+
+	if (!q->limits.use_zone_write_lock)
+		return false;
+
+	if (!q->disk->seq_zones_wlock)
 		return false;
 
 	return blk_rq_is_seq_zoned_write(rq);