Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
unsigned long long fs = (unsigned long long) file_size * 1024 * 1024ULL;
while (fs) {
unsigned long long fs = (unsigned long long) file_size * 1024 * 1024ULL;
while (fs) {
if (fs < msg_size)
break;
fill_buf(m, msg_size);
if (fs < msg_size)
break;
fill_buf(m, msg_size);
- write(fd, m, msg_size);
- fs -= msg_size;
+ ret = write(fd, m, msg_size);
+ if (ret < 0) {
+ perror("write");
+ return -1;
+ }
+ fs -= ret;
* Keep four pipes of buffers, that should be enough to ensure that
* we don't reuse
*/
* Keep four pipes of buffers, that should be enough to ensure that
* we don't reuse
*/
-static void setup_buffers(void)
+static int setup_buffers(void)
buffers = malloc(sizeof(void *) * nr_bufs);
buffers = malloc(sizeof(void *) * nr_bufs);
- for (i = 0; i < nr_bufs; i++)
- posix_memalign(&buffers[i], 4096, msg_size);
+ for (i = 0; i < nr_bufs; i++) {
+ if (posix_memalign(&buffers[i], 4096, msg_size)) {
+ printf("posix_memalign: %s\n", strerror(errno));
+ return -1;
+ }
+ }
+
+ return 0;
}
static void free_buffers(void)
}
static void free_buffers(void)
if (pipe(pipes) < 0)
return error("pipe");
if (pipe(pipes) < 0)
return error("pipe");
+ if (setup_buffers())
+ return -1;
while (packets--) {
m = buffers[cur_buf];
while (packets--) {
m = buffers[cur_buf];
int sk, opt;
bind_to_cpu(offset);
int sk, opt;
bind_to_cpu(offset);
+ if (nice(-20) < 0)
+ perror("nice");
sk = socket(PF_INET, SOCK_STREAM, 0);
if (sk < 0)
sk = socket(PF_INET, SOCK_STREAM, 0);
if (sk < 0)
char fname[64];
bind_to_cpu(offset);
char fname[64];
bind_to_cpu(offset);
+ if (nice(-20) < 0)
+ perror("nice");
if (!write_to_null)
out_fd = client_open_net(offset);
if (!write_to_null)
out_fd = client_open_net(offset);
return error("connect");
start_timing("Empty buffer");
return error("connect");
start_timing("Empty buffer");
- for (i = 0; i < NR; i++)
- write(sk, buffer, BUFSIZE);
+ for (i = 0; i < NR; i++) {
+ if (write(sk, buffer, BUFSIZE) != BUFSIZE)
+ return error("empty buffer write");
+ }
end_timing(NR*BUFSIZE, &r1);
fd = open("largefile", O_RDONLY);
end_timing(NR*BUFSIZE, &r1);
fd = open("largefile", O_RDONLY);
for (i = 0; i < NR; i++) {
if (read(fd, buffer, BUFSIZE) != BUFSIZE)
return error("largefile read");
for (i = 0; i < NR; i++) {
if (read(fd, buffer, BUFSIZE) != BUFSIZE)
return error("largefile read");
- write(sk, buffer, BUFSIZE);
+ if (write(sk, buffer, BUFSIZE) != BUFSIZE)
+ return error("largefile write");
}
end_timing(NR*BUFSIZE, &r2);
close(fd);
}
end_timing(NR*BUFSIZE, &r2);
close(fd);
BUG_ON(fd == -1);
close(fd);
BUG_ON(fd == -1);
close(fd);
- fd = open(".tmp_mmap", O_RDWR|O_CREAT|O_TRUNC);
+ fd = open(".tmp_mmap", O_RDWR|O_CREAT|O_TRUNC, 0644);
BUG_ON(fd == -1);
ret = write(fd, zerobuff, 4096);
BUG_ON(ret != 4096);
BUG_ON(fd == -1);
ret = write(fd, zerobuff, 4096);
BUG_ON(ret != 4096);
* We are a nice +19 SCHED_BATCH task:
*/
BUG_ON(sched_setscheduler(0, SCHED_BATCH, &p) != 0);
* We are a nice +19 SCHED_BATCH task:
*/
BUG_ON(sched_setscheduler(0, SCHED_BATCH, &p) != 0);
+ if (nice(40) < 0)
+ perror("nice");
rdtscll(t0);
while (cycles >= 0) {
rdtscll(t0);
while (cycles >= 0) {
+ if (nice(-20) < 0)
+ perror("nice");
+
child();
kill(pid, SIGHUP);
exit(0);
child();
kill(pid, SIGHUP);
exit(0);