我正在尝试确定fio(github.com/axboe/fio)在使用libaio ioengine时如何确定是否存在写入错误。
在linux kernel aio functionality的帖子中,我看到了回调函数work_done()中的错误检查示例,该函数检查io_getevents()返回的事件。
但我在libaio.c(https://github.com/axboe/fio/blob/master/engines/libaio.c#L145)的fio_libaio_getevents()函数中找不到任何类似的错误检查。
我已经从https://github.com/axboe/fio/blob/fio-2.17/README#L77写到了邮件列表(fio@vger.kernel.org),但邮件却反弹了。所以任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:1)
错误在res
中以res2
和struct iocb
的形式返回。在该fio代码中,您可以看到此处传递的iocb数组为ld->aio_events + events
。
r = io_getevents(ld->aio_ctx, actual_min,
max, ld->aio_events + events, lt);
在文件的早期检查实际错误,函数为fio_libaio_event
。