Re: [PATCH 2/6] Container Freezer: Make refrigerator always available

From: Rafael J. Wysocki
Date: Fri Aug 01 2008 - 18:51:11 EST


On Friday, 1 of August 2008, Matt Helsley wrote:
>
> On Fri, 2008-08-01 at 16:27 +-0200, Thomas Petazzoni wrote:
> > Hi,
> >
> > Le Thu, 31 Jul 2008 22:07:01 -0700,
> > Matt Helsley <matthltc@xxxxxxxxxx> a +AOk-crit :
> >
> > > --- a/kernel/Makefile
> > > +-+-+- b/kernel/Makefile
> > > @@ -5,7 +-5,7 @@
> > > obj-y = sched.o fork.o exec_domain.o panic.o printk.o +AFw
> > > cpu.o exit.o itimer.o time.o softirq.o resource.o +AFw
> > > sysctl.o capability.o ptrace.o timer.o user.o +AFw
> > > - signal.o sys.o kmod.o workqueue.o pid.o +AFw
> > > +- signal.o sys.o kmod.o workqueue.o pid.o freezer.o +AFw
> >
> > I have the impression that the code in kernel/power/process.c was
> > compiled only if CONFIG_PM_SLEEP was set. Now that the code has been
> > moved to kernel/freezer.c, it is unconditionnaly compiled in every
> > kernel. Is that correct ?
> >
> > If so, is it possible to put this new feature under some
> > CONFIG_SOMETHING option, for people who care about the kernel size ?
>
> How about making it depend on a combination of CONFIG variables?
> Here's an RFC PATCH. Completely untested.
>
> Signed-off-by: Matt Helsley <matthltc@xxxxxxxxxx>

Can you please also make the contents of include/linux/freezer.h depend on
CONFIG_FREEZER instead of CONFIG_PM_SLEEP?

Also, I'm not really sure if kernel/power/Kconfig is the right place to define
CONFIG_FREEZER.

Perhaps we should even move freezer.c from kernel/power to kernel
and define CONFIG_FREEZER in Kconfig in there. Andrew, what do you think?

> ---
> kernel/Makefile | 3 +-+--
> kernel/power/Kconfig | 3 +-+-+-
> 2 files changed, 5 insertions(+-), 1 deletion(-)
>
> Index: linux-2.6.27-rc1-mm1/kernel/Makefile
> ===================================================================
> --- linux-2.6.27-rc1-mm1.orig/kernel/Makefile
> +-+-+- linux-2.6.27-rc1-mm1/kernel/Makefile
> @@ -5,7 +-5,7 @@
> obj-y = sched.o fork.o exec_domain.o panic.o printk.o +AFw
> cpu.o exit.o itimer.o time.o softirq.o resource.o +AFw
> sysctl.o capability.o ptrace.o timer.o user.o +AFw
> - signal.o sys.o kmod.o workqueue.o pid.o freezer.o +AFw
> +- signal.o sys.o kmod.o workqueue.o pid.o +AFw
> rcupdate.o extable.o params.o posix-timers.o +AFw
> kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o +AFw
> hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o +AFw
> @@ -24,6 +-24,7 @@ CFLAGS_REMOVE_sched_clock.o = -pg
> CFLAGS_REMOVE_sched.o = -mno-spe -pg
> endif
>
> +-obj-$(CONFIG_FREEZER) +-= freezer.o
> obj-$(CONFIG_PROFILING) +-= profile.o
> obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) +-= sysctl_check.o
> obj-$(CONFIG_STACKTRACE) +-= stacktrace.o
> Index: linux-2.6.27-rc1-mm1/kernel/power/Kconfig
> ===================================================================
> --- linux-2.6.27-rc1-mm1.orig/kernel/power/Kconfig
> +-+-+- linux-2.6.27-rc1-mm1/kernel/power/Kconfig
> @@ -85,6 +-85,9 @@ config PM_SLEEP
> depends on SUSPEND || HIBERNATION || XEN_SAVE_RESTORE
> default y
>
> +-config FREEZER
> +- def_bool PM_SLEEP || CGROUP_FREEZER
> +-
> config SUSPEND
> bool "Suspend to RAM and standby"
> depends on PM && ARCH_SUSPEND_POSSIBLE
>
>
>
>
>


` #: #' # #Xͼn}F08@E@1
Z #A #/ # #%r-oK7=D4!W #D #2 # #vp}!q6s9~\:?%zS #D #3 # #vxms7vFvGg;{{rP #D #3 # #ormuaDxZPks}tlM #D #3 # #.vxiowrUfTtplhd`ZVRM? #D #3 # #mojpzammLzw #J #H #> #. # #Sνuxhjr k~imOzt #? #3 #$ # #׺jnfk u
 +xzzjWl #& # #
#txhhnx !/8xh #' # # #*ѵì˷g]|ihq{$4@P?-` #0 # # # #q\S؝uv1ijr}Q$2F@1
Z #< #* # # #Q;0dq\SӼim0kmt}4Q!4G4!W #C #1 # # V@5ȣtu+$&V2mpx|;5Z8P%zS #D #3 # #w_YԿlo"J3pqw};==eT{{rP #D #3 # #
T?5rr,%'V"E5qrwz~Q=LVlxsokfb[ZVR@ #D #3 # #


s[Uҿ;kmOB3tuwz~fLYazrt}p' #K #I #G #> #. # #
R=4˼ʻpo!kW1;Sa
4 cuuu|r[bipv}ol #I #C #; #0 #" # #


pZRκȹhij]K-9S[6 ^sw|-~blrx{qQ #- # # # #

 M:1~ʻŶĴnmvi[
I?%/CV7
Zw}6Mmrw~q #* # # # #


jLDɶÿĿ¾efmc

T C:<"1U9W}:[vxh #! # # # P71gb]ó̼̽ljvi\

J<56=!O<V@bP?-` #0 # # #
fHA®ȸȸȹ~cemd

T C8336="N@YHl@1
Z #< #) # # 8-':pQJô{WSwi\

J<421125 ;#H^Cl4!W #B #0 # #
_D=yw{XUmd

U C82/+&!

%*Rca%zS #D #3 # #
lNFyUQ!{i]
J;/(#

 ".Xb{{rP #D #3 # #

W>7~vuwXU{XUmcR
<+   # # # #1]ap}tlM #D #3 # #

hJCݤwTO#xeU>
'  # # # # # # #<jtplhd`ZVRMH #D #3 # #

I4/W~]Xll]T>% # # # # # # # # # # # #) #7 #@ #D #D #D #D #D #D #D #D #= #. # #
lUO7-.PE;% # # # # # # # # # # # # # #$ #. #2 #3 #3 #3 #3 #3 #3 #3 #. #" # ##"#$ +!&! # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #! # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #{.n++%lzwmb맲rzXw{ayʇڙ,jfhzw j:+vwjmzZ+ݢj"!iOzv^m nƊY&