On Fri, 3 Nov 2006, Jens Axboe wrote:
On Fri, Nov 03 2006, Brent Baccala wrote:
...
The enqueues still take a noticable amount of time, though, just a lot
less than before. They average 1 second total. That's 100 one-MB
reads, broken down into 128 KB blocks, I suppose, for a total of 800
low-level reads. Setting nr_requests higher (2048) doesn't seem to do
any more good.
I can see that you've put me on the right track, but I am still
puzzling... any idea what the remaining second is being used for?
Try to time it (visual output of the app is not very telling, and it's
buffered) and then apply some profiling.
Yeah, I did time it. I bracketed the enqueues with calls to
gettimeofday(). It takes them about a second to run, and I made sure
that the fprintfs were outside the timing checks. Here's the actual code:
fprintf(stderr, "Enqueues starting\n");
gettimeofday(&tv1, NULL);
for (i=0; i<NUMAIOS; i++) {
memset(&iocb[i], 0, sizeof(struct iocb));
iocb[i].aio_lio_opcode = IOCB_CMD_PREAD;
iocb[i].aio_fildes = fd;
iocb[i].aio_buf = (unsigned long) buffer[i];
iocb[i].aio_nbytes = BUFFER_BYTES;
iocb[i].aio_offset = BUFFER_BYTES * i;
/* aiocb[i].aio_offset = 0; */
iocbp[0] = &iocb[i];
if (io_submit(aio_default_context, 1, iocbp) != 1) {
perror("");
fprintf(stderr, "Can't enqueue aio_read %d\n", i);
}
}
gettimeofday(&tv2, NULL);
subtract_timeval(&tv2, &tv1);
sprint_timeval(strbuf, &tv2);
fprintf(stderr, "Enqueues complete in %s\n", strbuf);
And the output:
baccala@debian ~/src/endgame$ time ./testaio
Enqueues starting
Enqueues complete in 1.187s
real 0m5.335s
user 0m0.001s
sys 0m0.760s
baccala@debian ~/src/endgame$
What kind of profiling did you have in mind? Kernel profiling? As
you can see, its user time is basically nil.
-bwb
Brent Baccala
[email protected]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]