mirror of https://gitee.com/openkylin/linux.git
98f06978ff
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> |
||
---|---|---|
.. | ||
spufs | ||
Kconfig | ||
Makefile | ||
axon_msi.c | ||
cbe_cpufreq.c | ||
cbe_cpufreq.h | ||
cbe_cpufreq_pervasive.c | ||
cbe_cpufreq_pmi.c | ||
cbe_regs.c | ||
cbe_regs.h | ||
cbe_thermal.c | ||
interrupt.c | ||
interrupt.h | ||
io-workarounds.c | ||
iommu.c | ||
pervasive.c | ||
pervasive.h | ||
pmu.c | ||
ras.c | ||
ras.h | ||
setup.c | ||
smp.c | ||
spider-pic.c | ||
spu_base.c | ||
spu_callbacks.c | ||
spu_coredump.c | ||
spu_manage.c | ||
spu_priv1_mmio.c | ||
spu_priv1_mmio.h | ||
spu_syscalls.c |