Unverified Commit 4be9c460 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!12694 crypto: xor - fix template benchmarking

Merge Pull Request from: @ci-robot 
 
PR sync from: Chen Ridong <chenridong@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/DYBRFXCZ425JHLFWLTHI5Y7QV5JH7VU3/ 
crypto: xor - fix template benchmarking

Bhaskar Chowdhury (1):
  crypto: xor - Fix typo of optimization

Helge Deller (1):
  crypto: xor - fix template benchmarking


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/IB0D87 
 
Link:https://gitee.com/openeuler/kernel/pulls/12694

 

Reviewed-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parents f3af467e e9f05fd4
Loading
Loading
Loading
Loading
+14 −17
Original line number Diff line number Diff line
@@ -83,33 +83,30 @@ static void __init
do_xor_speed(struct xor_block_template *tmpl, void *b1, void *b2)
{
	int speed;
	int i, j;
	ktime_t min, start, diff;
	unsigned long reps;
	ktime_t min, start, t0;

	tmpl->next = template_list;
	template_list = tmpl;

	preempt_disable();

	min = (ktime_t)S64_MAX;
	for (i = 0; i < 3; i++) {
		start = ktime_get();
		for (j = 0; j < REPS; j++) {
			mb(); /* prevent loop optimzation */
	reps = 0;
	t0 = ktime_get();
	/* delay start until time has advanced */
	while ((start = ktime_get()) == t0)
		cpu_relax();
	do {
		mb(); /* prevent loop optimization */
		tmpl->do_2(BENCH_SIZE, b1, b2);
		mb();
		}
		diff = ktime_sub(ktime_get(), start);
		if (diff < min)
			min = diff;
	}
	} while (reps++ < REPS || (t0 = ktime_get()) == start);
	min = ktime_sub(t0, start);

	preempt_enable();

	// bytes/ns == GB/s, multiply by 1000 to get MB/s [not MiB/s]
	if (!min)
		min = 1;
	speed = (1000 * REPS * BENCH_SIZE) / (unsigned int)ktime_to_ns(min);
	speed = (1000 * reps * BENCH_SIZE) / (unsigned int)ktime_to_ns(min);
	tmpl->speed = speed;

	pr_info("   %-16s: %5d MB/sec\n", tmpl->name, speed);