Re: [Xen-devel] [PATCH RFC 4/4] xen-block: introduce a new requesttype to unmap grants

From: Roger Pau Monné
Date: Wed Jul 10 2013 - 10:46:50 EST


On 10/07/13 15:54, Egger, Christoph wrote:
> On 10.07.13 11:19, Roger Pau Monné wrote:
>> On 08/07/13 21:41, Konrad Rzeszutek Wilk wrote:
>>> On Mon, Jul 08, 2013 at 03:03:27PM +0200, Roger Pau Monne wrote:
>>>> Right now blkfront has no way to unmap grant refs, if using persistent
>>>> grants once a grant is used blkfront cannot assure if blkback will
>>>> have this grant mapped or not. To solve this problem, a new request
>>>> type (BLKIF_OP_UNMAP) that allows requesting blkback to unmap certain
>>>> grants is introduced.
>>>
>>> I don't think this is the right way of doing it. It is a new operation
>>> (BLKIF_OP_UNMAP) that has nothing to do with READ/WRITE. All it is
>>> is just some way for the frontend to say: unmap this grant if you can.
>>>
>>> As such I would think a better mechanism would be to have a new
>>> grant mechanism that can say: 'I am done with this grant you can
>>> remove it' - that is called to the hypervisor. The hypervisor
>>> can then figure out whether it is free or not and lazily delete it.
>>> (And the guest would be notified when it is freed).
>>
>> I have a patch that I think implements something quite similar to what
>> you describe, but it doesn't require any new patch to the hypervisor
>> side. From blkfront we can check what grants blkback has chosen to
>> persistently map and only keep those.
>>
>> This is different from my previous approach, were blkfront could
>> specifically request blkback to unmap certain grants, but it still
>> prevents blkfront from hoarding all grants (unless blkback is
>> persistently mapping every possible grant). With this patch the number
>> of persistent grants in blkfront will be the same as in blkback, so
>> basically the backend can control how many grants will be persistently
>> mapped.
>
> According to your blog
> http://blog.xen.org/index.php/2012/11/23/improving-block-protocol-scalability-with-persistent-grants/
> persistent grants in the frontend gives an benefit even when the backend does not support
> persistent grants. Is this still the case with this patch?

Not sure, I have not benchmarked this specific combination with this new
patch, but I would say probably not, because we remove the foreign
access if the backend has not persistently mapped the grant.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/