[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3cb12bbd-922d-e7be-18bb-a48e559346c7@redhat.com>
Date: Tue, 28 Feb 2017 11:23:34 +0800
From: Jason Wang <jasowang@...hat.com>
To: "Michael S. Tsirkin" <mst@...hat.com>
Cc: kvm@...r.kernel.org, virtualization@...ts.linux-foundation.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
wexu@...hat.com, peterx@...hat.com, vkaplans@...hat.com,
maxime.coquelin@...hat.com
Subject: Re: [PATCH V2] vhost: introduce O(1) vq metadata cache
On 2017年02月28日 02:35, Michael S. Tsirkin wrote:
> On Wed, Feb 15, 2017 at 01:37:17PM +0800, Jason Wang wrote:
>>
>> On 2016年12月14日 17:53, Jason Wang wrote:
>>> When device IOTLB is enabled, all address translations were stored in
>>> interval tree. O(lgN) searching time could be slow for virtqueue
>>> metadata (avail, used and descriptors) since they were accessed much
>>> often than other addresses. So this patch introduces an O(1) array
>>> which points to the interval tree nodes that store the translations of
>>> vq metadata. Those array were update during vq IOTLB prefetching and
>>> were reset during each invalidation and tlb update. Each time we want
>>> to access vq metadata, this small array were queried before interval
>>> tree. This would be sufficient for static mappings but not dynamic
>>> mappings, we could do optimizations on top.
>>>
>>> Test were done with l2fwd in guest (2M hugepage):
>>>
>>> noiommu | before | after
>>> tx 1.32Mpps | 1.06Mpps(82%) | 1.30Mpps(98%)
>>> rx 2.33Mpps | 1.46Mpps(63%) | 2.29Mpps(98%)
>>>
>>> We can almost reach the same performance as noiommu mode.
>>>
>>> Signed-off-by: Jason Wang<jasowang@...hat.com>
>>> ---
>>> Changes from V1:
>>> - silent 32bit build warning
>> ping
> Could you rebase pls?
> I pushed my tree into linux next.
>
Ok, will do.
Thanks
Powered by blists - more mailing lists