[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/3] exec: further refine address_space_get_iotl
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 0/3] exec: further refine address_space_get_iotlb_entry() |
Date: |
Fri, 2 Jun 2017 17:51:07 +0300 |
On Fri, Jun 02, 2017 at 07:50:51PM +0800, Peter Xu wrote:
> With the patch applied:
>
> [PATCH v3] exec: fix address_space_get_iotlb_entry page mask
> (already in Paolo's pull request but not yet merged)
>
> Now we can have valid address masks. However it is still not ideal,
> considering that the mask may not be aligned to guest page sizes. One
> example would be when huge page is used in guest (please see commit
> message in patch 1 for details). It applies to normal pages too. So we
> not only need a valid address mask, we should make sure it is page
> mask (for x86, it should be either 4K/2M/1G pages).
Why should we? To get better performance, right?
> Patch 1+2 fixes the problem. Tested with both kernel net driver or
> testpmd, on either 4K/2M pages, to make sure the page mask is correct.
>
> Patch 3 is cherry picked from PT series, after fixing from 1+2, we'll
> definitely want patch 3 now. Here's the simplest TCP streaming test
> using vhost dmar and iommu=pt in guest:
>
> without patch 3: 12.0Gbps
And what happens without patches 1-2?
> with patch 3: 33.5Gbps
This is the part I don't get. Patches 1-2 will return a bigger region to
callers. The result should be better performance - instead it seems to
slow down vhost for some reason and we need tricks to get
performance back. What's going on?
> Please review, thanks.
>
> Peter Xu (3):
> exec: add page_mask for address_space_do_translate
> exec: simplify address_space_get_iotlb_entry
> vhost: iommu: cache static mapping if there is
>
> exec.c | 73
> +++++++++++++++++++++++++++++++++-----------------
> hw/virtio/trace-events | 4 +++
> hw/virtio/vhost.c | 66 +++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 119 insertions(+), 24 deletions(-)
>
> --
> 2.7.4
[Qemu-devel] [PATCH 3/3] vhost: iommu: cache static mapping if there is, Peter Xu, 2017/06/02
Re: [Qemu-devel] [PATCH 3/3] vhost: iommu: cache static mapping if there is, Michael S. Tsirkin, 2017/06/02
Re: [Qemu-devel] [PATCH 0/3] exec: further refine address_space_get_iotlb_entry(),
Michael S. Tsirkin <=