Juergen Lock wrote:
> In article <48DE5256.5000101 at codemonkey.ws> you write:
>>> [...]
>>>>>>>> The one thing that really tripped me up with the whole aio kld-module
>>>> thing. Perhaps we should detect the presence of the module at run time and
>>>> disable aio? I assume kldload can only be run as root?
>>>>>>>>>>> Yes. Atm the ports print a warning when aio is not loaded:
>>>>>>>> Yeah, I don't think this is enough. I'd rather see AIO be disabled when
>> modfind("aio") is not available (printing a warning along with that
>> would be fine). A non-privileged user cannot load the aio module so
>> it's not very useful to tell them to load it.
>>>> OK so how about the following? (only tested with a raw image, but if
> the way its disabled for OpenBSD works for all of them this should as well.)
>> Oh and am I right qemu-img doesn't use aio? If it actually does we may
> want to add the same check there instead of just disabling it. (I kept it
> enabled for qemu-nbd since thats not built on FreeBSD anyway.)
>
Disabling aio for everyone is not the right thing if posix-aio is broken.
What would be better is in block-raw-posix.c, to have a one type check
of modfind() (if we're FreeBSD), and if it fails, set a flag that forces
the aio routines to call bdrv_aio_{read,write}_em.
Regards,
Anthony Liguori