[CRIU] [PATCH] ptrace: add ability to retrieve signals without removing from a queue (v2)
Andrey Wagin
avagin at gmail.com
Mon Feb 25 05:46:36 EST 2013
2013/2/25 Pavel Emelyanov <xemul at parallels.com>:
>> + for (i = 0; i < arg.nr; i++) {
>> + off = arg.off + i;
>> +
>> + spin_lock_irq(&child->sighand->siglock);
>> + list_for_each_entry(q, &pending->list, list) {
>> + if (!off--) {
>> + copy_siginfo(&info, &q->info);
>> + break;
>> + }
>> + }
>> + spin_unlock_irq(&child->sighand->siglock);
>
> What's the point of arg.nr if you for every single siginfo drop the lock
> and perform linear search anyway?
arg.nr may be useful, if we will decide to optimize this part in a
future. Currently the problem with complexity of finding a signal in a
queue is true not only for this code. It exists for delivering
real-time signals as well. Probably in a future this problem will be
fixed for both cases by the same way.
Thanks,
Andrew
More information about the CRIU
mailing list