[CRIU] Re: [PATCH 2/6] parasite: Dump blocked thread signals mask
Pavel Emelyanov
xemul at parallels.com
Thu Nov 1 07:12:20 EDT 2012
On 11/01/2012 03:04 PM, Cyrill Gorcunov wrote:
> On Thu, Nov 01, 2012 at 02:59:10PM +0400, Pavel Emelyanov wrote:
>> On 10/31/2012 02:44 PM, Cyrill Gorcunov wrote:
>>> ---
>>> include/parasite.h | 1 +
>>> parasite.c | 8 ++++++--
>>> 2 files changed, 7 insertions(+), 2 deletions(-)
>>>
>>
>>> @@ -354,11 +354,15 @@ static int dump_thread_info(struct parasite_dump_thread_info *args)
>>>
>>> ret = sys_prctl(PR_GET_TID_ADDRESS, (unsigned long) &args->tid_addr, 0, 0, 0);
>>> if (ret)
>>> - return ret;
>>> + goto err;
>>>
>>> args->tid = sys_gettid();
>>>
>>> - return 0;
>>> + ksigfillset(&args->blocked);
>>> + ret = sys_sigprocmask(SIG_SETMASK, NULL, &args->blocked, sizeof(k_rtsigset_t));
>>> +
>>> +err:
>>> + return ret;
>>> }
>>>
>>> static int drain_fds(struct parasite_drain_fd *args)
>>
>> No, this is wrong. Threads' blocked signals should be handled the same way as
>> tasks' are.
>
> Not sure if I follow you here. At moment task's signals are obtained from
> parasite code, where they are saved once the task get infected with our
> blob. Now when we run parasite code inside thread space we fetch blocked
> signals, so what i'm missing?
> .
>
Threads should also block their signals once seized and infected.
More information about the CRIU
mailing list