Linux Container Development
 help / color / mirror / Atom feed
From: Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
To: Nathan Lynch <ntl-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
Cc: containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org
Subject: Re: build breaks when checkpoint unimplemented by arch
Date: Tue, 07 Jul 2009 15:03:22 -0400	[thread overview]
Message-ID: <4A539BFA.7020200@cs.columbia.edu> (raw)
In-Reply-To: <m33a98v4j0.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>



Nathan Lynch wrote:
> Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org> writes:
>> On Tue, 7 Jul 2009, Nathan Lynch wrote:
>>
>>> Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org> writes:
>>>> That's what I tried initially, but the problem is that sigset_t may
>>>> be defined differently for userspace - see /usr/include/asm/sigset_t.h.
>>>> In fact, for x86_32, it it is different, defined as 'unsigned long' 
>>>> (and NSIG defined as 32, so only 32 bits).
>>> I noticed this, but I figured only the kernel definition was salient.
>>> Apart from debugging checkpoint/restart, why would userspace need the
>>> definition of struct ckpt_hdr_sigset?
>> I expect user space tools to at least:
>>
>> - Assist in debugging c/r
>>
>> - Assist users in reporting problems with c/r (especially since they
>>   themselves do not debug or hack)
>>
>> - Convert checkpoint images from one kernel version to another
>>
>> - Provide information about a checkpoint image, and even allow its
>>   manipulation.  This can assist developers in debugging their programs
>>   (e.g. to debug a crash you need to run a program for 30 minutes so it 
>>   ets up its state; instead of repeatedly running it, you run it once, 
>>   checkpoint, and then debug from a restarted version. A tool could 
>>   allow you to peek/poke inside the checkpoint and even modify data in 
>>   it).
>>
>> - Or a tool that converts a checkpoint image to a core dump so it
>>   can be inspected with gdb.
>>
>> I'm pretty sure others will find other uses to it...
> 
> But I asked specifically about ckpt_hdr_sigset.
> 
> 
>>> For that matter, why would userspace need the definitions of most of the
>>> structures in checkpoint_hdr.h?  (Again, debugging purposes don't count:
>>> ckptinfo or similar developer utilities can be included with the
>>> kernel.)
>> Keeping the checkpoint header format understandable by user space (and 
>> immune to 32-64 variations) has been a requirement since day 1.
> 
> I guess I wasn't around that day.  It seems backwards to expose the
> format of every checkpoint record in the ABI regardless of whether
> plausible use cases exist.  Linux has a well-established pattern of
> introducing interfaces without sufficient testing or documentation[1],
> and I expect C/R will adhere to tradition.  Making the ABI obese in the
> hope of anticipating every conceivable use will just provide more
> opportunities to screw up.
> 
> [1] http://userweb.kernel.org/~mtk/papers/lce2007/What_we_lose_without_words.pdf

I could not agree more !

The intent of exposure to userspace is not to establish an ABI, but
solely to allow *specialized* c/r-related user tools to understand
such data, per kernel version.

On the contrary: it is expected to change between kernel versions
and break compatibility with older version, on a regular basis.
That is why we plan to do conversion of checkpoint images between
kernel version in userspace.

I view it as a "window" for userspace to glance at how checkpoint
image for a specific kernel version is defined. And it comes as is,
no-strings-attached, with nothing but a promise to likely break it
on the next release.

This begs the question: how to make sure that this message is clear
and is not misinterpreted ?   Or (and I'm no API expert) - perhaps
there is a better way...

Oren.

  parent reply	other threads:[~2009-07-07 19:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-06 21:06 build breaks when checkpoint unimplemented by arch Nathan Lynch
     [not found] ` <m3my7hv7w8.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2009-07-06 23:04   ` Oren Laadan
     [not found]     ` <Pine.LNX.4.64.0907061902530.15941-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2009-07-06 23:29       ` Serge E. Hallyn
2009-07-06 23:54       ` Nathan Lynch
     [not found]         ` <m3bpnxv03k.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2009-07-07  4:44           ` Oren Laadan
     [not found]             ` <Pine.LNX.4.64.0907070039360.22105-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2009-07-07  6:22               ` Nathan Lynch
     [not found]                 ` <m2eist3tcr.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2009-07-07 14:58                   ` Oren Laadan
     [not found]                     ` <Pine.LNX.4.64.0907071049540.24765-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2009-07-07 16:31                       ` Nathan Lynch
     [not found]                         ` <m33a98v4j0.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2009-07-07 19:03                           ` Oren Laadan [this message]
2009-07-07 13:33               ` Serge E. Hallyn
     [not found]                 ` <20090707133335.GA7686-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-07-07 14:59                   ` Oren Laadan
     [not found]                     ` <Pine.LNX.4.64.0907071058340.24765-CXF6herHY6ykSYb+qCZC/1i27PF6R63G9nwVQlTi/Pw@public.gmane.org>
2009-07-07 15:06                       ` Serge E. Hallyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A539BFA.7020200@cs.columbia.edu \
    --to=orenl-eqauephvms7envbuuze7ea@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=ntl-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox