1. 28 6月, 2005 6 次提交
  2. 27 6月, 2005 6 次提交
  3. 26 6月, 2005 28 次提交
    • C
      [PATCH] Cleanup patch for process freezing · 3e1d1d28
      Christoph Lameter 提交于
      1. Establish a simple API for process freezing defined in linux/include/sched.h:
      
         frozen(process)		Check for frozen process
         freezing(process)		Check if a process is being frozen
         freeze(process)		Tell a process to freeze (go to refrigerator)
         thaw_process(process)	Restart process
         frozen_process(process)	Process is frozen now
      
      2. Remove all references to PF_FREEZE and PF_FROZEN from all
         kernel sources except sched.h
      
      3. Fix numerous locations where try_to_freeze is manually done by a driver
      
      4. Remove the argument that is no longer necessary from two function calls.
      
      5. Some whitespace cleanup
      
      6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
         cleared before setting PF_FROZEN, recalc_sigpending does not check
         PF_FROZEN).
      
      This patch does not address the problem of freeze_processes() violating the rule
      that a task may only modify its own flags by setting PF_FREEZE. This is not clean
      in an SMP environment. freeze(process) is therefore not SMP safe!
      Signed-off-by: NChristoph Lameter <christoph@lameter.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3e1d1d28
    • A
      [PATCH] drivers/block/ll_rw_blk.c: cleanups · 93d17d3d
      Adrian Bunk 提交于
      This patch contains the following cleanups:
      - make needlessly global code static
      - remove the following unused global functions:
        - blkdev_scsi_issue_flush_fn
        - __blk_attempt_remerge
      - remove the following unused EXPORT_SYMBOL's:
        - blk_phys_contig_segment
        - blk_hw_contig_segment
        - blkdev_scsi_issue_flush_fn
        - __blk_attempt_remerge
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Acked-by: NJens Axboe <axboe@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      93d17d3d
    • A
      [PATCH] drivers/char/nvram.c: possible cleanups · 681ea4b9
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make the needlessly global function __nvram_set_checksum static
      - #if 0 the unused global function nvram_set_checksum
      - remove the EXPORT_SYMBOL's for both functions
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      681ea4b9
    • N
      [PATCH] Use ALIGN to remove duplicate code · 8c0e33c1
      Nick Wilson 提交于
      This patch makes use of ALIGN() to remove duplicate round-up code.
      Signed-off-by: NNick Wilson <njw@osdl.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8c0e33c1
    • M
      [PATCH] kexec code cleanup · 72414d3f
      Maneesh Soni 提交于
      o Following patch provides purely cosmetic changes and corrects CodingStyle
        guide lines related certain issues like below in kexec related files
      
        o braces for one line "if" statements, "for" loops,
        o more than 80 column wide lines,
        o No space after "while", "for" and "switch" key words
      
      o Changes:
        o take-2: Removed the extra tab before "case" key words.
        o take-3: Put operator at the end of line and space before "*/"
      Signed-off-by: NManeesh Soni <maneesh@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      72414d3f
    • A
      [PATCH] kdump: Use real pt_regs from exception · 6e274d14
      Alexander Nyberg 提交于
      Makes kexec_crashdump() take a pt_regs * as an argument.  This allows to
      get exact register state at the point of the crash.  If we come from direct
      panic assertion NULL will be passed and the current registers saved before
      crashdump.
      
      This hooks into two places:
      die(): check the conditions under which we will panic when calling
      do_exit and go there directly with the pt_regs that caused the fatal
      fault.
      
      die_nmi(): If we receive an NMI lockup while in the kernel use the
      pt_regs and go directly to crash_kexec(). We're probably nested up badly
      at this point so this might be the only chance to escape with proper
      information.
      Signed-off-by: NAlexander Nyberg <alexn@telia.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6e274d14
    • V
      [PATCH] kdump: Access dump file in elf format (/proc/vmcore) · 666bfddb
      Vivek Goyal 提交于
      From: "Vivek Goyal" <vgoyal@in.ibm.com>
      
      o Support for /proc/vmcore interface. This interface exports elf core image
        either in ELF32 or ELF64 format, depending on the format in which elf headers
        have been stored by crashed kernel.
      o Added support for CONFIG_VMCORE config option.
      o Removed the dependency on /proc/kcore.
      
      From: "Eric W. Biederman" <ebiederm@xmission.com>
      
      This patch has been refactored to more closely match the prevailing style in
      the affected files.  And to clearly indicate the dependency between
      /proc/kcore and proc/vmcore.c
      
      From: Hariprasad Nellitheertha <hari@in.ibm.com>
      
      This patch contains the code that provides an ELF format interface to the
      previous kernel's memory post kexec reboot.
      
      Signed off by Hariprasad Nellitheertha <hari@in.ibm.com>
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      666bfddb
    • V
      [PATCH] Retrieve elfcorehdr address from command line · 2030eae5
      Vivek Goyal 提交于
      This patch adds support for retrieving the address of elf core header if one
      is passed in command line.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2030eae5
    • V
      [PATCH] kdump: Routines for copying dump pages · 60e64d46
      Vivek Goyal 提交于
      This patch provides the interfaces necessary to read the dump contents,
      treating it as a high memory device.
      
      Signed off by Hariprasad Nellitheertha <hari@in.ibm.com>
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      60e64d46
    • V
      [PATCH] kdump: Retrieve saved max pfn · 92aa63a5
      Vivek Goyal 提交于
      This patch retrieves the max_pfn being used by previous kernel and stores it
      in a safe location (saved_max_pfn) before it is overwritten due to user
      defined memory map.  This pfn is used to make sure that user does not try to
      read the physical memory beyond saved_max_pfn.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      92aa63a5
    • V
      [PATCH] Kdump: Export crash notes section address through sysfs · 625f1c82
      Vivek Goyal 提交于
      o Following patch exports kexec global variable "crash_notes" to user space
        through sysfs as kernel attribute in /sys/kernel.
      Signed-off-by: NManeesh Soni <maneesh@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      625f1c82
    • H
      [PATCH] kexec: s390 support · cf13f0ea
      Heiko Carstens 提交于
      Add kexec support for s390 architecture.
      
      From: Milton Miller <miltonm@bga.com>
      
      - Fix passing of first argument to relocate_kernel assembly.
      - Fix Kconfig description.
      - Remove wrong comment and comments that describe obvious things.
      - Allow only KEXEC_TYPE_DEFAULT as image type -> dump not supported.
      Acked-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cf13f0ea
    • R
      [PATCH] ppc64: kexec support for ppc64 · fce0d574
      R Sharada 提交于
      This patch implements the kexec support for ppc64 platforms.
      
      A couple of notes:
      
      1)  We copy the pages in virtual mode, using the full base kernel
          and a statically allocated stack.   At kexec_prepare time we
          scan the pages and if any overlap our (0, _end[]) range we
          return -ETXTBSY.
      
          On PowerPC 64 systems running in LPAR (logical partitioning)
          mode, only a small region of memory, referred to as the RMO,
          can be accessed in real mode.  Since Linux runs with only one
          zone of memory in the memory allocator, and it can be orders of
          magnitude more memory than the RMO, looping until we allocate
          pages in the source region is not feasible.  Copying in virtual
          means we don't have to write a hash table generation and call
          hypervisor to insert translations, instead we rely on the pinned
          kernel linear mapping.  The kernel already has move to linked
          location built in, so there is no requirement to load it at 0.
      
          If we want to load something other than a kernel, then a stub
          can be written to copy a linear chunk in real mode.
      
      2)  The start entry point gets passed parameters from the kernel.
          Slaves are started at a fixed address after copying code from
          the entry point.
      
          All CPUs get passed their firmware assigned physical id in r3
          (most calling conventions use this register for the first
          argument).
      
          This is used to distinguish each CPU from all other CPUs.
          Since firmware is not around, there is no other way to obtain
          this information other than to pass it somewhere.
      
          A single CPU, referred to here as the master and the one executing
          the kexec call, branches to start with the address of start in r4.
          While this can be calculated, we have to load it through a gpr to
          branch to this point so defining the register this is contained
          in is free.  A stack of unspecified size is available at r1
          (also common calling convention).
      
          All remaining running CPUs are sent to start at absolute address
          0x60 after copying the first 0x100 bytes from start to address 0.
          This convention was chosen because it matches what the kernel
          has been doing itself.  (only gpr3 is defined).
      
          Note: This is not quite the convention of the kexec bootblock v2
          in the kernel.  A stub has been written to convert between them,
          and we may adjust the kernel in the future to allow this directly
          without any stub.
      
      3)  Destination pages can be placed anywhere, even where they
          would not be accessible in real mode.  This will allow us to
          place ram disks above the RMO if we choose.
      Signed-off-by: NMilton Miller <miltonm@bga.com>
      Signed-off-by: NR Sharada <sharada@in.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fce0d574
    • R
      [PATCH] ppc64 kexec: native hash clear · f4c82d51
      R Sharada 提交于
      Add code to clear the hash table and invalidate the tlb for native (SMP,
      non-LPAR) mode.  Supports 16M and 4k pages.
      Signed-off-by: NMilton Miller <miltonm@bga.com>
      Signed-off-by: NR Sharada <sharada@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f4c82d51
    • E
      [PATCH] kexec: kexec ppc support · 70765aa4
      Eric W. Biederman 提交于
      I have tweaked this patch slightly to handle an empty list
      of pages to relocate passed to relocate_new_kernel.  And
      I have added ppc_md.machine_crash_shutdown.  To keep up with
      the changes in the generic kexec infrastructure.
      
      From: Albert Herranz <albert_herranz@yahoo.es>
      
      The following patch adds support for kexec on the ppc32 platform.
      
      Non-OpenFirmware based platforms are likely to work directly without
      additional changes on the kernel side.  The kexec-tools userland package
      may need to be slightly updated, though.
      
      For OpenFirmware based machines, additional work is still needed on the
      kernel side before kexec support is ready.  Benjamin Herrenschmidt is
      kindly working on that part.
      
      In order for a ppc platform to use the kexec kernel services it must
      implement some ppc_md hooks.  Otherwise, kexec will be explicitly disabled,
      as suggested by benh.
      
      There are 3+1 new ppc_md hooks that a platform supporting kexec may
      implement.  Two of them are mandatory for kexec to work.  See
      include/asm-ppc/machdep.h for details.
      
      - machine_kexec_prepare(image)
      
        This function is called to make any arrangements to the image before it
        is loaded.
      
        This hook _MUST_ be provided by a platform in order to activate kexec
        support for that platform.  Otherwise, the platform is considered to not
        support kexec and the kexec_load system call will fail (that makes all
        existing platforms by default non-kexec'able).
      
      - machine_kexec_cleanup(image)
      
        This function is called to make any cleanups on image after the loaded
        image data it is freed.  This hook is optional.  A platform may or may
        not provide this hook.
      
      - machine_kexec(image)
      
        This function is called to perform the _actual_ kexec.  This hook
        _MUST_ be provided by a platform in order to activate kexec support for
        that platform.
      
        If a platform provides machine_kexec_prepare but forgets to provide
        machine_kexec, a kexec will fall back to a reboot.
      
        A ready-to-use machine_kexec_simple() generic function is provided to,
        hopefully, simplify kexec adoption for embedded platforms.  A platform
        may call this function from its specific machine_kexec hook, like this:
      
      void myplatform_kexec(struct kimage *image)
      {
              machine_kexec_simple(image);
      }
      
      - machine_shutdown()
      
        This function is called to perform any machine specific shutdowns, not
        already done by drivers.  This hook is optional.  A platform may or may
        not provide this hook.
      
      An example (trimmed) platform specific module for a platform supporting
      kexec through the existing machine_kexec_simple follows:
      
      /* ... */
      
      #ifdef CONFIG_KEXEC
      int myplatform_kexec_prepare(struct kimage *image)
      {
              /* here, we can place additional preparations
      */
              return 0; /* yes, we support kexec */
      }
      
      void myplatform_kexec(struct kimage *image)
      {
              machine_kexec_simple(image);
      }
      #endif /* CONFIG_KEXEC */
      
      /* ... */
      
      void __init
      platform_init(unsigned long r3, unsigned long r4,
      unsigned long r5,
                    unsigned long r6, unsigned long r7)
      {
      
      /* ... */
      
      #ifdef CONFIG_KEXEC
              ppc_md.machine_kexec_prepare =
      myplatform_kexec_prepare;
              ppc_md.machine_kexec         =
      myplatform_kexec;
      #endif /* CONFIG_KEXEC */
      
      /* ... */
      
      }
      
      The kexec ppc kernel support has been heavily tested on the GameCube Linux
      port, and, as reported in the fastboot mailing list, it has been tested too
      on a Moto 82xx ppc by Rick Richardson.
      Signed-off-by: NAlbert Herranz <albert_herranz@yahoo.es>
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      70765aa4
    • E
      [PATCH] kexec: x86_64 kexec implementation · 5234f5eb
      Eric W. Biederman 提交于
      This is the x86_64 implementation of machine kexec.  32bit compatibility
      support has been implemented, and machine_kexec has been enhanced to not care
      about the changing internal kernel paget table structures.
      
      From: Alexander Nyberg <alexn@dsv.su.se>
      
            build fix
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5234f5eb
    • E
      [PATCH] kexec: x86 kexec core · 5033cba0
      Eric W. Biederman 提交于
      This is the i386 implementation of kexec.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5033cba0
    • E
      [PATCH] kexec: add kexec syscalls · dc009d92
      Eric W. Biederman 提交于
      This patch introduces the architecture independent implementation the
      sys_kexec_load, the compat_sys_kexec_load system calls.
      
      Kexec on panic support has been integrated into the core patch and is
      relatively clean.
      
      In addition the hopefully architecture independent option
      crashkernel=size@location has been docuemented.  It's purpose is to reserve
      space for the panic kernel to live, and where no DMA transfer will ever be
      setup to access.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAlexander Nyberg <alexn@telia.com>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      dc009d92
    • E
      [PATCH] kexec: x86_64: add CONFIG_PHYSICAL_START · d0537508
      Eric W. Biederman 提交于
      For one kernel to report a crash another kernel has created we need
      to have 2 kernels loaded simultaneously in memory.  To accomplish this
      the two kernels need to built to run at different physical addresses.
      
      This patch adds the CONFIG_PHYSICAL_START option to the x86_64 kernel
      so we can do just that.  You need to know what you are doing and
      the ramifications are before changing this value, and most users
      won't care so I have made it depend on CONFIG_EMBEDDED
      
      bzImage kernels will work and run at a different address when compiled
      with this option but they will still load at 1MB.  If you need a kernel
      loaded at a different address as well you need to boot a vmlinux.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d0537508
    • E
      [PATCH] kexec: x86: add CONFIG_PYSICAL_START · 3d345e3f
      Eric W. Biederman 提交于
      For one kernel to report a crash another kernel has created we need
      to have 2 kernels loaded simultaneously in memory.  To accomplish this
      the two kernels need to built to run at different physical addresses.
      
      This patch adds the CONFIG_PHYSICAL_START option to the x86 kernel
      so we can do just that.  You need to know what you are doing and
      the ramifications are before changing this value, and most users
      won't care so I have made it depend on CONFIG_EMBEDDED
      
      bzImage kernels will work and run at a different address when compiled
      with this option but they will still load at 1MB.  If you need a kernel
      loaded at a different address as well you need to boot a vmlinux.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3d345e3f
    • E
      [PATCH] kexec: vmlinux: fix physical addresses · 60bad7fa
      Eric W. Biederman 提交于
      In vmlinux.lds.h the code is carefull to define every section so vmlinux
      properly reports the correct physical load address of code, as well as
      it's virtual address.
      
      The new SECURITY_INIT definition fails to follow that convention and
      and causes incorrect physical address to appear in the vmlinux if
      there are any security initcalls.
      
      This patch updates the SECURITY_INIT to follow the convention in the rest of
      the file.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      60bad7fa
    • E
      [PATCH] kexec: x86_64: restore apic virtual wire mode on shutdown · 208fb931
      Eric W. Biederman 提交于
      When coming out of apic mode attempt to set the appropriate
      apic back into virtual wire mode.  This improves on previous versions
      of this patch by by never setting bot the local apic and the ioapic
      into veritual wire mode.
      
      This code looks at data from the mptable to see if an ioapic has
      an ExtInt input to make this decision.  A future improvement
      is to figure out which apic or ioapic was in virtual wire mode
      at boot time and to remember it.  That is potentially a more accurate
      method, of selecting which apic to place in virutal wire mode.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      208fb931
    • E
      [PATCH] kexec: x86: resture apic virtual wire mode on shutdown · 650927ef
      Eric W. Biederman 提交于
      When coming out of apic mode attempt to set the appropriate
      apic back into virtual wire mode.  This improves on previous versions
      of this patch by by never setting bot the local apic and the ioapic
      into veritual wire mode.
      
      This code looks at data from the mptable to see if an ioapic has
      an ExtInt input to make this decision.  A future improvement
      is to figure out which apic or ioapic was in virtual wire mode
      at boot time and to remember it.  That is potentially a more accurate
      method, of selecting which apic to place in virutal wire mode.
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      650927ef
    • E
      [PATCH] kexec: x86: local apic fix · 9635b47d
      Eric W. Biederman 提交于
      From: "Maciej W. Rozycki" <macro@linux-mips.org>
      
      Fix a kexec problem whcih causes local APIC detection failure.
      
      The problem is detect_init_APIC() is called early, before the command line
      have been processed.  Therefore "lapic" (and "nolapic") have not been seen,
      yet.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9635b47d
    • E
      [PATCH] kexec: x86: rename APIC_MODE_EXINT · 8f43d03f
      Eric W. Biederman 提交于
      From: "Maciej W. Rozycki" <macro@linux-mips.org>
      
      Rename APIC_MODE_EXINT to APIC_MODE_EXTINT - I think it should be named
      after what the mode is called in documentation.
      
      From: "Eric W. Biederman" <ebiederm@lnxi.com>
      
      I have reduced this patch to just the name change in the header.  And
      integrated the changes into the patches that add those
      lines. Otherwise I ran into some ugly dependencies.
      
      Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org
      Signed-off-by: NEric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8f43d03f
    • I
      [PATCH] sched: voluntary kernel preemption · f8cbd99b
      Ingo Molnar 提交于
      This patch adds a new preemption model: 'Voluntary Kernel Preemption'.  The
      3 models can be selected from a new menu:
      
                  (X) No Forced Preemption (Server)
                  ( ) Voluntary Kernel Preemption (Desktop)
                  ( ) Preemptible Kernel (Low-Latency Desktop)
      
      we still default to the stock (Server) preemption model.
      
      Voluntary preemption works by adding a cond_resched()
      (reschedule-if-needed) call to every might_sleep() check.  It is lighter
      than CONFIG_PREEMPT - at the cost of not having as tight latencies.  It
      represents a different latency/complexity/overhead tradeoff.
      
      It has no runtime impact at all if disabled.  Here are size stats that show
      how the various preemption models impact the kernel's size:
      
          text    data     bss     dec     hex filename
       3618774  547184  179896 4345854  424ffe vmlinux.stock
       3626406  547184  179896 4353486  426dce vmlinux.voluntary   +0.2%
       3748414  548640  179896 4476950  445016 vmlinux.preempt     +3.5%
      
      voluntary-preempt is +0.2% of .text, preempt is +3.5%.
      
      This feature has been tested for many months by lots of people (and it's
      also included in the RHEL4 distribution and earlier variants were in Fedora
      as well), and it's intended for users and distributions who dont want to
      use full-blown CONFIG_PREEMPT for one reason or another.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f8cbd99b
    • D
      [PATCH] Dynamic sched domains: sched changes · 1a20ff27
      Dinakar Guniguntala 提交于
      The following patches add dynamic sched domains functionality that was
      extensively discussed on lkml and lse-tech.  I would like to see this added to
      -mm
      
      o The main advantage with this feature is that it ensures that the scheduler
        load balacing code only balances against the cpus that are in the sched
        domain as defined by an exclusive cpuset and not all of the cpus in the
        system. This removes any overhead due to load balancing code trying to
        pull tasks outside of the cpu exclusive cpuset only to be prevented by
        the tasks' cpus_allowed mask.
      o cpu exclusive cpusets are useful for servers running orthogonal
        workloads such as RT applications requiring low latency and HPC
        applications that are throughput sensitive
      
      o It provides a new API partition_sched_domains in sched.c
        that makes dynamic sched domains possible.
      o cpu_exclusive cpusets sets are now associated with a sched domain.
        Which means that the users can dynamically modify the sched domains
        through the cpuset file system interface
      o ia64 sched domain code has been updated to support this feature as well
      o Currently, this does not support hotplug. (However some of my tests
        indicate hotplug+preempt is currently broken)
      o I have tested it extensively on x86.
      o This should have very minimal impact on performance as none of
        the fast paths are affected
      Signed-off-by: NDinakar Guniguntala <dino@in.ibm.com>
      Acked-by: NPaul Jackson <pj@sgi.com>
      Acked-by: NNick Piggin <nickpiggin@yahoo.com.au>
      Acked-by: NMatthew Dobson <colpatch@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1a20ff27
    • N
      [PATCH] sched: consolidate sbe sbf · 476d139c
      Nick Piggin 提交于
      Consolidate balance-on-exec with balance-on-fork.  This is made easy by the
      sched-domains RCU patches.
      
      As well as the general goodness of code reduction, this allows the runqueues
      to be unlocked during balance-on-fork.
      
      schedstats is a problem.  Maybe just have balance-on-event instead of
      distinguishing fork and exec?
      Signed-off-by: NNick Piggin <nickpiggin@yahoo.com.au>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      476d139c