From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Vagin Subject: =?UTF-8?q?=5BPATCH=200/3=5D=20signalfd=3A=20a=20kernel=20interface=20for=20dumping/restoring=20pending=20signals=20=28v2=29?= Date: Fri, 28 Dec 2012 14:22:58 +0400 Message-ID: <1356690181-1796-1-git-send-email-avagin@openvz.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: criu@openvz.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, Andrey Vagin , Serge Hallyn , Oleg Nesterov , Andrew Morton , "Eric W. Biederman" , Al Viro , Pavel Emelyanov , Cyrill Gorcunov , Michael Kerrisk To: linux-kernel@vger.kernel.org Return-path: Received: from mailhub.sw.ru ([195.214.232.25]:10661 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752053Ab2L1KYN (ORCPT ); Fri, 28 Dec 2012 05:24:13 -0500 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: The idea is simple. We need to get the siginfo for each signal on dump, and then return it back on restore. The first problem is that the kernel doesn=E2=80=99t report complete si= ginfo-s in user-space. In a signal handler the kernel strips SI_CODE from siginfo. When a siginfo is received from signalfd, it has a different format with fixed sizes of fields. The interface of signalfd was extended. If a signalfd is created with the flag SFD_RAW, it returns siginfo in a raw format. rt_sigqueueinfo looks suitable for restoring signals, but it can=E2=80=99= t send siginfo with a positive si_code, because these codes are reserved for the kernel. In the real world each person has right to do anything with himself, so I think a process should able to send any siginfo to itself= =2E v2: add ability to dump signals without dequeuing them. pread with non-zero offset is used for this. offset encodes a queue (private of shared) and a sequence number of a signal in the queue. Thanks to Oleg for this idea. Cc: Serge Hallyn Cc: Oleg Nesterov Cc: Andrew Morton Cc: "Eric W. Biederman" Cc: Al Viro Cc: Pavel Emelyanov CC: Cyrill Gorcunov Cc: Michael Kerrisk --=20 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel= " in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html