Hi,
First, I want to make sure this project isn't dead. If it is, please
let me know.
I am using linux 2.4.5 + xfs (linux-2.4.5-xfs-06112001.patch) and the
kaio-kern-1.3.1-2.4.2 patch. There were some conflicts with syscalls,
but they were very easy to rectify.
I am employing aio to asynchronously write to files using SIGEV_SIGNAL
notification. the baisc flow is to do something like:
register signal handler (SIGUSR1)
open file
aio_write(10 bytes offset 0)
aio_write(100 bytes offset 10)
aio_write(50 bytes offset 110)
The aio_write's uses the sigevent framework to pass in a pointer
(sigev_value.sival_ptr) and the "last" aio_write on a file descriptor if
marked as such and the handler calls close().
I include <features.h> and <linux/aio.h> before anything else. and I
link against -ldba (not -lpthread as the application is single threaded
for now).
I am working on an xfs partition and everytime I run my program, the
file I create is 135036928 bytes in size instead of the just over 100
bytes it should be. Also, I have a kaiod-xxxxx processes (thread) that
will not die and is CPU bound (100% all the time). Needless to say, it
make things unusable.
Does KAIO just not work on XFS (I haven't tried it yet on ext2)? Or am
I doing something fundamentally wrong?
Any help would be appreciated.
--
Theo Schlossnagle
1024D/82844984/95FD 30F1 489E 4613 F22E 491A 7E88 364C 8284 4984
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7
|