[Bug 217261] sys/aio/aio_test:aio_md_test fails semi-frequently with Jenkins with "aio_write failed: Operation not supported"

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue May 9 21:21:16 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217261

--- Comment #6 from John Baldwin <jhb at FreeBSD.org> ---
(In reply to Ngie Cooper from comment #4)
Block devices don't exist in FreeBSD.  VSOCK would not show up here either as
those would use a socket fileops which has a custom fo_aio_queue method.

Character devices that are disks (like /dev/mdX) are handled in aio_qphysio(). 
If you hit a resource limit on the number of "physio" requests queued (the
check against 'kaio_ballowed_count' e.g.) then request will fall through and
trigger the unsafe check.  Arguably we should be failing with EAGAIN from
aio_qphysio() and then flipping the '#if 0' in aio_queue_file() so that error
gets returned directly rather than trying to re-queue the request via the
helper kprocs.

All other VCHR are considered unsafe.  We could at some point provide a way for
character devices to claim AIO requests via something like fo_aio_queue.  Note
that ptys already have their own 'struct fileops' and could easily provide a
custom f_aio_queue() along with custom AIO handling to make them "safe".

I'm not sure why kib@ added the VDIR check as I'm not sure any of the current
AIO operations (fsync, read, write) make any sense on directories.  However,
this probably just means that they are allowed to fail with EISDIR rather than
EOPNOTSUPP.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-testing mailing list