William Light wrote: > I shied away from pipes initially because I figured that staying in > user-space would let me keep tighter control on how quickly things > execute.
User-space code can be swapped out (unless you have mlocked it). So _replacing_ user-space code with some kernel code that already does the same thing cannot make things worse. > I've been following the JACK recommendation of avoiding "all I/O > functions (disk, TTY, network)" as strictly as possible That kind of I/O goes to real devices, which might have all sorts of unpredictable delays. In the case of an eventfd (or a pipe that is not connected to another program), your program controls all aspects of the object, so you know when it could block. Furthermore, operations will not block if you have enabled non-blocking mode. > I'm avoiding blocking, of course, but I'm also worried about the > potential scheduling implications of jumping into kernel-mode and back System calls executed from your process get accounted to your process, just like user-space code. Interrupts can interrupt both kernel- and user-space code. Scheduling happens only when your time slice runs out (which can happen in both user space and kernel space), or when you make a system call that actually blocks. Regards, Clemens _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
