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

Commit 679567c9 authored by Mitchel Humpherys's avatar Mitchel Humpherys Committed by Patrick Daly
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>
Signed-off-by: default avatarPatrick Daly <pdaly@codeaurora.org>
parent 0dc04def
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -463,6 +463,7 @@ static void iommu_debug_device_profiling(struct seq_file *s, struct device *dev)
	struct iommu_domain *domain;
	unsigned long iova = 0x10000;
	phys_addr_t paddr = 0xa000;
	int atomic_domain = 1;

	domain = iommu_domain_alloc(&platform_bus_type);
	if (!domain) {
@@ -470,6 +471,13 @@ static void iommu_debug_device_profiling(struct seq_file *s, struct device *dev)
		return;
	}

	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");