11 Jan, 2006

32 commits

  • Pointed out by Srivatsa Vaddagiri .

    rcu_do_batch() stops after processing maxbatch callbacks
    on ->donelist leaving rcu_tasklet in TASKLET_STATE_SCHED
    state.

    If CPU_DEAD event happens remaining ->donelist entries are
    lost, rcu_offline_cpu() kills this tasklet.

    With this patch ->donelist migrates along with ->curlist
    and ->nxtlist to the current cpu.

    Compile tested.

    Signed-off-by: Oleg Nesterov
    Acked-by: Paul E. McKenney
    Cc: Srivatsa Vaddagiri
    Cc: Dipankar Sarma
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • This patch moves rcu_state into the rcu_ctrlblk. I think there
    are no reasons why we should have 2 different variables to control
    rcu state. Every user of rcu_state has also "rcu_ctrlblk *rcp" in
    the parameter list.

    Signed-off-by: Oleg Nesterov
    Acked-by: Paul E. McKenney
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • If a __deprecated is desired it should go to the prototype in the header
    (where it currently isn't).

    But at this place it's pointless.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Decrease the number of pointer derefs in kernel/exit.c

    Benefits of the patch:
    - Fewer pointer dereferences should make the code slightly faster.
    - Size of generated code is smaller
    - improved readability

    Signed-off-by: Jesper Juhl
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     
  • Signed-of-by: Anil S Keshavamurthy

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keshavamurthy Anil S
     
  • The following patch (against 2.6.15-rc5-mm3) fixes a kprobes build break
    due to changes introduced in the kprobe locking in 2.6.15-rc5-mm3. In
    addition, the patch reverts back the open-coding of kprobe_mutex.

    Signed-off-by: Ananth N Mavinakayanahalli
    Acked-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ananth N Mavinakayanahalli
     
  • Currently arch_remove_kprobes() is only implemented/required for x86_64 and
    powerpc. All other architecture like IA64, i386 and sparc64 implementes a
    dummy function which is being called from arch independent kprobes.c file.

    This patch removes the dummy functions and replaces it with
    #define arch_remove_kprobe(p, s) do { } while(0)

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Based on some feedback from Oleg Nesterov, I have made few changes to
    previously posted patch.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keshavamurthy Anil S
     
  • Since Kprobes runtime exception handlers is now lock free as this code path is
    now using RCU to walk through the list, there is no need for the
    register/unregister{_kprobe} to use spin_{lock/unlock}_isr{save/restore}. The
    serialization during registration/unregistration is now possible using just a
    mutex.

    In the above process, this patch also fixes a minor memory leak for x86_64 and
    powerpc.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Kernel/kprobes.c defines get_insn_slot() and free_insn_slot() which are
    currently required _only_ for x86_64 and powerpc (which has no-exec support).

    FYI, get{free}_insn_slot() functions manages the memory page which is mapped
    as executable, required for instruction emulation.

    This patch moves those two functions under __ARCH_WANT_KPROBES_INSN_SLOT and
    defines __ARCH_WANT_KPROBES_INSN_SLOT in arch specific kprobes.h file.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Remove getnstimestamp() in favor of ktime.h's ktime_get_ts()

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     
  • This series removes the getnstimestamp() function from kernel/time.c in favor
    of kernel/hrtimer.c's ktime_get_ts() function which currently does exactly the
    same thing: retrieves a high-resolution (ns) timespec structure and performs
    the wall_to_monotonic adjustment.

    This patch:

    Export ktime_get_ts() to be used as a timestamp function since it uses
    getnstimefoday() and does the wall_to_monotonic adjustment.

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     
  • - convert posix-timers.c to use hrtimers

    - remove the now obsolete abslist code

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Switch clock_nanosleep to use the new nanosleep functions in hrtimer.c

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • convert sys_nanosleep() to use hrtimer_nanosleep()

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • introduce the hrtimer_nanosleep() and hrtimer_nanosleep_real() APIs. Not yet
    used by any code.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • switch itimers to a hrtimers-based implementation

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • hrtimer subsystem core. It is initialized at bootup and expired by the timer
    interrupt, but is otherwise not utilized by any other subsystem yet.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • - introduce the nsec_t type

    - basic nsec conversion routines: timespec_to_ns(), timeval_to_ns(),
    ns_to_timespec(), ns_to_timeval().

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Check if the timespec which is provided from user space is normalized.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • add timespec_valid(ts) [returns false if the timespec is denorm]

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • add const arguments to the posix-timers.h API functions

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • This is now uninlined, but some modules use it.

    Make it a non-GPL export, since the inlined mktime() was also available that
    way.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • add 'const' to mktime arguments, and clean it up a bit

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • mktime() and set_normalized_timespec() are large inline functions used in many
    places: deinline them.

    From: George Anzinger, off-by-1 bugfix

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • make posix-timers.c use the generic calc64.h facility

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • The comment in compat.c is wrong, every architecture provides a
    get_compat_sigevent() for the IPC compat code already.

    This basically moves the x86_64 version to common code and removes all the
    others.

    Signed-off-by: Christoph Hellwig
    Acked-by: Paul Mackerras
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: "David S. Miller"
    Acked-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • - Moving the crash_dump.c file to arch dependent part as kmap_atomic_pfn is
    specific to i386 and highmem may not exist in other archs.

    - Use ioremap for x86_64 to map the previous kernel memory.

    - In copy_oldmem_page(), we now directly copy to the user/kernel buffer and
    avoid the unneccesary copy to a kmalloc'd page.

    Signed-off-by: Rachita Kothiyal
    Signed-off-by: Vivek Goyal
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • - If system panics then cpu register states are captured through funciton
    crash_get_current_regs(). This is not a inline function hence a stack frame
    is pushed on to the stack and then cpu register state is captured. Later
    this frame is popped and new frames are pushed (machine_kexec).

    - In theory this is not very right as we are capturing register states for a
    frame and that frame is no more valid. This seems to have created back
    trace problems for ppc64.

    - This patch fixes it up. The very first thing it does after entering
    crash_kexec() is to capture the register states. Anyway we don't want the
    back trace beyond crash_kexec(). crash_get_current_regs() has been made
    inline

    - crash_setup_regs() is the top architecture dependent function which should
    be responsible for capturing the register states as well as to do some
    architecture dependent tricks. For ex. fixing up ss and esp for i386.
    crash_setup_regs() has also been made inline to ensure no new call frame is
    pushed onto stack.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • - Kexec on panic functionality allocates memory for saving cpu registers in
    case of system crash event. Address of this allocated memory needs to be
    exported to user space, which is used by kexec-tools.

    - Previously, a single /sys/kernel/crash_notes entry was being exported as
    memory allocated was a single continuous array. Now memory allocation being
    dyanmic and per cpu based, address of per cpu buffer is exported through
    "/sys/devices/system/cpu/cpuX/crash_notes"

    Signed-off-by: Vivek Goyal
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • - In case of system crash, current state of cpu registers is saved in memory
    in elf note format. So far memory for storing elf notes was being allocated
    statically for NR_CPUS.

    - This patch introduces dynamic allocation of memory for storing elf notes.
    It uses alloc_percpu() interface. This should lead to better memory usage.

    - Introduced based on Andi Kleen's and Eric W. Biederman's suggestions.

    - This patch also moves memory allocation for elf notes from architecture
    dependent portion to architecture independent portion. Now crash_notes is
    architecture independent. The whole idea is that size of memory to be
    allocated per cpu (MAX_NOTE_BYTES) can be architecture dependent and
    allocation of this memory can be architecture independent.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • )

    From: Brian Gerst

    Call sched_setscheduler() directly instead.

    Signed-off-by: Brian Gerst
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    akpm@osdl.org
     

10 Jan, 2006

8 commits