From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33710) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q9ZMc-0001cn-Hr for qemu-devel@nongnu.org; Tue, 12 Apr 2011 04:54:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q9ZMb-0002ir-9r for qemu-devel@nongnu.org; Tue, 12 Apr 2011 04:54:22 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:34072) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q9ZMb-0002ic-63 for qemu-devel@nongnu.org; Tue, 12 Apr 2011 04:54:21 -0400 Received: by yxk8 with SMTP id 8so3096835yxk.4 for ; Tue, 12 Apr 2011 01:54:19 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4DA39A6A.7020403@dreamhost.com> References: <6f9466b6098b5159aca9c789f9fce45f409e684f.1301354138.git.josh.durgin@dreamhost.com> <20110408084334.GA28360@stefanha-thinkpad.localdomain> <4DA39A6A.7020403@dreamhost.com> Date: Tue, 12 Apr 2011 09:54:19 +0100 Message-ID: From: Stefan Hajnoczi Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v2 1/2] rbd: use the higher level librbd instead of just librados List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Josh Durgin Cc: Yehuda Sadeh , ceph-devel@vger.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org On Tue, Apr 12, 2011 at 1:18 AM, Josh Durgin wr= ote: > On 04/08/2011 01:43 AM, Stefan Hajnoczi wrote: >> >> On Mon, Mar 28, 2011 at 04:15:57PM -0700, Josh Durgin wrote: >>> >>> librbd stacks on top of librados to provide access >>> to rbd images. >>> >>> Using librbd simplifies the qemu code, and allows >>> qemu to use new versions of the rbd format >>> with few (if any) changes. >>> >>> Signed-off-by: Josh Durgin >>> Signed-off-by: Yehuda Sadeh >>> --- >>> =A0block/rbd.c =A0 =A0 =A0 | =A0785 >>> +++++++++++++++-------------------------------------- >>> =A0block/rbd_types.h | =A0 71 ----- >>> =A0configure =A0 =A0 =A0 =A0 | =A0 33 +-- >>> =A03 files changed, 221 insertions(+), 668 deletions(-) >>> =A0delete mode 100644 block/rbd_types.h >> >> Hi Josh, >> I have applied your patches onto qemu.git/master and am running >> ceph.git/master. >> >> Unfortunately qemu-iotests fails for me. >> >> >> Test 016 seems to hang in qemu-io -g -c write -P 66 128M 512 >> rbd:rbd/t.raw. =A0I can reproduce this consistently. =A0Here is the >> backtrace of the hung process (not consuming CPU, probably deadlocked): > > This hung because it wasn't checking the return value of rbd_aio_write. > I've fixed this in the for-qemu branch of > http://ceph.newdream.net/git/qemu-kvm.git. Also, the existing rbd > implementation is not 'growable' - writing to a large offset will not exp= and > the rbd image correctly. Should we implement bdrv_truncate to support thi= s > (librbd has a resize operation)? Is bdrv_truncate useful outside of qemu-= img > and qemu-io? If librbd has a resize operation then it would be nice to wire up bdrv_truncate() for completeness. Note that bdrv_truncate() can also be called online using the block_resize monitor command. Since rbd devices are not growable we should fix qemu-iotests to skip 016 for rbd. >> Test 008 failed with an assertion but succeeded when run again. =A0I thi= nk >> this is a race condition: > > This is likely a use-after-free, but I haven't been able to find the race > condition yet (or reproduce it). Could you get a backtrace from the core > file? Unfortunately I have no core file and wasn't able to reproduce it again. Is qemu-iotests passing for you now? Stefan