Thread (15 messages) 15 messages, 5 authors, 2024-03-13

Re: [GIT PULL] Networking for v6.9

flat view

From: Jens Axboe <axboe@kernel.dk>
Date: 2024-03-12 21:53:34
Also in: bpf, lkml
Subsystem: block layer, the rest · Maintainers: Jens Axboe, Linus Torvalds

On 3/12/24 3:48 PM, Jakub Kicinski wrote:
On Tue, 12 Mar 2024 15:40:07 -0600 Jens Axboe wrote:
quoted
Hmm, I wonder if the below will fix it. At least from the timer side,
we should not be using the cached clock.

diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index 9a85bfbbc45a..646b50e1c914 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -1044,7 +1044,7 @@ static void ioc_now(struct ioc *ioc, struct ioc_now *now)
 	unsigned seq;
 	u64 vrate;
 
-	now->now_ns = blk_time_get_ns();
+	now->now_ns = ktime_get_ns();
 	now->now = ktime_to_us(now->now_ns);
 	vrate = atomic64_read(&ioc->vtime_rate);
Let me try this, 'cause doing the revert while listening to some
meeting is beyond me :)
Thanks! I think the better fix is probably the one below. I pondered
adding a WARN_ON_ONCE() here, but I think just checking for in_task
state is probably the saner way forward, just in case... But I strongly
suspect the previous one should sort it for you.

diff --git a/block/blk.h b/block/blk.h
index a19b7b42e650..5cac4e29ae17 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -534,7 +534,7 @@ static inline u64 blk_time_get_ns(void)
 {
 	struct blk_plug *plug = current->plug;
 
-	if (!plug)
+	if (!plug || !in_task())
 		return ktime_get_ns();
 
 	/*
-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help