Index: squid/src/fs/aufs/aiops.c diff -c squid/src/fs/aufs/aiops.c:1.12.2.10 squid/src/fs/aufs/aiops.c:1.12.2.11 *** squid/src/fs/aufs/aiops.c:1.12.2.10 Sat Mar 19 16:02:29 2005 --- squid/src/fs/aufs/aiops.c Mon Apr 25 10:27:02 2005 *************** *** 250,256 **** squidaio_fdhandler(int fd, void *data) { char junk[256]; ! read(done_fd_read, junk, sizeof(junk)); commSetSelect(fd, COMM_SELECT_READ, squidaio_fdhandler, NULL, 0); } --- 250,256 ---- squidaio_fdhandler(int fd, void *data) { char junk[256]; ! FD_READ_METHOD(done_fd_read, junk, sizeof(junk)); commSetSelect(fd, COMM_SELECT_READ, squidaio_fdhandler, NULL, 0); } *************** *** 462,468 **** pthread_mutex_unlock(&done_queue.mutex); if (!done_signalled) { done_signalled = 1; ! write(done_fd, "!", 1); } threadp->requests++; } /* while forever */ --- 462,468 ---- pthread_mutex_unlock(&done_queue.mutex); if (!done_signalled) { done_signalled = 1; ! FD_WRITE_METHOD(done_fd, "!", 1); } threadp->requests++; } /* while forever */ *************** *** 861,867 **** if (request == NULL && !polled) { if (done_signalled) { char junk[256]; ! read(done_fd_read, junk, sizeof(junk)); done_signalled = 0; } squidaio_poll_queues(); --- 861,867 ---- if (request == NULL && !polled) { if (done_signalled) { char junk[256]; ! FD_READ_METHOD(done_fd_read, junk, sizeof(junk)); done_signalled = 0; } squidaio_poll_queues(); *************** *** 934,936 **** --- 934,952 ---- break; } } + + void + squidaio_stats(StoreEntry * sentry) + { + squidaio_thread_t *threadp; + int i; + + storeAppendPrintf(sentry, "\n\nThreads Status:\n"); + storeAppendPrintf(sentry, "#\tID\t# Requests\n"); + + threadp = threads; + for (i = 0; i < squidaio_nthreads; i++) { + storeAppendPrintf(sentry, "%i\t0x%lx\t%ld\n", i + 1, (unsigned long) threadp->thread, threadp->requests); + threadp = threadp->next; + } + } Index: squid/src/fs/aufs/async_io.c diff -c squid/src/fs/aufs/async_io.c:1.10.2.8 squid/src/fs/aufs/async_io.c:1.10.2.9 *** squid/src/fs/aufs/async_io.c:1.10.2.8 Tue Mar 29 01:44:14 2005 --- squid/src/fs/aufs/async_io.c Mon Apr 25 10:27:03 2005 *************** *** 347,352 **** --- 347,353 ---- storeAppendPrintf(sentry, "unlink\t%d\n", squidaio_counts.unlink); storeAppendPrintf(sentry, "check_callback\t%d\n", squidaio_counts.check_callback); storeAppendPrintf(sentry, "queue\t%d\n", squidaio_get_queue_len()); + squidaio_stats(sentry); } /* Flush all pending I/O */ Index: squid/src/fs/aufs/store_asyncufs.h diff -c squid/src/fs/aufs/store_asyncufs.h:1.9.2.5 squid/src/fs/aufs/store_asyncufs.h:1.9.2.6 *** squid/src/fs/aufs/store_asyncufs.h:1.9.2.5 Fri Mar 25 19:50:54 2005 --- squid/src/fs/aufs/store_asyncufs.h Mon Apr 25 10:27:03 2005 *************** *** 58,63 **** --- 58,64 ---- int squidaio_get_queue_len(void); void *squidaio_xmalloc(int size); void squidaio_xfree(void *p, int size); + void squidaio_stats(StoreEntry *); void aioInit(void); void aioDone(void);