Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Oct 13, 2016

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

The following changes since commit d23ae82785f99927331e358d2c0deac5e53f2df1:

Update bandwidth log documentation (2016-10-11 16:04:28 -0600)

are available in the git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to afd2ceffd65514a54665493075d7957ec9d0e5fc:

Add alias for 'disable_bw_measurement' option (2016-10-12 08:59:25 -0600)

----------------------------------------------------------------
Bruce Cran (1):
Implement nice() for Windows

Jens Axboe (1):
Add alias for 'disable_bw_measurement' option

 HOWTO              |  4 ++++
 options.c          |  1 +
 os/windows/posix.c | 17 +++++++++++++----
 3 files changed, 18 insertions(+), 4 deletions(-)

---

Diff of recent changes:

HOWTO +4 -0
index 07419a1..cf1024c 100644
@@ -1066,6 +1066,10 @@ random_generator=str	Fio supports the following engines for generating
 
 nice=int	Run the job with the given nice value. See man nice(2).
 
+     On Windows, values less than -15 set the process class to "High";
+     -1 through -15 set "Above Normal"; 1 through 15 "Below Normal";
+     and above 15 "Idle" priority class.
+
 prio=int	Set the io priority value of this job. Linux limits us to
 		a positive value between 0 and 7, with 0 being the highest.
 		See man ionice(1). Refer to an appropriate manpage for
options.c +1 -0
index bcda556..3c9adfb 100644
@@ -3920,6 +3920,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
 	},
 	{
 		.name	= "disable_bw_measurement",
+		.alias	= "disable_bw",
 		.lname	= "Disable bandwidth stats",
 		.type	= FIO_OPT_BOOL,
 		.off1	= offsetof(struct thread_options, disable_bw),
os/windows/posix.c +13 -4
index 3388127..bbd93e9 100755
@@ -647,10 +647,19 @@ int setgid(gid_t gid)
 
 int nice(int incr)
 {
-	if (incr != 0) {
-		errno = EINVAL;
-		return -1;
-	}
+	DWORD prioclass = NORMAL_PRIORITY_CLASS;
+	
+	if (incr < -15)
+		prioclass = HIGH_PRIORITY_CLASS;
+	else if (incr < 0)
+		prioclass = ABOVE_NORMAL_PRIORITY_CLASS;
+	else if (incr > 15)
+		prioclass = IDLE_PRIORITY_CLASS;
+	else if (incr > 0)
+		prioclass = BELOW_NORMAL_PRIORITY_CLASS;
+	
+	if (!SetPriorityClass(GetCurrentProcess(), prioclass))
+		log_err("fio: SetPriorityClass failed\n");
 
 	return 0;
 }