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

Commit e9405ef0 authored by Sinan Kaya's avatar Sinan Kaya Committed by Vinod Koul
Browse files

dmaengine: dmatest: exclude compare and fill time during perf report



Dmatest is currently including compare and fill time into the
calculated performance numbers. This does not reflect the HW
capability and the results vary based on the CPU speed instead of
the HW speed.

Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 29b4817d
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -426,7 +426,9 @@ static int dmatest_func(void *data)
	int			src_cnt;
	int			dst_cnt;
	int			i;
	ktime_t			ktime;
	ktime_t			ktime, start, diff;
	ktime_t			filltime = ktime_set(0, 0);
	ktime_t			comparetime = ktime_set(0, 0);
	s64			runtime = 0;
	unsigned long long	total_len = 0;

@@ -531,6 +533,7 @@ static int dmatest_func(void *data)
			src_off = 0;
			dst_off = 0;
		} else {
			start = ktime_get();
			src_off = dmatest_random() % (params->buf_size - len + 1);
			dst_off = dmatest_random() % (params->buf_size - len + 1);

@@ -541,6 +544,9 @@ static int dmatest_func(void *data)
					  params->buf_size);
			dmatest_init_dsts(thread->dsts, dst_off, len,
					  params->buf_size);

			diff = ktime_sub(ktime_get(), start);
			filltime = ktime_add(filltime, diff);
		}

		um = dmaengine_get_unmap_data(dev->dev, src_cnt+dst_cnt,
@@ -683,6 +689,7 @@ static int dmatest_func(void *data)
			continue;
		}

		start = ktime_get();
		pr_debug("%s: verifying source buffer...\n", current->comm);
		error_count = dmatest_verify(thread->srcs, 0, src_off,
				0, PATTERN_SRC, true);
@@ -703,6 +710,9 @@ static int dmatest_func(void *data)
				params->buf_size, dst_off + len,
				PATTERN_DST, false);

		diff = ktime_sub(ktime_get(), start);
		comparetime = ktime_add(comparetime, diff);

		if (error_count) {
			result("data error", total_tests, src_off, dst_off,
			       len, error_count);
@@ -712,7 +722,10 @@ static int dmatest_func(void *data)
				       dst_off, len, 0);
		}
	}
	runtime = ktime_us_delta(ktime_get(), ktime);
	ktime = ktime_sub(ktime_get(), ktime);
	ktime = ktime_sub(ktime, comparetime);
	ktime = ktime_sub(ktime, filltime);
	runtime = ktime_to_us(ktime);

	ret = 0;
err_dstbuf: