linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Optimize wbt and update its comments and doc
@ 2025-07-27 16:47 Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 1/3] blk-wbt: Optimize wbt_done() for non-throttled writes Tang Yizhou
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Tang Yizhou @ 2025-07-27 16:47 UTC (permalink / raw)
  To: axboe, hch, jack; +Cc: linux-block, linux-kernel, tangyeechou, Tang Yizhou

From: Tang Yizhou <yizhou.tang@shopee.com>

Some minor optimizations and updates of comments and doc for wbt.

v2:
Patch #1: Pick up Jan and Kuai's Reviewed-by tag.
Patch #2: Pick up Jan's Reviewed-by tag.
Patch #3: Take Jan and Kuai's advice. Change the name to
'curr_win_nsec'.

Tang Yizhou (3):
  blk-wbt: Optimize wbt_done() for non-throttled writes
  blk-wbt: Eliminate ambiguity in the comments of struct rq_wb
  blk-wbt: doc: Update the doc of the wbt_lat_usec interface

 Documentation/ABI/stable/sysfs-block |  2 +-
 block/blk-wbt.c                      | 15 ++++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)

-- 
2.25.1


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

* [PATCH v2 1/3] blk-wbt: Optimize wbt_done() for non-throttled writes
  2025-07-27 16:47 [PATCH v2 0/3] Optimize wbt and update its comments and doc Tang Yizhou
@ 2025-07-27 16:47 ` Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 2/3] blk-wbt: Eliminate ambiguity in the comments of struct rq_wb Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface Tang Yizhou
  2 siblings, 0 replies; 6+ messages in thread
From: Tang Yizhou @ 2025-07-27 16:47 UTC (permalink / raw)
  To: axboe, hch, jack
  Cc: linux-block, linux-kernel, tangyeechou, Tang Yizhou, Yu Kuai

From: Tang Yizhou <yizhou.tang@shopee.com>

In the current implementation, the sync_cookie and last_cookie members of
struct rq_wb are used only by read requests and not by non-throttled write
requests. Based on this, we can optimize wbt_done() by removing one if
condition check for non-throttled write requests.

Signed-off-by: Tang Yizhou <yizhou.tang@shopee.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
---
 block/blk-wbt.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index a50d4cd55f41..30886d44f6cd 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -248,13 +248,14 @@ static void wbt_done(struct rq_qos *rqos, struct request *rq)
 	struct rq_wb *rwb = RQWB(rqos);
 
 	if (!wbt_is_tracked(rq)) {
-		if (rwb->sync_cookie == rq) {
-			rwb->sync_issue = 0;
-			rwb->sync_cookie = NULL;
-		}
+		if (wbt_is_read(rq)) {
+			if (rwb->sync_cookie == rq) {
+				rwb->sync_issue = 0;
+				rwb->sync_cookie = NULL;
+			}
 
-		if (wbt_is_read(rq))
 			wb_timestamp(rwb, &rwb->last_comp);
+		}
 	} else {
 		WARN_ON_ONCE(rq == rwb->sync_cookie);
 		__wbt_done(rqos, wbt_flags(rq));
-- 
2.25.1


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

* [PATCH v2 2/3] blk-wbt: Eliminate ambiguity in the comments of struct rq_wb
  2025-07-27 16:47 [PATCH v2 0/3] Optimize wbt and update its comments and doc Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 1/3] blk-wbt: Optimize wbt_done() for non-throttled writes Tang Yizhou
@ 2025-07-27 16:47 ` Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface Tang Yizhou
  2 siblings, 0 replies; 6+ messages in thread
From: Tang Yizhou @ 2025-07-27 16:47 UTC (permalink / raw)
  To: axboe, hch, jack; +Cc: linux-block, linux-kernel, tangyeechou, Tang Yizhou

From: Tang Yizhou <yizhou.tang@shopee.com>

In the current implementation, the last_issue and last_comp members of
struct rq_wb are used only by read requests and not by non-throttled write
requests. Therefore, eliminate the ambiguity here.

