[Cbe-oss-dev] spufs syscalls

Julio M. Merino Vidal jmerino at ac.upc.edu
Sat Nov 3 20:50:25 EST 2007


Hello,

This is something I've been wondering for a while and I thought I  
could ask here.

According to an introductory article [1] to spufs, the first version  
of it used a completely filesystem-based interface to manage the  
SPUs: there were no syscalls.  However, some months later, this  
change [2] was done:

----
We are moving to a system call based approach for some
low-level operations now. Two system calls are introduced,
spu_run and spu_create. The spu_create call can be
used in place of the mkdir syscall to create an spu
context. It returns an open file descriptor to the
new directory. When the fd is closed (e.g. on process
exit), the context is automatically destroyed.

The spu_run call takes over the role of the ioctl
with the same name. It operates on the file descriptor
returned from spu_create, so we don't need the "run"
file any more.
----

Having everything in the file system seemed like a good idea,  
specially to keep user-level compatibility across different systems  
with Cell support.  I also read in [3] that some syscall-based  
interfaces were tried first.

So, why are these two syscalls an exception?  Did the design that  
contained them as part of the file system turn out to be problematic?

Thanks,

1: http://www.ibm.com/developerworks/power/library/pa-cell/
2: http://lkml.org/lkml/2005/9/16/20
3: http://www.ibm.com/developerworks/power/library/pa-expert4/

-- 
Julio M. Merino Vidal <jmerino at ac.upc.edu>





More information about the cbe-oss-dev mailing list