[Samba] AIO settings

William Jojo jojowil at hvcc.edu
Wed Jul 27 20:37:07 GMT 2005



On Sat, 23 Jul 2005, Jeremy Allison wrote:

> On Sat, Jul 23, 2005 at 12:57:28PM -0400, William Jojo wrote:
> >
> > Running some test with this on AIX 5.2:
> >
> > [2005/07/23 12:44:10, 10] locking/locking.c:is_locked(121)
> >   is_locked: posix start=0 len=61440 unlocked for file bill/goodtime.avi
> > [2005/07/23 12:44:10, 10] smbd/aio.c:schedule_aio_write_and_X(359)
> >   schedule_aio_write_and_X: scheduled aio_write for file
> > bill/goodtime.avi, offs
> > et 0, len = 61440 (mid = 4928) outstanding_aio_calls = 1
> > [2005/07/23 12:44:10, 10] smbd/process.c:async_processing(287)
> >   async_processing: Doing async processing.
> > [2005/07/23 12:44:10, 10] smbd/aio.c:process_aio_queue(535)
> >   process_aio_queue: signals_received = 1
> > [2005/07/23 12:44:10, 10] smbd/aio.c:process_aio_queue(536)
> >   process_aio_queue: outstanding_aio_calls = 1
> > [2005/07/23 12:44:10, 3] smbd/aio.c:handle_aio_write_complete(457)
> >   handle_aio_write: file bill/goodtime.avi wanted 61440 bytes. nwritten ==
> > -1. Error = Function not implemented
> > [2005/07/23 12:44:10, 3] smbd/error.c:unix_error_packet(91)
> >   unix_error_packet: error string = Function not implemented
> > [2005/07/23 12:44:10, 3] smbd/error.c:error_packet(147)
> >   error packet at smbd/aio.c(465) cmd=47 (SMBwriteX) NT_STATUS_DISK_FULL
> >
> > I'm stumped on why I'm getting Function Not Implemented. The aio kernel
> > extentsion is clearly loaded or smbd would fail to start from unbound
> > references.
> >
> > I'll work on a resolution if you have any hints. :-)
>
> Look carefully at the AIX aio reference pages. See if there are any
> page boundary restrictions for the read/write buffer (ie. they
> must align on a 512 byte memory boundary etc). Are there any special
> calls you must do on a fd to enable aio ?
>


from sys/signal.h


/*
 * sigevent structure, referred to (but not used) in asynchronous i/o.
 *
 * WARNING: The unix98 sigevent is available to user programs, but this
 *          does not itself guarantee that the kernel supports unix98 aio.
 *
 */

Real-time signals in aio are not supported....yet...So now my question is
can we do this another way?


I'm mocking up a process_aio_queue that doesn't use the signal portion but
I'm having a hard time linking it to async_processing() which appears to
be linked to oplock handling (or if you have another
preference/recommendation).

I've set up a test with aio and hundreds of aiocb's of 64K in flight,
without the signal processing and it's working great in my test bed.

What I'd like to do is trip the async_processing() more frequently and put
more mid's in flight or some variation thereof as the smbd code path will
allow. Do you have any pointers on achieving such a goal?



Cheers,


Bill


> Jeremy.
> --
> To unsubscribe from this list go to the following URL and read the
> instructions:  https://lists.samba.org/mailman/listinfo/samba
>


More information about the samba mailing list