Signed-off-by: Tang Yizhou <yizhou.tang@shopee.com>
Reviewed-by: Jan Kara <jack@suse.cz>
---
 block/blk-wbt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index 30886d44f6cd..eb8037bae0bd 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -85,8 +85,8 @@ struct rq_wb {
 	u64 sync_issue;
 	void *sync_cookie;
 
-	unsigned long last_issue;		/* last non-throttled issue */
-	unsigned long last_comp;		/* last non-throttled comp */
+	unsigned long last_issue;	/* issue time of last read rq */
+	unsigned long last_comp;	/* completion time of last read rq */
 	unsigned long min_lat_nsec;
 	struct rq_qos rqos;
 	struct rq_wait rq_wait[WBT_NUM_RWQ];
-- 
2.25.1


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

* [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface
  2025-07-27 16:47 [PATCH v2 0/3] Optimize wbt and update its comments and doc Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 1/3] blk-wbt: Optimize wbt_done() for non-throttled writes Tang Yizhou
  2025-07-27 16:47 ` [PATCH v2 2/3] blk-wbt: Eliminate ambiguity in the comments of struct rq_wb Tang Yizhou
@ 2025-07-27 16:47 ` Tang Yizhou
  2025-07-27 17:09   ` Yu Kuai
  2 siblings, 1 reply; 6+ messages in thread
From: Tang Yizhou @ 2025-07-27 16:47 UTC (permalink / raw)
  To: axboe, hch, jack; +Cc: linux-block, linux-kernel, tangyeechou, Tang Yizhou

From: Tang Yizhou <yizhou.tang@shopee.com>

The symbol wb_window_usec cannot be found. Update the doc to reflect the
latest implementation, in other words, the cur_win_nsec member of struct
rq_wb.

Signed-off-by: Tang Yizhou <yizhou.tang@shopee.com>
---
 Documentation/ABI/stable/sysfs-block | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/ABI/stable/sysfs-block b/Documentation/ABI/stable/sysfs-block
index 4ba771b56b3b..277d89815edd 100644
--- a/Documentation/ABI/stable/sysfs-block
+++ b/Documentation/ABI/stable/sysfs-block
@@ -731,7 +731,7 @@ Contact:	linux-block@vger.kernel.org
 Description:
 		[RW] If the device is registered for writeback throttling, then
 		this file shows the target minimum read latency. If this latency
-		is exceeded in a given window of time (see wb_window_usec), then
+		is exceeded in a given window of time (see cur_win_nsec), then
 		the writeback throttling will start scaling back writes. Writing
 		a value of '0' to this file disables the feature. Writing a
 		value of '-1' to this file resets the value to the default
-- 
2.25.1


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

* Re: [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface
  2025-07-27 16:47 ` [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface Tang Yizhou
@ 2025-07-27 17:09   ` Yu Kuai
  2025-07-27 17:27     ` Yizhou Tang
  0 siblings, 1 reply; 6+ messages in thread
From: Yu Kuai @ 2025-07-27 17:09 UTC (permalink / raw)
  To: Tang Yizhou, axboe, hch, jack; +Cc: linux-block, linux-kernel, tangyeechou

Hi,

在 2025/7/28 0:47, Tang Yizhou 写道:
> From: Tang Yizhou <yizhou.tang@shopee.com>
>
> The symbol wb_window_usec cannot be found. Update the doc to reflect the
> latest implementation, in other words, the cur_win_nsec member of struct
> rq_wb.
>
> Signed-off-by: Tang Yizhou <yizhou.tang@shopee.com>
> ---
>   Documentation/ABI/stable/sysfs-block | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/ABI/stable/sysfs-block b/Documentation/ABI/stable/sysfs-block
> index 4ba771b56b3b..277d89815edd 100644
> --- a/Documentation/ABI/stable/sysfs-block
> +++ b/Documentation/ABI/stable/sysfs-block
> @@ -731,7 +731,7 @@ Contact:	linux-block@vger.kernel.org
>   Description:
>   		[RW] If the device is registered for writeback throttling, then
>   		this file shows the target minimum read latency. If this latency
> -		is exceeded in a given window of time (see wb_window_usec), then
> +		is exceeded in a given window of time (see cur_win_nsec), then
Is this a typo? Jan suggested curr_win_nsec from v1.

BTW, I don't mind rename rwb->cur_win_nsec to curr_win_nsec as well.

Thanks,
Kuai

>   		the writeback throttling will start scaling back writes. Writing
>   		a value of '0' to this file disables the feature. Writing a
>   		value of '-1' to this file resets the value to the default


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

* Re: [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface
  2025-07-27 17:09   ` Yu Kuai
@ 2025-07-27 17:27     ` Yizhou Tang
  0 siblings, 0 replies; 6+ messages in thread
From: Yizhou Tang @ 2025-07-27 17:27 UTC (permalink / raw)
  To: yukuai; +Cc: Tang Yizhou, axboe, hch, jack, linux-block, linux-kernel

On Mon, Jul 28, 2025 at 1:09 AM Yu Kuai <yukuai@kernel.org> wrote:
>
> Hi,
>
> 在 2025/7/28 0:47, Tang Yizhou 写道:
> > From: Tang Yizhou <yizhou.tang@shopee.com>
> >
> > The symbol wb_window_usec cannot be found. Update the doc to reflect the
> > latest implementation, in other words, the cur_win_nsec member of struct
> > rq_wb.
> >
> > Signed-off-by: Tang Yizhou <yizhou.tang@shopee.com>
> > ---
> >   Documentation/ABI/stable/sysfs-block | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Documentation/ABI/stable/sysfs-block b/Documentation/ABI/stable/sysfs-block
> > index 4ba771b56b3b..277d89815edd 100644
> > --- a/Documentation/ABI/stable/sysfs-block
> > +++ b/Documentation/ABI/stable/sysfs-block
> > @@ -731,7 +731,7 @@ Contact:  linux-block@vger.kernel.org
> >   Description:
> >               [RW] If the device is registered for writeback throttling, then
> >               this file shows the target minimum read latency. If this latency
> > -             is exceeded in a given window of time (see wb_window_usec), then
> > +             is exceeded in a given window of time (see cur_win_nsec), then
> Is this a typo? Jan suggested curr_win_nsec from v1.
>
> BTW, I don't mind rename rwb->cur_win_nsec to curr_win_nsec as well.

Sorry, that was indeed a typo.

I checked the code, and now both cur_win_nsec and curr_win_nsec are
used. The latter was introduced by Ming in commit d19afebca476
("blk-wbt: export internal state via debugfs"). In the Linux kernel,
both 'cur' and 'curr' are commonly used as abbreviations for
'current'. If we were to unify the naming, I suspect it could spark
some debate. For now, I won’t pursue unified naming — in the next
version of the patch, I’ll change it to curr_win_nsec.

Thanks,
Yi


>
> Thanks,
> Kuai
>
> >               the writeback throttling will start scaling back writes. Writing
> >               a value of '0' to this file disables the feature. Writing a
> >               value of '-1' to this file resets the value to the default
>

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

end of thread, other threads:[~2025-07-27 17:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-27 16:47 [PATCH v2 0/3] Optimize wbt and update its comments and doc Tang Yizhou
2025-07-27 16:47 ` [PATCH v2 1/3] blk-wbt: Optimize wbt_done() for non-throttled writes Tang Yizhou
2025-07-27 16:47 ` [PATCH v2 2/3] blk-wbt: Eliminate ambiguity in the comments of struct rq_wb Tang Yizhou
2025-07-27 16:47 ` [PATCH v2 3/3] blk-wbt: doc: Update the doc of the wbt_lat_usec interface Tang Yizhou
2025-07-27 17:09   ` Yu Kuai
2025-07-27 17:27     ` Yizhou Tang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).