All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] Enhance checkpoint/restart Kconfig options
       [not found] <20090604184504.F1BCB2F8@kernel>
@ 2009-06-04 20:01 ` Nathan Lynch
       [not found]   ` <m3iqjbix8u.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
  2009-06-04 20:41 ` Serge E. Hallyn
  1 sibling, 1 reply; 6+ messages in thread
From: Nathan Lynch @ 2009-06-04 20:01 UTC (permalink / raw)
  To: Dave Hansen; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> writes:

> I spent way too much time yesterday trying to figure out why
> my c/r tests weren't running.  It turned out that I didn't
> have any of the namespaces enabled, the sys_unshare() was
> failing, and the debugging didn't explain any of this.
>
> So, to protect the world from repeating my mistakes, let's
> improve the Kconfig options a bit.
>
> 1. Don't say "Enable" in the c/r menu, that's just silly
> 2. move the c/r menu next to the namespaces
> 3. make CHECKPOINT select all of the namespaces
> 4. put a Kconfig 'comment' in explaining how everything
>    got selected.
> 5. Put the namespaces in their own menu
>
> Perhaps I should break this up a bit and we can push some
> of this to the beginning of the series.  Thoughts?
>
> ---
>
>  linux-2.6.git-dave/checkpoint/Kconfig |    7 ++++++-
>  linux-2.6.git-dave/init/Kconfig       |    9 ++++++---
>  2 files changed, 12 insertions(+), 4 deletions(-)
>
> diff -puN checkpoint/Kconfig~cr-kconfig-fixup checkpoint/Kconfig
> --- linux-2.6.git/checkpoint/Kconfig~cr-kconfig-fixup	2009-06-04 11:38:57.000000000 -0700
> +++ linux-2.6.git-dave/checkpoint/Kconfig	2009-06-04 11:38:57.000000000 -0700
> @@ -7,9 +7,14 @@ config DEFERQUEUE
>  	default n
>  
>  config CHECKPOINT
> -	bool "Enable checkpoint/restart (EXPERIMENTAL)"
> +	bool "Checkpoint/restart (EXPERIMENTAL)"
>  	depends on CHECKPOINT_SUPPORT && EXPERIMENTAL
>  	select DEFERQUEUE
> +	select UTS_NS
> +	select IPC_NS
> +	select NET_NS
> +	select PID_NS
> +	select USER_NS

*_NS all depend on NAMESPACES at the very least; some have additional
dependencies.  Selecting a symbol without ensuring its dependencies are
enabled is one way to break a build.

Also - checkpoint is useful without *_NS, no?  Forcing these things on
seems a little user-hostile..

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Enhance checkpoint/restart Kconfig options
       [not found]   ` <m3iqjbix8u.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
@ 2009-06-04 20:17     ` Dave Hansen
  2009-06-05  1:32       ` Oren Laadan
  2009-06-05  4:25       ` Nathan Lynch
  0 siblings, 2 replies; 6+ messages in thread
From: Dave Hansen @ 2009-06-04 20:17 UTC (permalink / raw)
  To: Nathan Lynch; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

On Thu, 2009-06-04 at 15:01 -0500, Nathan Lynch wrote:
> Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> writes:
> > diff -puN checkpoint/Kconfig~cr-kconfig-fixup checkpoint/Kconfig
> > --- linux-2.6.git/checkpoint/Kconfig~cr-kconfig-fixup	2009-06-04 11:38:57.000000000 -0700
> > +++ linux-2.6.git-dave/checkpoint/Kconfig	2009-06-04 11:38:57.000000000 -0700
> > @@ -7,9 +7,14 @@ config DEFERQUEUE
> >  	default n
> >  
> >  config CHECKPOINT
> > -	bool "Enable checkpoint/restart (EXPERIMENTAL)"
> > +	bool "Checkpoint/restart (EXPERIMENTAL)"
> >  	depends on CHECKPOINT_SUPPORT && EXPERIMENTAL
> >  	select DEFERQUEUE
> > +	select UTS_NS
> > +	select IPC_NS
> > +	select NET_NS
> > +	select PID_NS
> > +	select USER_NS
> 
> *_NS all depend on NAMESPACES at the very least; some have additional
> dependencies.  Selecting a symbol without ensuring its dependencies are
> enabled is one way to break a build.

Ahh, but there *isn't* a strict build dependency on them.  We just want
to make sure that if they're available that we enable them.  If we have
CONFIG_NET=n, then we certainly don't want to make CHECKPOINT depends on
it.  

> Also - checkpoint is useful without *_NS, no?  Forcing these things on
> seems a little user-hostile..

I think the hostile thing is trying to completely unshare all the
namespaces without checking to see which ones are enabled, first. ;)

-- Dave

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Enhance checkpoint/restart Kconfig options
       [not found] <20090604184504.F1BCB2F8@kernel>
  2009-06-04 20:01 ` [PATCH] Enhance checkpoint/restart Kconfig options Nathan Lynch
