[Samba] AIO settings

William Jojo jojowil at hvcc.edu
Sat Jul 23 16:57:28 GMT 2005



On Thu, 21 Jul 2005, Jeremy Allison wrote:

> On Thu, Jul 21, 2005 at 06:31:31AM -0400, William Jojo wrote:
> >
> > What I was really getting at was the release notes refer you to the
> > smb.conf.5 man page for more information, which isn't there. :-)
> >
> > Perhaps I'm a bit dense this morning, but why would you set a read or
> > write *size* to 1? I'm assuming this represents the aio_nbytes member of
> > the aiocb struct?
>
> It's a fair cop. I need to document the "acl group control" also...
> The "read/write size" actually refers to the size above which the
> read or write will be done using aio rather than synchronously.
> So setting them to 1 makes all reads/writes use aio.
>

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

Which is quite strange since smbd -b :

   HAVE_AIO_H
   HAVE_AIOCB64
   HAVE_AIO_CANCEL
   HAVE_AIO_CANCEL64
   HAVE_AIO_READ
   HAVE_AIO_READ64
   HAVE_AIO_SUSPEND
   HAVE_AIO_SUSPEND64
   HAVE_AIO_WRITE
   HAVE_AIO_WRITE64
   WITH_AIO
   WITH_AIO

I've checked the aio code and I can't find a reason for this. Truss shows:

sbrk(0x00030010)                                = 0x20171010
_posix_kaio_rdwr(0x10000002, 0x200D9900, 0x00000001, 0x00000002,
0x650041FA, 0x06000000, 0x200C2680, 0x00000000) = 0x00000000
_select(27, 0x2FF208F8, 0x00000000, 0x00000000, 0x2FF228F8) Err#4  EINTR
    Received signal #53, SIG#53 [caught]
kwrite(27, " 5", 1)                             = 1
ksetcontext_sigreturn(0x2FF1E420, 0x00000000, 0x2004E8EC, 0x0000D0B2,
0x00000000, 0x600D001A, 0x0000010B, 0x061DF600)
sigprocmask(0, 0x2FF20800, 0x00000000)          = 0
kwrite(26, "\0\0\0 #FF S M B /7F\0\0".., 39)    = 39
sigprocmask(1, 0x2FF20800, 0x00000000)          = 0


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. :-)


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