Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db91dc59 authored by Mitchel Humpherys's avatar Mitchel Humpherys
Browse files

iommu/iommu-debug: Set DOMAIN_ATTR_ATOMIC during profiling



There's some non-deterministic latency incurred by enabling clocks and
regulators.  Clocks and regulators are left on for atomic domains, which
makes them a good choice for profiling the page table management code.
Use an atomic domain for map/unmap profiling to make things more
deterministic.

Change-Id: Ib9fa48699c9d6009dd3f3b322002e2fb0f2ff99c
Signed-off-by: default avatarMitchel Humpherys <mitchelh@codeaurora.org>
parent 66c068c9
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -317,7 +317,7 @@ static void iommu_debug_device_profiling(struct seq_file *s, struct device *dev)
	struct bus_type *bus;
	unsigned long iova = 0x10000;
	phys_addr_t paddr = 0xa000;
	int htw_disable = 1;
	int htw_disable = 1, atomic_domain = 1;

	bus = msm_iommu_get_bus(dev);
	if (!bus)
@@ -335,6 +335,13 @@ static void iommu_debug_device_profiling(struct seq_file *s, struct device *dev)
		goto out_domain_free;
	}

	if (iommu_domain_set_attr(domain, DOMAIN_ATTR_ATOMIC,
				  &atomic_domain)) {
		seq_printf(s, "Couldn't set atomic_domain to %d\n",
			   atomic_domain);
		goto out_domain_free;
	}

	if (iommu_attach_device(domain, dev)) {
		seq_puts(s,
			 "Couldn't attach new domain to device. Is it already attached?\n");