Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1696996

Re: [PATCH v2 0/4] Optimise 64-bit IOVA allocations

From "Leizhen (ThunderTown)" <thunder.leizhen@huawei.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 0/4] Optimise 64-bit IOVA allocations
Date 2017-07-26 13:20 +0200
Message-ID <u7sw9-83B-11@gated-at.bofh.it> (permalink)
References <u5EBr-4jK-9@gated-at.bofh.it> <u7smu-80k-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



On 2017/7/26 19:08, Joerg Roedel wrote:
> Hi Robin.
> 
> On Fri, Jul 21, 2017 at 12:41:57PM +0100, Robin Murphy wrote:
>> Hi all,
>>
>> In the wake of the ARM SMMU optimisation efforts, it seems that certain
>> workloads (e.g. storage I/O with large scatterlists) probably remain quite
>> heavily influenced by IOVA allocation performance. Separately, Ard also
>> reported massive performance drops for a graphical desktop on AMD Seattle
>> when enabling SMMUs via IORT, which we traced to dma_32bit_pfn in the DMA
>> ops domain getting initialised differently for ACPI vs. DT, and exposing
>> the overhead of the rbtree slow path. Whilst we could go around trying to
>> close up all the little gaps that lead to hitting the slowest case, it
>> seems a much better idea to simply make said slowest case a lot less slow.
> 
> Do you have some numbers here? How big was the impact before these
> patches and how is it with the patches?
Here are some numbers:

(before)$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.106 port 5001 connected with 192.168.1.198 port 35898
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.2 sec  7.88 MBytes  6.48 Mbits/sec
[  5] local 192.168.1.106 port 5001 connected with 192.168.1.198 port 35900
[  5]  0.0-10.3 sec  7.88 MBytes  6.43 Mbits/sec
[  4] local 192.168.1.106 port 5001 connected with 192.168.1.198 port 35902
[  4]  0.0-10.3 sec  7.88 MBytes  6.43 Mbits/sec

(after)$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.106 port 5001 connected with 192.168.1.198 port 36330
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.09 GBytes   933 Mbits/sec
[  5] local 192.168.1.106 port 5001 connected with 192.168.1.198 port 36332
[  5]  0.0-10.0 sec  1.10 GBytes   939 Mbits/sec
[  4] local 192.168.1.106 port 5001 connected with 192.168.1.198 port 36334
[  4]  0.0-10.0 sec  1.10 GBytes   938 Mbits/sec

> 
> 
> 	Joerg
> 
> 
> .
> 

-- 
Thanks!
BestRegards

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH v2 0/4] Optimise 64-bit IOVA allocations Robin Murphy <robin.murphy@arm.com> - 2017-07-21 13:50 +0200
  [PATCH v2 1/4] iommu/iova: Optimise rbtree searching Robin Murphy <robin.murphy@arm.com> - 2017-07-21 13:50 +0200
  [PATCH v2 4/4] iommu/iova: Make dma_32bit_pfn implicit Robin Murphy <robin.murphy@arm.com> - 2017-07-21 13:50 +0200
  [PATCH v2 2/4] iommu/iova: Optimise the padding calculation Robin Murphy <robin.murphy@arm.com> - 2017-07-21 13:50 +0200
  Re: [PATCH v2 0/4] Optimise 64-bit IOVA allocations Joerg Roedel <joro@8bytes.org> - 2017-07-26 13:10 +0200
    Re: [PATCH v2 0/4] Optimise 64-bit IOVA allocations "Leizhen (ThunderTown)" <thunder.leizhen@huawei.com> - 2017-07-26 13:20 +0200

csiph-web