[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 6/7] xen/arm: rcar4: add simple optimization to avoid ATU reprogramming


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>
  • Date: Tue, 11 Mar 2025 10:24:56 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k0TfRl/3++KwXJXT4f/ciAOEs4ilm6jBMLPNvvLZqhU=; b=ECKZZhYISW2w8kG4YB+QmP4yra8LQh/uvgMRxjYTTGns66BrpKugZMvKz7QeVI/wH+OYKAIOmoI3JUMuei3yQLv6MPaP+2WoUZlOuL5W3yE5nEtn6hZ/DiYSI4EWT9ECGUBnBWJ8J3s6JbtCEcc3vRPIJdwiQxG7RpGrzIrgnZu8Ows09kc78Rj6HCamg1pgptInICDoHAk9xgL+1SXrJcJuvCs0gRCLk9UHRZzkVR/GK4VPmuPcsvoX0T+bj+1IXxwrDXUf3sEnmu1uFU3VW7skRFWOYaP3K7B3tYzAw9ld+CHTwQd5idITtm61dCcOGQDG4YIUD5e09VfHts6X/g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=inqdVN7uVusAHSbG/YVKB1F8Fzw/qJX2aSWG6dgubfDLy4MBmRe/HXNYuylfE4WXCDcLOf4x5EDR4R5OU9evmKczSYTXK30LVHUDFL8t/dVTGBnaFdkRZDWZ56xHToIIdppGg6qZFUXhBojNUX5Dyyv1xrmdytSdt8msutiFMg9f87FlPlR4TwiSZMyIRqjbbL6xPj16jw2Qy7qe20hQdLBQg86+Nu+tvkZlGxLtLFX3x2BPkIL1xCYY7Nm8WkIjt3Mu40KDmhzVMLLseSPDgk1AIglQjeLI5YdKFk9egtnU4ruXXcYH7Bwk/kahxUbZ8IP+H5xXcC4ZQ6oFvC5q4w==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>
  • Delivery-date: Tue, 11 Mar 2025 10:25:08 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHbkm/Wk5N38mqKT0ikm3bT0fuP8w==
  • Thread-topic: [PATCH v2 6/7] xen/arm: rcar4: add simple optimization to avoid ATU reprogramming

From: Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>

There are high chances that there will be a number of a consecutive
accesses to configuration space of one device. To speed things up,
we can program ATU only during first access.

This is mostly beneficial taking into account the previous patch that
adds 1ms delay after ATU reprogramming.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>
Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx>
---
v1->v2:
* rebased
---
 xen/arch/arm/pci/pci-designware.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/arm/pci/pci-designware.c 
b/xen/arch/arm/pci/pci-designware.c
index def2c12d63..cec52cf81a 100644
--- a/xen/arch/arm/pci/pci-designware.c
+++ b/xen/arch/arm/pci/pci-designware.c
@@ -272,6 +272,14 @@ static void dw_pcie_prog_outbound_atu(struct 
pci_host_bridge *pci, int index,
                                       int type, uint64_t cpu_addr,
                                       uint64_t pci_addr, uint64_t size)
 {
+    static uint64_t prev_addr = ~0;
+
+    /* Simple optimization to not-program ATU for every transaction */
+    if (prev_addr == pci_addr)
+        return;
+
+    prev_addr = pci_addr;
+
     __dw_pcie_prog_outbound_atu(pci, 0, index, type,
                                 cpu_addr, pci_addr, size);
 }
-- 
2.34.1



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.