irqchip/gicv3-its: Use NUMA aware memory allocation for ITS tables
authorShanker Donthineni <shankerd@codeaurora.org>
Mon, 14 Jan 2019 09:50:19 +0000 (09:50 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 21 Feb 2019 10:32:29 +0000 (10:32 +0000)
commit539d378242858c58f9e57b54e57be1f7f1204ad4
treec1584244c9e83eabcb66ec4505b3b4a2260c15bc
parent9f199dd34ce06f603df365ab18bd84eefc5f7c2b
irqchip/gicv3-its: Use NUMA aware memory allocation for ITS tables

The NUMA node information is visible to ITS driver but not being used
other than handling hardware errata. ITS/GICR hardware accesses to the
local NUMA node is usually quicker than the remote NUMA node. How slow
the remote NUMA accesses are depends on the implementation details.

This patch allocates memory for ITS management tables and command
queue from the corresponding NUMA node using the appropriate NUMA
aware functions. This change improves the performance of the ITS
tables read latency on systems where it has more than one ITS block,
and with the slower inter node accesses.

Apache Web server benchmarking using ab tool on a HiSilicon D06
board with multiple numa mem nodes shows Time per request and
Transfer rate improvements of ~3.6% with this patch.

Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Reviewed-by: Ganapatrao Kulkarni <gkulkarni@marvell.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c