History log of /freebsd/sys/kern/vfs_aio.c (Results 226 – 250 of 685)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# bd793be3 24-Jan-2006 David Xu <davidxu@FreeBSD.org>

More cleanup for aio code:
1) unregsiter kqueue filter for EVFILT_LIO.
2) free uma_zones.
3) call setsid directly to enter another session rather than
implementing by itself.

Submitted by: jhb


# 7f34b521 24-Jan-2006 David Xu <davidxu@FreeBSD.org>

Add bracket.


# 68d71118 23-Jan-2006 David Xu <davidxu@FreeBSD.org>

Verify all supported notification types.


# a9bf5e37 23-Jan-2006 David Xu <davidxu@FreeBSD.org>

1) Merge _aio_aqueue and aio_aqueue, check quota in aio_aqueue,
so that lio_listio won't exceed the quota.
2) Remove lio_ref_count, it is no longer used.


# 8c0d9af5 22-Jan-2006 David Xu <davidxu@FreeBSD.org>

Fix a bogus panic.


# 9b84335c 22-Jan-2006 David Xu <davidxu@FreeBSD.org>

Decrease kaio_active_count first, because user process may go away
after we notified it.


# 1ce91824 22-Jan-2006 David Xu <davidxu@FreeBSD.org>

Make aio code MP safe.


# 8213baf0 15-Jan-2006 Christian S.J. Peron <csjp@FreeBSD.org>

Initialize ki to p->p_aioinfo after we know it's going to be referencing
a valid kaioinfo structure. This avoids a potential NULL pointer dereference.

Found with: Coverity Prevent(tm)
MFC after: 2 w

Initialize ki to p->p_aioinfo after we know it's going to be referencing
a valid kaioinfo structure. This avoids a potential NULL pointer dereference.

Found with: Coverity Prevent(tm)
MFC after: 2 weeks

show more ...


# af56abaa 06-Jan-2006 John Baldwin <jhb@FreeBSD.org>

Return error from fget_write() rather than hardcoding EBADF now that
fget_write() DTRT.

Requested by: bde


# 323fe565 09-Nov-2005 David Xu <davidxu@FreeBSD.org>

In aio_waitcomplete, do not return EAGAIN if no other threads
have started aio, instead, initialize aio management structure
if it hasn't been done, the reason to adjust this behavior is
to make it a

In aio_waitcomplete, do not return EAGAIN if no other threads
have started aio, instead, initialize aio management structure
if it hasn't been done, the reason to adjust this behavior is
to make it a bit friendly for threaded program, consider two
threads, one submits aio_write, and another just calls
aio_waitcomplete to wait any I/O to be completed and recycle the
aio requests, before submitter doing any I/O, the recycler wants
to wait in kernel. This also fixes inconsistency with other aio
syscalls.

show more ...


# 2a522eb9 08-Nov-2005 John Baldwin <jhb@FreeBSD.org>

Various and sundry cleanups:
- Use curthread for calls to knlist_delete() and add a big comment
explaining why as well as appropriate assertions.
- Use TAILQ_FOREACH and TAILQ_FOREACH_SAFE instead

Various and sundry cleanups:
- Use curthread for calls to knlist_delete() and add a big comment
explaining why as well as appropriate assertions.
- Use TAILQ_FOREACH and TAILQ_FOREACH_SAFE instead of handrolling them.
- Use fget() family of functions to lookup file objects instead of
grovelling around in file descriptor tables.
- Destroy the aio_freeproc mutex if we are unloaded.

Tested on: i386

show more ...


# 8f0371f1 04-Nov-2005 David Xu <davidxu@FreeBSD.org>

Fix name compatible problem with POSIX standard. the sigval_ptr and
sigval_int really should be sival_ptr and sival_int.
Also sigev_notify_function accepts a union sigval value but not a
pointer.


# 4c0fb2cf 03-Nov-2005 David Xu <davidxu@FreeBSD.org>

Support sending realtime signal information via signal queue, realtime
signal memory is pre-allocated, so kernel can always notify user code.


Revision tags: release/6.0.0_cvs, release/6.0.0
# 68a17869 01-Nov-2005 John Baldwin <jhb@FreeBSD.org>

Push down Giant into fdfree() and remove it from two of the callers.
Other callers such as some rfork() cases weren't locking Giant anyway.

Reviewed by: csjp
MFC after: 1 week


# 0972628a 30-Oct-2005 David Xu <davidxu@FreeBSD.org>

Fix sigevent's POSIX incompatible problem by adding member fields
sigev_notify_function and sigev_notify_attributes. AIO syscalls
use sigevent, so they have to be adjusted.

Reviewed by: alc


# db43cd04 13-Oct-2005 Doug Ambrisko <ambrisko@FreeBSD.org>

