This deserves to be discussed on LKML. Alan Stern
---------- Forwarded message ---------- Date: Sun, 25 Feb 2007 00:57:55 -0800 From: Sarah Bailey <[EMAIL PROTECTED]> To: David Brownell <[EMAIL PROTECTED]>, [EMAIL PROTECTED] Cc: [EMAIL PROTECTED], linux-usb-devel@lists.sourceforge.net Subject: [linux-usb-devel] usbfs2: Why asynchronous I/O? I've been doing some research into how asynchronous I/O is implemented, and I'm beginning to doubt the usefulness of implementing aio_read and aio_write in usbfs2. More detail on what I've learned can be found at http://wiki.cs.pdx.edu/usb/asyncdebate.html It was a surprise to me that aio_read(3) and aio_write(3) don't actually end up calling aio_read and aio_write file operations. Instead, GNU libc spawns threads that call the blocking read and write file operations. I haven't seen any evidence that the kernel-side aio is substantially more efficient than the GNU libc implementation, so it seems like it would be better to leave the complexity in userspace. I also doubt that most userspace application writers know they aren't getting kernel-side aio when they use aio_read(3) and aio_write(3). Why implement something that isn't going to be used? There are few examples in the kernel where the aio API is implemented in a truly asynchronous manner, and that leads me to wonder if the aio system has been thoroughly tested. The majority of aio_read and aio_write file operations simply block and wait for their transactions to complete. The only "proper" async examples I could find were gadgetfs, NFS, and block devices. NFS and block devices only use aio when the O_DIRECT flag is set, so that code may not be well tested. I just found a bug in gadgetfs that has been there for six months that means the code wasn't tested for when io_submit is called in readv mode. So, why do I want a non-blocking aio_read and aio_write file operation? It's useful to have read and readv implemented automatically from aio_read, but I see no substantial benefit to implementing aio_read in a non-blocking way. Sarah Bailey ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel