[sheepdog] [PATCH] sheepdog: serialize requests to overwrapping area

Liu Yuan namei.unix at gmail.com
Tue Jul 28 11:35:02 CEST 2015


On Tue, Jul 28, 2015 at 04:50:08PM +0800, Liu Yuan wrote:
> On Sat, Jul 18, 2015 at 01:44:24AM +0900, Hitoshi Mitake wrote:
> > Current sheepdog driver only serializes create requests in oid
> > unit. This mechanism isn't enough for handling requests to
> > overwrapping area spanning multiple oids, so it can result bugs like
> > below:
> > https://bugs.launchpad.net/sheepdog-project/+bug/1456421
> 
> I'm a bit late to review the patch since I'm not on the cc list, but I'd like to
> get the idea how the mentioned bug relates to the serialization of requests?
> 
> The mentioned bug looks to me more a bug of sheepdog because the create and
> write request will only unref a single oid. The bug report is unclear about
> why the object idx in inode becomes zero, at least not pointing that it relates
> to QEMU.
> 
> But this patch assume QEMU send the requests the wrong way and just vaguely
> says it is just wrong without reason.
> 
> What is overrapping requests? As far as I understand, the request that stride
> over two objects will be split into two, to make sure all the requests fit the
> sheepdog object size. Allow requests run concurrently on different SD objects is
> way achieving high performance. This patch mutes this feature, to me, without a
> decent reason. 
> 
> Probably I miss something hidden, but I'd like someone enlighten me about it
> because this patch might slow down QEMU VM over sheepdog.
> 
> Thanks,
> Yuan

Cc Jeff


More information about the sheepdog mailing list