1. 20 10月, 2008 1 次提交
    • M
      container freezer: implement freezer cgroup subsystem · dc52ddc0
      Matt Helsley 提交于
      This patch implements a new freezer subsystem in the control groups
      framework.  It provides a way to stop and resume execution of all tasks in
      a cgroup by writing in the cgroup filesystem.
      
      The freezer subsystem in the container filesystem defines a file named
      freezer.state.  Writing "FROZEN" to the state file will freeze all tasks
      in the cgroup.  Subsequently writing "RUNNING" will unfreeze the tasks in
      the cgroup.  Reading will return the current state.
      
      * Examples of usage :
      
         # mkdir /containers/freezer
         # mount -t cgroup -ofreezer freezer  /containers
         # mkdir /containers/0
         # echo $some_pid > /containers/0/tasks
      
      to get status of the freezer subsystem :
      
         # cat /containers/0/freezer.state
         RUNNING
      
      to freeze all tasks in the container :
      
         # echo FROZEN > /containers/0/freezer.state
         # cat /containers/0/freezer.state
         FREEZING
         # cat /containers/0/freezer.state
         FROZEN
      
      to unfreeze all tasks in the container :
      
         # echo RUNNING > /containers/0/freezer.state
         # cat /containers/0/freezer.state
         RUNNING
      
      This is the basic mechanism which should do the right thing for user space
      task in a simple scenario.
      
      It's important to note that freezing can be incomplete.  In that case we
      return EBUSY.  This means that some tasks in the cgroup are busy doing
      something that prevents us from completely freezing the cgroup at this
      time.  After EBUSY, the cgroup will remain partially frozen -- reflected
      by freezer.state reporting "FREEZING" when read.  The state will remain
      "FREEZING" until one of these things happens:
      
      	1) Userspace cancels the freezing operation by writing "RUNNING" to
      		the freezer.state file
      	2) Userspace retries the freezing operation by writing "FROZEN" to
      		the freezer.state file (writing "FREEZING" is not legal
      		and returns EIO)
      	3) The tasks that blocked the cgroup from entering the "FROZEN"
      		state disappear from the cgroup's set of tasks.
      
      [akpm@linux-foundation.org: coding-style fixes]
      [akpm@linux-foundation.org: export thaw_process]
      Signed-off-by: NCedric Le Goater <clg@fr.ibm.com>
      Signed-off-by: NMatt Helsley <matthltc@us.ibm.com>
      Acked-by: NSerge E. Hallyn <serue@us.ibm.com>
      Tested-by: NMatt Helsley <matthltc@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dc52ddc0
  2. 22 5月, 2008 1 次提交
  3. 09 2月, 2008 1 次提交
    • J
      uml: runtime host VMSPLIT detection · 536788fe
      Jeff Dike 提交于
      Calculate TASK_SIZE at run-time by figuring out the host's VMSPLIT - this is
      needed on i386 if UML is to run on hosts with varying VMSPLITs without
      recompilation.
      
      TASK_SIZE is now defined in terms of a variable, task_size.  This gets rid of
      an include of pgtable.h from processor.h, which can cause include loops.
      
      On i386, task_size is calculated early in boot by probing the address space in
      a binary search to figure out where the boundary between usable and non-usable
      memory is.  This tries to make sure that a page that is considered to be in
      userspace is, or can be made, read-write.  I'm concerned about a system-global
      VDSO page in kernel memory being hit and considered to be a userspace page.
      
      On x86_64, task_size is just the old value of CONFIG_TOP_ADDR.
      
      A bunch of config variable are gone now.  CONFIG_TOP_ADDR is directly replaced
      by TASK_SIZE.  NEST_LEVEL is gone since the relocation of the stubs makes it
      irrelevant.  All the HOST_VMSPLIT stuff is gone.  All references to these in
      arch/um/Makefile are also gone.
      
      I noticed and fixed a missing extern in os.h when adding os_get_task_size.
      
      Note: This has been revised to fix the 32-bit UML on 64-bit host bug that
      Miklos ran into.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      536788fe
  4. 06 2月, 2008 4 次提交
  5. 03 2月, 2008 1 次提交
  6. 20 10月, 2007 2 次提交
  7. 17 10月, 2007 5 次提交
    • J
      uml: tickless support · d2753a6d
      Jeff Dike 提交于
      Enable tickless support.
      
      CONFIG_TICK_ONESHOT and CONFIG_NO_HZ are enabled.
      
      itimer_clockevent gets CLOCK_EVT_FEAT_ONESHOT and an implementation of
      .set_next_event.
      
      CONFIG_UML_REAL_TIME_CLOCK goes away because it only makes sense when there is
      a clock ticking away all the time.  timer_handler now just calls do_IRQ once
      without trying to figure out how many ticks to emulate.
      
      The idle loop now needs to turn ticking on and off.
      
      Userspace ticks keep happening as usual.  However, the userspace loop keep
      track of when the next wakeup should happen and suppresses process ticks until
      that happens.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d2753a6d
    • J
      uml: GENERIC_CLOCKEVENTS support · 31ccc1f5
      Jeff Dike 提交于
      Enable CONFIG_GENERIC_CLOCKEVENTS.
      
      timer_irq gets its name changed to timer_handler, and becomes the recipient of
      timer signals.
      
      The clock_event_device is set up to imitate the current ticking clock, i.e.
      CLOCK_EVT_FEAT_ONESHOT is not enabled yet.
      
      disable_timer now doesn't ignore SIGALRM and SIGVTALRM because that breaks
      delay calibration.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      31ccc1f5
    • J
      uml: GENERIC_TIME support · d83d2aa9
      Jeff Dike 提交于
      Enable CONFIG_GENERIC_TIME.
      
      As a side-effect of this, the UML implementations of do_gettimeofday and
      do_settimeofday go away, as these are provided by generic code.  set_time also
      goes away since it was only used by do_settimeofday.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d83d2aa9
    • J
      uml: style fixes pass 1 · 4c9e1385
      Jeff Dike 提交于
      Formatting changes in the files which have been changed in the
      tt-removal patchset so far.  These include:
      	copyright updates
      	header file trimming
      	style fixes
      	adding severity to printks
      	indenting Kconfig help according to the predominant kernel style
      
      These changes should be entirely non-functional.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c9e1385
    • J
      uml: throw out CONFIG_MODE_TT · 42fda663
      Jeff Dike 提交于
      This patchset throws out tt mode, which has been non-functional for a while.
      
      This is done in phases, interspersed with code cleanups on the affected files.
      
      The removal is done as follows:
      	remove all code, config options, and files which depend on
      CONFIG_MODE_TT
      	get rid of the CHOOSE_MODE macro, which decided whether to
      call tt-mode or skas-mode code, and replace invocations with their
      skas portions
      	replace all now-trivial procedures with their skas equivalents
      
      There are now a bunch of now-redundant pieces of data structures, including
      mode-specific pieces of the thread structure, pt_regs, and mm_context.  These
      are all replaced with their skas-specific contents.
      
      As part of the ongoing style compliance project, I made a style pass over all
      files that were changed.  There are three such patches, one for each phase,
      covering the files affected by that phase but no later ones.
      
      I noticed that we weren't freeing the LDT state associated with a process when
      it exited, so that's fixed in one of the later patches.
      
      The last patch is a tidying patch which I've had for a while, but which caused
      inexplicable crashes under tt mode.  Since that is no longer a problem, this
      can now go in.
      
      This patch:
      
      Start getting rid of tt mode support.
      
      This patch throws out CONFIG_MODE_TT and all config options, code, and files
      which depend on it.
      
      CONFIG_MODE_SKAS is gone and everything that depends on it is included
      unconditionally.
      
      The few changed lines are in re-written Kconfig help, lines which needed
      something skas-related removed from them, and a few more which weren't
      strictly deletions.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      42fda663
  8. 09 6月, 2007 1 次提交
  9. 11 5月, 2007 1 次提交
  10. 10 5月, 2007 1 次提交
  11. 15 3月, 2007 1 次提交
  12. 12 2月, 2007 1 次提交
    • A
      [PATCH] sort the devres mess out · 5ea81769
      Al Viro 提交于
      * Split the implementation-agnostic stuff in separate files.
      * Make sure that targets using non-default request_irq() pull
        kernel/irq/devres.o
      * Introduce new symbols (HAS_IOPORT and HAS_IOMEM) defaulting to positive;
        allow architectures to turn them off (we needed these symbols anyway for
        dependencies of quite a few drivers).
      * protect the ioport-related parts of lib/devres.o with CONFIG_HAS_IOPORT.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5ea81769
  13. 09 12月, 2006 1 次提交
  14. 21 10月, 2006 2 次提交
    • P
      [PATCH] uml: use DEFCONFIG_LIST to avoid reading host's config · b2670eac
      Paolo 'Blaisorblade' Giarrusso 提交于
      This should make sure that, for UML, host's configuration files are not
      considered, which avoids various pains to the user.  Our dependency are such
      that the obtained Kconfig will be valid and will lead to successful
      compilation - however they cannot prevent an user from disabling any boot
      device, and if an option is not set in the read .config (say
      /boot/config-XXX), with make menuconfig ARCH=um, it is not set.  This always
      disables UBD and all console I/O channels, which leads to non-working UML
      kernels, so this bothers users - especially now, since it will happen on
      almost every machine (/boot/config-`uname -r` exists almost on every machine).
       It can be workarounded with make defconfig ARCH=um, but it is non-obvious and
      can be avoided, so please _do_ merge this patch.
      
      Given the existence of options, it could be interesting to implement
      (additionally) "option required" - with it, Kconfig will refuse reading a
      .config file (from wherever it comes) if the given option is not set.  With
      this, one could mark with it the option characteristic of the given
      architecture (it was an old proposal of Roman Zippel, when I pointed out our
      problem):
      
      config UML
      	option required
      	default y
      
      However this should be further discussed:
      *) for x86, it must support constructs like:
      
      ==arch/i386/Kconfig==
      config 64BIT
      	option required
      	default n
      where Kconfig must require that CONFIG_64BIT is disabled or not present in the
      read .config.
      
      *) do we want to do such checks only for the starting defconfig or also for
         .config? Which leads to:
      *) I may want to port a x86_64 .config to x86 and viceversa, or even among more
         different archs. Should that be allowed, and in which measure (the user may
         force skipping the check for a .config or it is only given a warning by
         default)?
      
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: <kbuild-devel@lists.sourceforge.net>
      Signed-off-by: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Jeff Dike <jdike@addtoit.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b2670eac
    • J
      [PATCH] uml: MODE_TT is bust · 1a3e9ad1
      Jeff Dike 提交于
      arch/um/sys-x86_64/ptrace.c:20:1: warning: "SC_SS" redefined
      In file included from arch/um/include/sysdep/ptrace.h:18,
                       from include/asm/ptrace-generic.h:12,
                       from include/asm/ptrace.h:15,
                       from arch/um/sys-x86_64/ptrace.c:8:
      arch/um/include/sysdep/sc.h:38:1: warning: this is the location of the previous definition
      arch/um/sys-x86_64/ptrace.c: In function 'putreg':
      arch/um/sys-x86_64/ptrace.c:63: warning: implicit declaration of function 'SC_FS_BASE'
      arch/um/sys-x86_64/ptrace.c:63: error: invalid lvalue in unary '&'
      arch/um/sys-x86_64/ptrace.c:63: warning: implicit declaration of function 'SC_GS_BASE'
      arch/um/sys-x86_64/ptrace.c:63: error: invalid lvalue in unary '&'
      arch/um/sys-x86_64/ptrace.c: In function 'getreg':
      arch/um/sys-x86_64/ptrace.c:101: error: invalid lvalue in unary '&'
      arch/um/sys-x86_64/ptrace.c:101: error: invalid lvalue in unary '&'
      
      I'd have to say that the fix for this, for now, is this:
      
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1a3e9ad1
  15. 12 10月, 2006 2 次提交
  16. 04 10月, 2006 1 次提交
  17. 02 5月, 2006 1 次提交
  18. 01 4月, 2006 1 次提交
  19. 19 1月, 2006 1 次提交
    • P
      [PATCH] uml: arch Kconfig menu cleanups · ce2d2aed
      Paolo 'Blaisorblade' Giarrusso 提交于
      *) mark as "EXPERIMENTAL" various items that either aren't very stable or
         that are actively crashing the setup of users which don't really need them
         (i.e.  HIGHMEM and 3-level pagetables on x86 - nobody needs either,
         everybody reports "I'm using it and getting trouble").
      
      *) move net/Kconfig near to the rest of network configurations, and
         drivers/block/Kconfig near "Block layer" submenu.
      
      *) it's useless and doesn't work well to force NETDEVICES on and to disable
         the prompt like it's done.  Better remove the attempt, and change that to a
         simple "default y if UML".
      
      *) drop the warning about "report problems about HPPFS" - it's redundant
         anyway, as that's the usual procedure, and HPPFS users are especially
         technical (i.e.  they know reporting bugs is _good_).
      Signed-off-by: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Jeff Dike <jdike@addtoit.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ce2d2aed
  20. 12 1月, 2006 1 次提交
  21. 09 1月, 2006 2 次提交
  22. 19 12月, 2005 1 次提交
  23. 14 11月, 2005 2 次提交
  24. 07 11月, 2005 1 次提交
  25. 31 10月, 2005 2 次提交
  26. 05 9月, 2005 2 次提交