29 Mar, 2009

2 commits


28 Mar, 2009

5 commits

  • Conflicts:
    arch/sparc/kernel/time_64.c
    drivers/gpu/drm/drm_proc.c

    Manual merge to resolve build warning due to phys_addr_t type change
    on x86:

    drivers/gpu/drm/drm_info.c

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (37 commits)
    fs: avoid I_NEW inodes
    Merge code for single and multiple-instance mounts
    Remove get_init_pts_sb()
    Move common mknod_ptmx() calls into caller
    Parse mount options just once and copy them to super block
    Unroll essentials of do_remount_sb() into devpts
    vfs: simple_set_mnt() should return void
    fs: move bdev code out of buffer.c
    constify dentry_operations: rest
    constify dentry_operations: configfs
    constify dentry_operations: sysfs
    constify dentry_operations: JFS
    constify dentry_operations: OCFS2
    constify dentry_operations: GFS2
    constify dentry_operations: FAT
    constify dentry_operations: FUSE
    constify dentry_operations: procfs
    constify dentry_operations: ecryptfs
    constify dentry_operations: CIFS
    constify dentry_operations: AFS
    ...

    Linus Torvalds
     
  • simple_set_mnt() is defined as returning 'int' but always returns 0.
    Callers assume simple_set_mnt() never fails and don't properly cleanup if
    it were to _ever_ fail. For instance, get_sb_single() and get_sb_nodev()
    should:

    up_write(sb->s_unmount);
    deactivate_super(sb);

    if simple_set_mnt() fails.

    Since simple_set_mnt() never fails, would be cleaner if it did not
    return anything.

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Sukadev Bhattiprolu
    Acked-by: Serge Hallyn
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Sukadev Bhattiprolu
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Conflicts:
    arch/parisc/kernel/irq.c
    arch/x86/include/asm/fixmap_64.h
    arch/x86/include/asm/setup.h
    kernel/irq/handle.c

    Semantic merge:
    arch/x86/include/asm/fixmap.h

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

27 Mar, 2009

5 commits

  • * 'irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (32 commits)
    x86: disable __do_IRQ support
    sparseirq, powerpc/cell: fix unused variable warning in interrupt.c
    genirq: deprecate obsolete typedefs and defines
    genirq: deprecate __do_IRQ
    genirq: add doc to struct irqaction
    genirq: use kzalloc instead of explicit zero initialization
    genirq: make irqreturn_t an enum
    genirq: remove redundant if condition
    genirq: remove unused hw_irq_controller typedef
    irq: export remove_irq() and setup_irq() symbols
    irq: match remove_irq() args with setup_irq()
    irq: add remove_irq() for freeing of setup_irq() irqs
    genirq: assert that irq handlers are indeed running in hardirq context
    irq: name 'p' variables a bit better
    irq: further clean up the free_irq() code flow
    irq: refactor and clean up the free_irq() code flow
    irq: clean up manage.c
    irq: use GFP_KERNEL for action allocation in request_irq()
    kernel/irq: fix sparse warning: make symbol static
    irq: optimize init_kstat_irqs/init_copy_kstat_irqs
    ...

    Linus Torvalds
     
  • * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (26 commits)
    posix timers: fix RLIMIT_CPU && fork()
    time: ntp: fix bug in ntp_update_offset() & do_adjtimex(), fix
    time: ntp: clean up second_overflow()
    time: ntp: simplify ntp_tick_adj calculations
    time: ntp: make 64-bit constants more robust
    time: ntp: refactor do_adjtimex() some more
    time: ntp: refactor do_adjtimex()
    time: ntp: fix bug in ntp_update_offset() & do_adjtimex()
    time: ntp: micro-optimize ntp_update_offset()
    time: ntp: simplify ntp_update_offset_fll()
    time: ntp: refactor and clean up ntp_update_offset()
    time: ntp: refactor up ntp_update_frequency()
    time: ntp: clean up ntp_update_frequency()
    time: ntp: simplify the MAX_TICKADJ_SCALED definition
    time: ntp: simplify the second_overflow() code flow
    time: ntp: clean up kernel/time/ntp.c
    x86: hpet: stop HPET_COUNTER when programming periodic mode
    x86: hpet: provide separate functions to stop and start the counter
    x86: hpet: print HPET registers during setup (if hpet=verbose is used)
    time: apply NTP frequency/tick changes immediately
    ...

    Linus Torvalds
     
  • * 'sched-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (46 commits)
    sched: Add comments to find_busiest_group() function
    sched: Refactor the power savings balance code
    sched: Optimize the !power_savings_balance during fbg()
    sched: Create a helper function to calculate imbalance
    sched: Create helper to calculate small_imbalance in fbg()
    sched: Create a helper function to calculate sched_domain stats for fbg()
    sched: Define structure to store the sched_domain statistics for fbg()
    sched: Create a helper function to calculate sched_group stats for fbg()
    sched: Define structure to store the sched_group statistics for fbg()
    sched: Fix indentations in find_busiest_group() using gotos
    sched: Simple helper functions for find_busiest_group()
    sched: remove unused fields from struct rq
    sched: jiffies not printed per CPU
    sched: small optimisation of can_migrate_task()
    sched: fix typos in documentation
    sched: add avg_overlap decay
    x86, sched_clock(): mark variables read-mostly
    sched: optimize ttwu vs group scheduling
    sched: TIF_NEED_RESCHED -> need_reshed() cleanup
    sched: don't rebalance if attached on NULL domain
    ...

    Linus Torvalds
     
  • Conflicts:
    drivers/net/wimax/i2400m/usb-notif.c

    David S. Miller
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (61 commits)
    Dynamic debug: fix pr_fmt() build error
    Dynamic debug: allow simple quoting of words
    dynamic debug: update docs
    dynamic debug: combine dprintk and dynamic printk
    sysfs: fix some bin_vm_ops errors
    kobject: don't block for each kobject_uevent
    sysfs: only allow one scheduled removal callback per kobj
    Driver core: Fix device_move() vs. dpm list ordering, v2
    Driver core: some cleanup on drivers/base/sys.c
    Driver core: implement uevent suppress in kobject
    vcs: hook sysfs devices into object lifetime instead of "binding"
    driver core: fix passing platform_data
    driver core: move platform_data into platform_device
    sysfs: don't block indefinitely for unmapped files.
    driver core: move knode_bus into private structure
    driver core: move knode_driver into private structure
    driver core: move klist_children into private structure
    driver core: create a private portion of struct device
    driver core: remove polling for driver_probe_done(v5)
    sysfs: reference sysfs_dirent from sysfs inodes
    ...

    Fixed conflicts in drivers/sh/maple/maple.c manually

    Linus Torvalds
     

