[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