Fix tinderbox box by removing incomplete/bad spl usage. Proper giant free
locking is required in for aio.

Pointed out by: imp


# 69cd28da 12-Oct-2005 Doug Ambrisko <ambrisko@FreeBSD.org>

Add in kqueue support to LIO event notification and fix how it handled
notifications when LIO operations completed. These were the problems
with LIO event complete notification:
- Move all LIO

Add in kqueue support to LIO event notification and fix how it handled
notifications when LIO operations completed. These were the problems
with LIO event complete notification:
- Move all LIO/AIO event notification into one general function
so we don't have bugs in different data paths. This unification
got rid of several notification bugs one of which if kqueue was
used a SIGILL could get sent to the process.
- Change the LIO event accounting to count all AIO request that
could have been split across the fast path and daemon mode.
The prior accounting only kept track of AIO op's in that
mode and not the entire list of operations. This could cause
a bogus LIO event complete notification to occur when all of
the fast path AIO op's completed and not the AIO op's that
ended up queued for the daemon.

Suggestions from: alc

show more ...


# ec9c9e73 20-Jul-2005 Alan Cox <alc@FreeBSD.org>

Eliminate inconsistency in the setting of the B_DONE flag. Specifically,
make the b_iodone callback responsible for setting it if it is needed.
Previously, it was set unconditionally by bufdone() wi

Eliminate inconsistency in the setting of the B_DONE flag. Specifically,
make the b_iodone callback responsible for setting it if it is needed.
Previously, it was set unconditionally by bufdone() without holding
whichever lock is shared by the b_iodone callback and the corresponding
top-half function. Consequently, in a race, the top-half function could
conclude that operation was done before the b_iodone callback finished.
See, for example, aio_physwakeup() and aio_fphysio().

Note: I don't believe that the other, more widely-used b_iodone callbacks
are affected.

Discussed with: jeff
Reviewed by: phk
MFC after: 2 weeks

show more ...


# 571dcd15 01-Jul-2005 Suleiman Souhlal <ssouhlal@FreeBSD.org>

Fix the recent panics/LORs/hangs created by my kqueue commit by:

- Introducing the possibility of using locks different than mutexes
for the knlist locking. In order to do this, we add three argumen

Fix the recent panics/LORs/hangs created by my kqueue commit by:

- Introducing the possibility of using locks different than mutexes
for the knlist locking. In order to do this, we add three arguments to
knlist_init() to specify the functions to use to lock, unlock and
check if the lock is owned. If these arguments are NULL, we assume
mtx_lock, mtx_unlock and mtx_owned, respectively.

- Using the vnode lock for the knlist locking, when doing kqueue operations
on a vnode. This way, we don't have to lock the vnode while holding a
mutex, in filt_vfsread.

Reviewed by: jmg
Approved by: re (scottl), scottl (mentor override)
Pointyhat to: ssouhlal
Will be happy: everyone

show more ...


# b490cc72 07-Jun-2005 Alan Cox <alc@FreeBSD.org>

In lio_listio(2) change jobref from an int to a long so that
lio_listio(LIO_WAIT, ...) works correctly on 64-bit architectures.

Reviewed by: tegge


# 67b95a95 05-Jun-2005 Alan Cox <alc@FreeBSD.org>

Eliminate an unused field from struct aio_liojob.


# bbe7bbdf 04-Jun-2005 Alan Cox <alc@FreeBSD.org>

Eliminate the original method of requesting notification of aio_read(2) and
aio_write(2) completion through kevent(2). This method does not work on
64-bit architectures. It was deprecated in FreeBS

Eliminate the original method of requesting notification of aio_read(2) and
aio_write(2) completion through kevent(2). This method does not work on
64-bit architectures. It was deprecated in FreeBSD 4.4. See revisions
1.87 and 1.70.2.7.

Change aio_physwakeup() to call psignal(9) directly rather than indirectly
through a timeout(9). Discussed with: bde

Correct a bug introduced in revision 1.65 that could result in premature
delivery of a signal if an lio_listio(2) consisted of a mixture of
direct/raw and queued I/O operations. Observed by: tegge

Eliminate a field from struct kaioinfo that is now unused.

Reviewed by: tegge

show more ...


# 3769f562 03-Jun-2005 Alan Cox <alc@FreeBSD.org>

Synchronize access to the per process aiocb lists in many of the functions.


# e293dc86 03-Jun-2005 Alan Cox <alc@FreeBSD.org>

In aio_waitcomplete() correct two cases of using an aiocb after freeing it.


# 3148c2c9 31-May-2005 Alan Cox <alc@FreeBSD.org>

Synchronize access to aio_freeproc with a mutex. Eliminate related spl
calls.

Reduce the scope of Giant in aio_daemon().


12345678910>>...28