0

I am trying to determine how fio (github.com/axboe/fio) determines if there is a write error when using the libaio ioengine.

From the post at linux kernel aio functionality, I see an example of error checking in the callback function, work_done(), which examines the events returned by io_getevents().

But I cannot find any similar error checking in the fio_libaio_getevents() function from libaio.c (https://github.com/axboe/fio/blob/master/engines/libaio.c#L145).

I have written to the mailing list (fio@vger.kernel.org) from https://github.com/axboe/fio/blob/fio-2.17/README#L77, but the mail bounces. So any help would be much appreciated.

Thanks in advance.

Community
  • 1
  • 1
S. Forman
  • 109
  • 2
  • 8

1 Answers1

1

The errors are returned as res and res2 in struct iocb. In that fio code, you can see the iocb array passed in here, as ld->aio_events + events.

        r = io_getevents(ld->aio_ctx, actual_min,
            max, ld->aio_events + events, lt);

The actual error is checked earlier in the file, in the function fio_libaio_event.

Mike Andrews
  • 3,045
  • 18
  • 28
  • Thanks for the pointer. Also, the reason I had problems emailing fio@vger.kernel.org was because my email was in HTML format, and it was rejected for security reasons. – S. Forman Mar 28 '17 at 19:43