android_kernel_xiaomi_sm8350/arch/powerpc/lib
Anton Blanchard 789c299ca2 powerpc: Improve 64bit copy_tofrom_user
Here is a patch from Paul Mackerras that improves the ppc64 copy_tofrom_user.
The loop now does 32 bytes at a time and as well as pairing loads and stores.

A quick test case that reads 8kB over and over shows the improvement:

POWER6: 53% faster
POWER7: 51% faster

#define _XOPEN_SOURCE 500
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

#define BUFSIZE (8 * 1024)
#define ITERATIONS 10000000

int main()
{
	char tmpfile[] = "/tmp/copy_to_user_testXXXXXX";
	int fd;
	char *buf[BUFSIZE];
	unsigned long i;

	fd = mkstemp(tmpfile);
	if (fd < 0) {
		perror("open");
		exit(1);
	}

	if (write(fd, buf, BUFSIZE) != BUFSIZE) {
		perror("open");
		exit(1);
	}

	for (i = 0; i < 10000000; i++) {
		if (pread(fd, buf, BUFSIZE, 0) != BUFSIZE) {
			perror("pread");
			exit(1);
		}
	}

	unlink(tmpfile);

	return 0;
}

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2010-02-17 14:03:16 +11:00
..
alloc.c
checksum_32.S
checksum_64.S
code-patching.c
copy_32.S powerpc/8xx: Start using dcbX instructions in various copy routines 2009-12-09 17:10:37 +11:00
copypage_64.S powerpc: Pair loads and stores in copy_4k_page 2010-02-17 14:03:16 +11:00
copyuser_64.S powerpc: Improve 64bit copy_tofrom_user 2010-02-17 14:03:16 +11:00
crtsavres.S
devres.c
div64.S
feature-fixups-test.S
feature-fixups.c powerpc: Fix lwsync patching code on 64bit 2010-02-17 14:03:15 +11:00
locks.c locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
Makefile powerpc: Add configurable -Werror for arch/powerpc 2009-06-16 14:15:45 +10:00
mem_64.S
memcpy_64.S powerpc: Fix 64bit memcpy() regression 2009-02-26 14:02:53 +11:00
rheap.c
sstep.c powerpc: Don't emulate mr. instructions 2009-02-10 14:39:07 +11:00
string.S
usercopy_64.c