@ 2009-06-04 20:41 ` Serge E. Hallyn
  1 sibling, 0 replies; 6+ messages in thread
From: Serge E. Hallyn @ 2009-06-04 20:41 UTC (permalink / raw)
  To: Dave Hansen; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Quoting Dave Hansen (dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org):
> 
> I spent way too much time yesterday trying to figure out why
> my c/r tests weren't running.  It turned out that I didn't
> have any of the namespaces enabled, the sys_unshare() was
> failing, and the debugging didn't explain any of this.
> 
> So, to protect the world from repeating my mistakes, let's
> improve the Kconfig options a bit.
> 
> 1. Don't say "Enable" in the c/r menu, that's just silly
> 2. move the c/r menu next to the namespaces
> 3. make CHECKPOINT select all of the namespaces
> 4. put a Kconfig 'comment' in explaining how everything
>    got selected.
> 5. Put the namespaces in their own menu
> 
> Perhaps I should break this up a bit and we can push some
> of this to the beginning of the series.  Thoughts?

Yes the selects are needed imo.

-serge

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Enhance checkpoint/restart Kconfig options
  2009-06-04 20:17     ` Dave Hansen
@ 2009-06-05  1:32       ` Oren Laadan
  2009-06-05  4:25       ` Nathan Lynch
  1 sibling, 0 replies; 6+ messages in thread
From: Oren Laadan @ 2009-06-05  1:32 UTC (permalink / raw)
  To: Dave Hansen
  Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	Nathan Lynch



Dave Hansen wrote:
> On Thu, 2009-06-04 at 15:01 -0500, Nathan Lynch wrote:
>> Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> writes:
>>> diff -puN checkpoint/Kconfig~cr-kconfig-fixup checkpoint/Kconfig
>>> --- linux-2.6.git/checkpoint/Kconfig~cr-kconfig-fixup	2009-06-04 11:38:57.000000000 -0700
>>> +++ linux-2.6.git-dave/checkpoint/Kconfig	2009-06-04 11:38:57.000000000 -0700
>>> @@ -7,9 +7,14 @@ config DEFERQUEUE
>>>  	default n
>>>  
>>>  config CHECKPOINT
>>> -	bool "Enable checkpoint/restart (EXPERIMENTAL)"
>>> +	bool "Checkpoint/restart (EXPERIMENTAL)"
>>>  	depends on CHECKPOINT_SUPPORT && EXPERIMENTAL
>>>  	select DEFERQUEUE
>>> +	select UTS_NS
>>> +	select IPC_NS
>>> +	select NET_NS
>>> +	select PID_NS
>>> +	select USER_NS
>> *_NS all depend on NAMESPACES at the very least; some have additional
>> dependencies.  Selecting a symbol without ensuring its dependencies are
>> enabled is one way to break a build.
> 
> Ahh, but there *isn't* a strict build dependency on them.  We just want
> to make sure that if they're available that we enable them.  If we have
> CONFIG_NET=n, then we certainly don't want to make CHECKPOINT depends on
> it.  
> 
>> Also - checkpoint is useful without *_NS, no?  Forcing these things on
>> seems a little user-hostile..

I concur.

> 
> I think the hostile thing is trying to completely unshare all the
> namespaces without checking to see which ones are enabled, first. ;)

I concur again :o

Will fix that.

Oren.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Enhance checkpoint/restart Kconfig options
  2009-06-04 20:17     ` Dave Hansen
  2009-06-05  1:32       ` Oren Laadan
@ 2009-06-05  4:25       ` Nathan Lynch
       [not found]         ` <m2zlcnfgst.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
  1 sibling, 1 reply; 6+ messages in thread
