projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
server: add ETA as a specific command
[fio.git]
/
engines
/
binject.c
diff --git
a/engines/binject.c
b/engines/binject.c
index 0bdaa2402053ee64637adbe2a875290ab4b4397a..47d40fefbb3f6d8fd0a2037d22da60a5f21cbdfb 100644
(file)
--- a/
engines/binject.c
+++ b/
engines/binject.c
@@
-146,7
+146,7
@@
static int fio_binject_getevents(struct thread_data *td, unsigned int min,
for (i = 0; i < events; i++) {
struct b_user_cmd *buc = (struct b_user_cmd *) buf + i;
for (i = 0; i < events; i++) {
struct b_user_cmd *buc = (struct b_user_cmd *) buf + i;
- bd->events[ev_index] = (struct io_u *) buc->usr_ptr;
+ bd->events[ev_index] = (struct io_u *)
(unsigned long)
buc->usr_ptr;
ev_index++;
}
}
ev_index++;
}
}
@@
-233,6
+233,17
@@
static struct io_u *fio_binject_event(struct thread_data *td, int event)
return bd->events[event];
}
return bd->events[event];
}
+static int binject_open_ctl(struct thread_data *td)
+{
+ int fd;
+
+ fd = open("/dev/binject-ctl", O_RDWR);
+ if (fd < 0)
+ td_verror(td, errno, "open binject-ctl");
+
+ return fd;
+}
+
static void binject_unmap_dev(struct thread_data *td, struct binject_file *bf)
{
struct b_ioctl_cmd bic;
static void binject_unmap_dev(struct thread_data *td, struct binject_file *bf)
{
struct b_ioctl_cmd bic;
@@
-243,19
+254,14
@@
static void binject_unmap_dev(struct thread_data *td, struct binject_file *bf)
bf->fd = -1;
}
bf->fd = -1;
}
- fdb = open("/dev/binject-ctl", O_RDWR);
- if (fdb < 0) {
- td_verror(td, errno, "open binject-ctl");
+ fdb = binject_open_ctl(td);
+ if (fdb < 0)
return;
return;
- }
bic.minor = bf->minor;
bic.minor = bf->minor;
- if (ioctl(fdb,
1, &bic) < 0) {
+ if (ioctl(fdb,
B_IOCTL_DEL, &bic) < 0)
td_verror(td, errno, "binject dev unmap");
td_verror(td, errno, "binject dev unmap");
- close(fdb);
- return;
- }
close(fdb);
}
close(fdb);
}
@@
-268,15
+274,13
@@
static int binject_map_dev(struct thread_data *td, struct binject_file *bf,
struct stat sb;
int fdb, dev_there, loops;
struct stat sb;
int fdb, dev_there, loops;
- fdb = open("/dev/binject-ctl", O_RDWR);
- if (fdb < 0) {
- td_verror(td, errno, "binject ctl open");
+ fdb = binject_open_ctl(td);
+ if (fdb < 0)
return 1;
return 1;
- }
bic.fd = fd;
bic.fd = fd;
- if (ioctl(fdb,
0
, &bic) < 0) {
+ if (ioctl(fdb,
B_IOCTL_ADD
, &bic) < 0) {
td_verror(td, errno, "binject dev map");
close(fdb);
return 1;
td_verror(td, errno, "binject dev map");
close(fdb);
return 1;
@@
-412,7
+416,7
@@
static struct ioengine_ops ioengine = {
.open_file = fio_binject_open_file,
.close_file = fio_binject_close_file,
.get_file_size = generic_get_file_size,
.open_file = fio_binject_open_file,
.close_file = fio_binject_close_file,
.get_file_size = generic_get_file_size,
- .flags = FIO_RAWIO | FIO_BARRIER,
+ .flags = FIO_RAWIO | FIO_BARRIER
| FIO_MEMALIGN
,
};
#else /* FIO_HAVE_BINJECT */
};
#else /* FIO_HAVE_BINJECT */