lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20151229010833.GA20593@gmail.com>
Date:	Tue, 29 Dec 2015 02:08:33 +0100
From:	Alexandru Moise <00moses.alexander00@...il.com>
To:	axboe@...nel.dk
Cc:	axboe@...nel.dk, linux-kernel@...r.kernel.org,
	00moses.alexander00@...il.com
Subject: [PATCH] cfq-iosched: convert slice idle time to jiffies

This patch refers to Jens Axboe's change way back in 2006:
7b14e3b52 cfq-iosched: slice expiry fixups

In this patch he fixed a potential timer race condition by delaying
idle_slice_timer by the slice_idle time value.

Today this timer is delayed by either slice_idle or group_idle time
values, which on my system, and according to
Documentation/block/cfq-iosched.txt the default value for both is 8ms.

Since the time given by either variables is supposed to be in
milliseconds we should convert that value from milliseconds to jiffies
before adding it to jiffies variable and setting our timer.

In my obervations the area is really active as I've seen that function
get called a lot for each device on my btrfs raid setup during btrfs
check. I've also timed the btrfs check before and after applying the
patch and I might've noticed a very slight improvement in execution
time but the numbers vary too much for me to post any believable
numbers (10 milliseconds difference at most on average).

Signed-off-by: Alexandru Moise <00moses.alexader00@...il.com>
---
 block/cfq-iosched.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 1f9093e..eec65fb 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -2958,7 +2958,7 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
 	else
 		sl = cfqd->cfq_slice_idle;
 
-	mod_timer(&cfqd->idle_slice_timer, jiffies + sl);
+	mod_timer(&cfqd->idle_slice_timer, jiffies + msecs_to_jiffies(sl));
 	cfqg_stats_set_start_idle_time(cfqq->cfqg);
 	cfq_log_cfqq(cfqd, cfqq, "arm_idle: %lu group_idle: %d", sl,
 			group_idle ? 1 : 0);
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