--- aiops.c.orig Mon Sep 17 13:38:32 2001 +++ aiops.c Mon Sep 17 15:01:22 2001 @@ -257,6 +257,7 @@ if (squidaio_initialised) return; + syslog( LOG_DAEMON|LOG_INFO, "squidaio_init(): do initialization" ); pthread_attr_init(&globattr); #if HAVE_PTHREAD_ATTR_SETSCOPE @@ -317,6 +318,7 @@ squidaio_micro_bufs = memPoolCreate("squidaio_micro_bufs", AIO_MICRO_BUFS); squidaio_initialised = 1; + syslog( LOG_DAEMON|LOG_INFO, "squidaio_init(): done initialization" ); } @@ -632,6 +634,10 @@ requestp->cancelled = 0; squidaio_queue_request(requestp); + syslog( LOG_DAEMON|LOG_INFO, + "squidaio_read(): queued %p,fd=%d,offset=%ld,whence=%d,len=%ld", + requestp, requestp->fd, (long)requestp->offset, requestp->whence, + (long) requestp->buflen ); return 0; } @@ -641,7 +647,8 @@ { #ifdef WITH_AIO_AND_KEVENT struct aiocb cb; - int rc; + int rc, se; + syslog( LOG_DAEMON|LOG_INFO, "squidaio_do_read(%p,%d)", requestp, kq ); if( kq == -1 ) goto OldMode; memset( &cb, 0, sizeof cb ); @@ -652,6 +659,7 @@ if( cb.aio_offset == -1 ) { requestp->ret = -1; requestp->err = errno; + syslog( LOG_DAEMON|LOG_INFO, "squidaio_do_read(): fail on lseek" ); return; } } @@ -667,7 +675,10 @@ /* Queue request. * Fall back to blocking mode on any error. Reason does not matter. */ - if( aio_read( &cb ) < 0 ) + rc = aio_read( &cb ); se = errno; + syslog( LOG_DAEMON|LOG_INFO, "squidaio_do_read(): aio_read() -> %d,%d", + rc, se ); + if( rc < 0 ) goto OldMode; /* Wait for termination. Termination will be caught as kevent. */ for(;;) { @@ -693,9 +704,12 @@ /* Get operation return value and record it. */ requestp->err = rc; requestp->ret = aio_return( &cb ); + syslog( LOG_DAEMON|LOG_INFO, "squidaio_do_read(): aio done, %d, %d", + requestp->ret, requestp->err ); return; OldMode: + syslog( LOG_DAEMON|LOG_INFO, "squidaio_do_read(): blocking mode" ); #endif lseek(requestp->fd, requestp->offset, requestp->whence); requestp->ret = read(requestp->fd, requestp->tmpbufp, requestp->buflen);