posix_spawn() is a Swiss army knife which can replace al most all
system calls needed to execute an external utility.
The bla() refers to signal, I/O, process group, terminal ownership and
all other tasks a shell has to do to start an external utility. These
are 20+ system calls.

Olga

On Mon, Jul 12, 2010 at 10:39 PM, Dan Mick <dan.m...@oracle.com> wrote:
> Thank you for the bla()'s.  That really added to my understanding.
>
> On 07/12/10 05:05 AM, ольга крыжановская wrote:
>>
>> I don't want spawn(2), I want posix_spawn(2). The last is more
>> powerful and would reduce the number of system calls, possibilities
>> for race conditions and execute faster than the bla(), bla(), bla(),
>> bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(),
>> bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(),
>> bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(),
>> bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(),
>> bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(), bla(),
>> vfork(), exec() applications and shells have to use today.
>>
>> Olga
>>
>> 2010/7/12 Phil Harman<phil.har...@gmail.com>:
>>>
>>> This was one of my pet peeves during my 20 years at Sun. The main reason
>>> I wanted spawn(2) was for multithreaded apps needing to start new processes.
>>> The issue was that all LWPs need to be quiesced before even a vfork(2),
>>> which meant that something as simple as just calling system(3) might stop
>>> the world. The standard response from the gurus was ETOOHARD, followed by a
>>> good dose of FUD about how fundamental fork/exec was to UNIX, and that we
>>> couldn't be sure a spawned process would be exactly the same, "think of all
>>> the implicit inheritance". The proposed workaround was always the same:
>>> "your multithreaded app should use a fork helper co-process to do its
>>> spawning for it".
>>>
>>> I salute you and wish you well!
>>>
>>> On 12 Jul 2010, at 04:46, ольга крыжановская<olga.kryzhanov...@gmail.com>
>>>  wrote:
>>>
>>>> Perf team, has any one been interested in implementing posix_spawn()
>>>> as system call to improve performance? posix_spawn() is implemented as
>>>> sequence of vforkx and execve currently with many intermediate system
>>>> calls around it. From by looking at it and the kernel code of vforkx
>>>> and execve it might be beneficial to turn the whole thing into one
>>>> single system call.
>>>>
>>>> Olga
>>>> --
>>>>      ,   _                                    _   ,
>>>>     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
>>>> .----'-/`-/     olga.kryzhanov...@gmail.com   \-`\-'----.
>>>> `'-..-| /       http://twitter.com/fleyta     \ |-..-'`
>>>>      /\/\     Solaris/BSD//C/C++ programmer   /\/\
>>>>      `--`                                      `--`
>>>> _______________________________________________
>>>> perf-discuss mailing list
>>>> perf-discuss@opensolaris.org
>>>
>>
>>
>>
>
> _______________________________________________
> on-discuss mailing list
> on-disc...@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/on-discuss
>



-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     olga.kryzhanov...@gmail.com   \-`\-'----.
 `'-..-| /       http://twitter.com/fleyta     \ |-..-'`
      /\/\     Solaris/BSD//C/C++ programmer   /\/\
      `--`                                      `--`
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to