]> err.no Git - linux-2.6/commit
[POWERPC] cell: Unify spufs syscall path
authorJeremy Kerr <jk@ozlabs.org>
Wed, 19 Sep 2007 04:38:12 +0000 (14:38 +1000)
committerPaul Mackerras <paulus@samba.org>
Wed, 19 Sep 2007 05:12:16 +0000 (15:12 +1000)
commit98f06978ffebbec16abdea58489f217229580859
tree4c0cad43f6bc59083e00a20c423864ac579cdf32
parent36ddbb1380f282b4280c57efdb646dd8647a789f
[POWERPC] cell: Unify spufs syscall path

At present, a built-in spufs will not use the spufs_calls callbacks, but
directly call sys_spu_create.  This saves us an indirect branch, but
means we have duplicated functions - one for CONFIG_SPU_FS=y and one for
=m.

This change unifies the spufs syscall path, and provides access to the
spufs_calls structure through a get/put pair.  At present, the only user
of the spufs_calls structure is spu_syscalls.c, but this will facilitate
adding the coredump calls later.

Everyone likes numbers, right?  Here's a before/after comparison with
CONFIG_SPU_FS=y, doing spu_create(); close(); 64k times.

Before:
[jk@cell ~]$ time ./spu_create
performing 65536 spu_create calls

real    0m24.075s
user    0m0.146s
sys     0m23.925s

After:
[jk@cell ~]$ time ./spu_create
performing 65536 spu_create calls

real    0m24.777s
user    0m0.141s
sys     0m24.631s

So, we're adding around 11us per syscall, at the benefit of having
only one syscall path.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/Makefile
arch/powerpc/platforms/cell/spu_syscalls.c
arch/powerpc/platforms/cell/spufs/spufs.h
arch/powerpc/platforms/cell/spufs/syscalls.c
include/asm-powerpc/spu.h