From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stodden Subject: [PATCH 0 of 4] aio event fd support to blktap2 Date: Thu, 28 Jan 2010 22:37:42 -0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Get blktap2 running on pvops. This mainly adds eventfd support to the userland code. Based on some prior cleanup to tapdisk-queue and the server object. We had most of that in XenServer for a while, so I kept it stacked. 1. Clean up IPC and AIO init in tapdisk-server. [I think tapdisk-ipc in blktap2 is basically obsolete. Pending a later patch to remove it?] 2. Split tapdisk-queue into variable raw I/O backends. This basically makes an 'ops'-struct (struct tio) out of what used to be primarily libaio vs. an if/else hack to resort to canonical read()/write()s where desirable. For now, the one chosen remains as hardcoded as ever. 3. Prefer AIO eventfd support on kernels >= 2.6.22 Mainline Linux after 2.6.22 finally got I/O muxing for AIO. Unfortunately, few systems bring the necessary libaio update (0.3.107), xen/tools included. Since this is just about a bunch of inline macros and an update to reserved space in the iocb struct, let's add a compat header with private typedefs instead. This should obsolete tools/aio. Misc: - Does a runtime kernel version check. I guess this code will need additional cpp magic on BSDs. - Wants a PERROR macro in blktaplib.h - Fixes a bug in tapdisk-vbd which locks up the sync io mode. - Removed dead code in qcow2raw to make it link again.