On 05/16, Denys Vlasenko wrote:
>
> On 05/16/2012 11:48 AM, Dmitry V. Levin wrote:
>>>
>>> One solution is to run waitpid() in a loop until it returns 0 "no more 
>>> tracees
>>> to wait", then handle them all. It was NAKed a few years ago.
>>
>> It would be nice to have a look at that discussion.  Do you have a
>> reference?  What was the rationale that time?
>
> I guess Roland saw it as "ugly" and "trying to work around ptrace API
> which is a hopelessly bad API anyway".

It is indeed ugly and hopeless. But perhaps Roland hoped we can have
something new. Now that utrace is dead, unlikely this is possible.

> On the technical note, it adds additional waitpid call per every
> syscall entry/exit, and serializes strace even more: instead of
> servicing and restarting a thread as fast as we can, we collect
> other threads - keeping ready threads stuck a bit longer.

But what else we can do to fix the problem? (lets not discuss
the vectorized do_wait right now ;)

Imho, you should reconsider your patch.

> I looked into in and _maybe_ signalfd may help us noticeably.

unlikely, because

> for one, some SIGCHLDs can be lost.

yes, SIGCHLD doesn't queue.

Oleg.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to