Re: fork() blocking rt-threads?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 18 Oct 2009 02:11:22 -0400
Lee Revell <rlrevell@xxxxxxxxxxx> wrote:

> On Fri, Oct 16, 2009 at 12:31 PM, Nedko Arnaudov <nedko@xxxxxxxxxxxxx> wrote:
> >> Another question that comes to mind is: was Ardour running with a realtime
> >> priority too? Higher or lower prio than jack's?
> >
> > Ardour process has realtime thread(s) started by libjack.
> 
> AFAICT, fork() is inherently unusable from any thread of a process
> with realtime threads.  It locks the page tables and the process
> structure of the parent among other things.
> 
> Anyone know if posix_spawn() is supported by any major distro's glibc?
>  Apparently it was developed to solve this exact problem.
> 
> http://www.opengroup.org/onlinepubs/009695399/functions/posix_spawn.html
> 

Just tried it on a RHEL5.4 and Fedora 11 system. The pthread_spawn(3P)
function is implemented using vfork(2) under the covers. Makes sense,
since the stated intent is to work without VM. 

Still, anyone wanting to create processes/threads in a realtime
environment needs to do that stuff up front, since there's a ton of
work required to make a scheduleable entity. Whether you're just
creating a pthread or you're generating a full-up process, memory will
have to be allocated and locks taken.  Not sure I'd depend on
*anything* to do the right thing for me...

Clark

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux