• Jeremy Kerr's avatar
    [POWERPC] cell: Unify spufs syscall path · 98f06978
    Jeremy Kerr authored
    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: default avatarJeremy Kerr <jk@ozlabs.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    98f06978
spufs.h 10.2 KB