From: Nathan Lynch @ 2009-06-05  4:25 UTC (permalink / raw)
  To: Dave Hansen; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> writes:
> On Thu, 2009-06-04 at 15:01 -0500, Nathan Lynch wrote:
>> Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> writes:
>> > diff -puN checkpoint/Kconfig~cr-kconfig-fixup checkpoint/Kconfig
>> > --- linux-2.6.git/checkpoint/Kconfig~cr-kconfig-fixup	2009-06-04 11:38:57.000000000 -0700
>> > +++ linux-2.6.git-dave/checkpoint/Kconfig	2009-06-04 11:38:57.000000000 -0700
>> > @@ -7,9 +7,14 @@ config DEFERQUEUE
>> >  	default n
>> >  
>> >  config CHECKPOINT
>> > -	bool "Enable checkpoint/restart (EXPERIMENTAL)"
>> > +	bool "Checkpoint/restart (EXPERIMENTAL)"
>> >  	depends on CHECKPOINT_SUPPORT && EXPERIMENTAL
>> >  	select DEFERQUEUE
>> > +	select UTS_NS
>> > +	select IPC_NS
>> > +	select NET_NS
>> > +	select PID_NS
>> > +	select USER_NS
>> 
>> *_NS all depend on NAMESPACES at the very least; some have additional
>> dependencies.  Selecting a symbol without ensuring its dependencies are
>> enabled is one way to break a build.
>
> Ahh, but there *isn't* a strict build dependency on them.  We just want
> to make sure that if they're available that we enable them.  If we have
> CONFIG_NET=n, then we certainly don't want to make CHECKPOINT depends on
> it.

Sorry, I'm afraid I don't understand what you're saying here.

Here's a concrete example of what I'm talking about.

$ git checkout oren/ckpt-v16
$ make ARCH=i386 i386_defconfig
[ edit .config, enable CONFIG_CHECKPOINT and disable CONFIG_NET ]
$ make ARCH=i386 -s vmlinux   # which should succeed
[ apply your patch ]
$ make ARCH=i386 -s vmlinux
kernel/built-in.o: In function `free_nsproxy':
(.text+0x1daaf): undefined reference to `__put_net'
make: *** [.tmp_vmlinux1] Error 1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] Enhance checkpoint/restart Kconfig options
       [not found]         ` <m2zlcnfgst.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
@ 2009-06-05 19:01           ` Dave Hansen
  0 siblings, 0 replies; 6+ messages in thread
From: Dave Hansen @ 2009-06-05 19:01 UTC (permalink / raw)
  To: Nathan Lynch; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

On Thu, 2009-06-04 at 23:25 -0500, Nathan Lynch wrote:
> > Ahh, but there *isn't* a strict build dependency on them.  We just
> want
> > to make sure that if they're available that we enable them.  If we
> have
> > CONFIG_NET=n, then we certainly don't want to make CHECKPOINT
> depends on
> > it.
> 
> Sorry, I'm afraid I don't understand what you're saying here.
> 
> Here's a concrete example of what I'm talking about.
> 
> $ git checkout oren/ckpt-v16
> $ make ARCH=i386 i386_defconfig
> [ edit .config, enable CONFIG_CHECKPOINT and disable CONFIG_NET ]
> $ make ARCH=i386 -s vmlinux   # which should succeed
> [ apply your patch ]
> $ make ARCH=i386 -s vmlinux
> kernel/built-in.o: In function `free_nsproxy':
> (.text+0x1daaf): undefined reference to `__put_net'
> make: *** [.tmp_vmlinux1] Error 1

Kconfig is almost as retarded as me. :)  Thanks for the cluebat.

-- Dave

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-06-05 19:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20090604184504.F1BCB2F8@kernel>
2009-06-04 20:01 ` [PATCH] Enhance checkpoint/restart Kconfig options Nathan Lynch
     [not found]   ` <m3iqjbix8u.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2009-06-04 20:17     ` Dave Hansen
2009-06-05  1:32       ` Oren Laadan
2009-06-05  4:25       ` Nathan Lynch
     [not found]         ` <m2zlcnfgst.fsf-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2009-06-05 19:01           ` Dave Hansen
2009-06-04 20:41 ` Serge E. Hallyn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.