26 Mar, 2009

2 commits


25 Mar, 2009

14 commits

  • Impact: cleanup

    Add /** style comments around find_busiest_group(). Also add a few
    explanatory comments.

    This concludes the find_busiest_group() cleanup. The function is
    now down to 72 lines from the original 313 lines.

    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    Cc: "Vaidyanathan Srinivasan"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Create seperate helper functions to initialize the
    power-savings-balance related variables, to update them and
    to check if we have a scope for performing power-savings balance.

    Add no-op inline functions for the !(CONFIG_SCHED_MC || CONFIG_SCHED_SMT)
    case.

    This will eliminate all the #ifdef jungle in find_busiest_group() and the
    other helper functions.

    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    Cc: "Vaidyanathan Srinivasan"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup, micro-optimization

    We don't need to perform power_savings balance if either the
    cpu is NOT_IDLE or if the sched_domain doesn't contain the
    SD_POWERSAVINGS_BALANCE flag set.

    Currently, we check for these conditions multiple number of
    times, even though these variables don't change over the scope
    of find_busiest_group().

    Check once, and store the value in the already exiting
    "power_savings_balance" variable.

    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    Cc: "Vaidyanathan Srinivasan"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Move all the imbalance calculation out of find_busiest_group()
    through this helper function.

    With this change, the structure of find_busiest_group() will be
    as follows:

    - update_sched_domain_statistics.

    - check if imbalance exits.

    - update imbalance and return busiest.

    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    Cc: "Vaidyanathan Srinivasan"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    We have two places in find_busiest_group() where we need to calculate
    the minor imbalance before returning the busiest group. Encapsulate
    this functionality into a seperate helper function.

    Credit: Vaidyanathan Srinivasan
    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Create a helper function named update_sd_lb_stats() to update the
    various sched_domain related statistics in find_busiest_group().

    With this we would have moved all the statistics computation out of
    find_busiest_group().

    Credit: Vaidyanathan Srinivasan
    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Currently we use a lot of local variables in find_busiest_group()
    to capture the various statistics related to the sched_domain.
    Group them together into a single data structure.

    This will help us to offload the job of updating the sched_domain
    statistics to a helper function.

    Credit: Vaidyanathan Srinivasan
    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Create a helper function named update_sg_lb_stats() which
    can be invoked to calculate the individual group's statistics
    in find_busiest_group().

    This reduces the lenght of find_busiest_group() considerably.

    Credit: Vaidyanathan Srinivasan
    Signed-off-by: Gautham R Shenoy
    Aked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Currently a whole bunch of variables are used to store the
    various statistics pertaining to the groups we iterate over
    in find_busiest_group().

    Group them together in a single data structure and add
    appropriate comments.

    This will be useful later on when we create helper functions
    to calculate the sched_group statistics.

    Credit: Vaidyanathan Srinivasan
    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Some indentations in find_busiest_group() can minimized by using
    early exits with the help of gotos. This improves readability in
    a couple of cases.

    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    Cc: "Vaidyanathan Srinivasan"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Impact: cleanup

    Currently the load idx calculation code is in find_busiest_group().
    Move that to a static inline helper function.

    Similary, to find the first cpu of a sched_group we use
    cpumask_first(sched_group_cpus(group))

    Use a helper to that. It improves readability in some cases.

    Signed-off-by: Gautham R Shenoy
    Acked-by: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: "Balbir Singh"
    Cc: Nick Piggin
    Cc: "Dhaval Giani"
    Cc: Bharata B Rao
    Cc: "Vaidyanathan Srinivasan"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • Ingo Molnar
     
  • This patch combines Greg Bank's dprintk() work with the existing dynamic
    printk patchset, we are now calling it 'dynamic debug'.

    The new feature of this patchset is a richer /debugfs control file interface,
    (an example output from my system is at the bottom), which allows fined grained
    control over the the debug output. The output can be controlled by function,
    file, module, format string, and line number.

    for example, enabled all debug messages in module 'nf_conntrack':

    echo -n 'module nf_conntrack +p' > /mnt/debugfs/dynamic_debug/control

    to disable them:

    echo -n 'module nf_conntrack -p' > /mnt/debugfs/dynamic_debug/control

    A further explanation can be found in the documentation patch.

    Signed-off-by: Greg Banks
    Signed-off-by: Jason Baron
    Signed-off-by: Greg Kroah-Hartman

    Jason Baron
     
  • Impact: cleanup, new schedstat ABI

    Since they are used on in statistics and are always set to zero, the
    following fields from struct rq have been removed: yld_exp_empty,
    yld_act_empty and yld_both_empty.

    Both Sched Debug and SCHEDSTAT_VERSION versions has also been
    incremented since ABIs have been changed.

    The schedtop tool has been updated to properly handle new version of
    schedstat:

    http://rt.wiki.kernel.org/index.php/Schedtop_utility

    Signed-off-by: Luis Henriques
    Acked-by: Gregory Haskins
    Acked-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Luis Henriques
     

24 Mar, 2009

3 commits

  • James Morris
     
  • See http://bugzilla.kernel.org/show_bug.cgi?id=12911

    copy_signal() copies signal->rlim, but RLIMIT_CPU is "lost". Because
    posix_cpu_timers_init_group() sets cputime_expires.prof_exp = 0 and thus
    fastpath_timer_check() returns false unless we have other cpu timers.

    This is the minimal fix for 2.6.29 (tested) and 2.6.28. The patch is not
    optimal, we need further cleanups here. With this patch update_rlimit_cpu()
    is not really needed, but I don't think it should be removed.

    The proper fix (I think) is:

    - set_process_cpu_timer() should just start the cputimer->running
    logic (it does), no need to change cputime_expires.xxx_exp

    - posix_cpu_timers_init_group() should set ->running when needed

    - fastpath_timer_check() can check ->running instead of
    task_cputime_zero(signal->cputime_expires)

    Reported-by: Peter Lojkin
    Signed-off-by: Oleg Nesterov
    Cc: Peter Zijlstra
    Cc: Roland McGrath
    Cc: [for 2.6.29.x]
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Oleg Nesterov
     
  • This patch fixes bug #12208:

    Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=12208
    Subject : uml is very slow on 2.6.28 host

    This turned out to be not a scheduler regression, but an already
    existing problem in ptrace being triggered by subtle scheduler
    changes.

    The problem is this:

    - task A is ptracing task B
    - task B stops on a trace event
    - task A is woken up and preempts task B
    - task A calls ptrace on task B, which does ptrace_check_attach()
    - this calls wait_task_inactive(), which sees that task B is still on the runq
    - task A goes to sleep for a jiffy
    - ...

    Since UML does lots of the above sequences, those jiffies quickly add
    up to make it slow as hell.

    This patch solves this by not rescheduling in read_unlock() after
    ptrace_stop() has woken up the tracer.

    Thanks to Oleg Nesterov and Ingo Molnar for the feedback.

    Signed-off-by: Miklos Szeredi
    CC: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     

23 Mar, 2009

2 commits


18 Mar, 2009

2 commits

  • The jiffies value was being printed for each CPU, which does not seem to make
    sense. Moved jiffies to system section.

    Signed-off-by: Luis Henriques
    Acked-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Luis Henriques
     
  • Impact: fix ref-after-free crash on failed module load

    Fix refptr bug: Change refptr allocation and release order not to access a module
    data structure pointed by 'mod' after freeing mod->module_core.
    This bug will cause kernel panic(e.g. failed to find undefined symbols).

    This bug was reported on systemtap bugzilla.
    http://sources.redhat.com/bugzilla/show_bug.cgi?id=9927

    Signed-off-by: Masami Hiramatsu
    Cc: Eric Dumazet
    Signed-off-by: Rusty Russell

    Masami Hiramatsu
     

17 Mar, 2009

2 commits


16 Mar, 2009

1 commit


13 Mar, 2009

2 commits