03 Jan, 2009

1 commit

  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
    x86: export vector_used_by_percpu_irq
    x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
    sched: nominate preferred wakeup cpu, fix
    x86: fix lguest used_vectors breakage, -v2
    x86: fix warning in arch/x86/kernel/io_apic.c
    sched: fix warning in kernel/sched.c
    sched: move test_sd_parent() to an SMP section of sched.h
    sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
    sched: activate active load balancing in new idle cpus
    sched: bias task wakeups to preferred semi-idle packages
    sched: nominate preferred wakeup cpu
    sched: favour lower logical cpu number for sched_mc balance
    sched: framework for sched_mc/smt_power_savings=N
    sched: convert BALANCE_FOR_xx_POWER to inline functions
    x86: use possible_cpus=NUM to extend the possible cpus allowed
    x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
    x86: update io_apic.c to the new cpumask code
    x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
    x86: xen: use smp_call_function_many()
    x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
    ...

    Fixed up trivial conflict in kernel/time/tick-sched.c manually

    Linus Torvalds
     

29 Dec, 2008

1 commit

  • GCC has a bug with __weak alias functions: if the functions are in
    the same compilation unit as their call site, GCC can decide to
    inline them - and thus rob the linker of the opportunity to override
    the weak alias with the real thing.

    So move all the IRQ handling related __weak symbols to kernel/irq/chip.c.

    Signed-off-by: Yinghai Lu
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

27 Dec, 2008

1 commit


26 Dec, 2008

1 commit

  • Impact: cleanup

    before CONFIG_SPARSE_IRQ age, for_each_irq_desc() sat in irqnr.h and
    could be called from generic code.

    CONFIG_SPARSE_IRQ breaks this assumption, but SPARSE_IRQ version
    for_each_irq_desc() also can move into irqnr.h easily.

    Also, this patch unifies CONFIG_SPARSE_IRQ and !CONFIG_SPARSE_IRQ
    for_each_irq_desc().

    Signed-off-by: KOSAKI Motohiro
    Signed-off-by: Ingo Molnar

    KOSAKI Motohiro
     

25 Dec, 2008

1 commit


19 Dec, 2008

1 commit


17 Dec, 2008

2 commits

  • Conflicts:
    arch/x86/kernel/io_apic.c

    Merge irq/sparseirq here, to resolve conflicts.

    Ingo Molnar
     
  • Impact: improve NUMA handling by migrating irq_desc on smp_affinity changes

    if CONFIG_NUMA_MIGRATE_IRQ_DESC is set:

    - make irq_desc to go with affinity aka irq_desc moving etc
    - call move_irq_desc in irq_complete_move()
    - legacy irq_desc is not moved, because they are allocated via static array

    for logical apic mode, need to add move_desc_in_progress_in_same_domain,
    otherwise it will not be moved ==> also could need two phases to get
    irq_desc moved.

    Signed-off-by: Yinghai Lu
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

13 Dec, 2008

2 commits

  • Conflicts:

    arch/x86/kernel/io_apic.c
    kernel/sched.c
    kernel/sched_stats.h

    Rusty Russell
     
  • Impact: change existing irq_chip API

    Not much point with gentle transition here: the struct irq_chip's
    setaffinity method signature needs to change.

    Fortunately, not widely used code, but hits a few architectures.

    Note: In irq_select_affinity() I save a temporary in by mangling
    irq_desc[irq].affinity directly. Ingo, does this break anything?

    (Folded in fix from KOSAKI Motohiro)

    Signed-off-by: Rusty Russell
    Signed-off-by: Mike Travis
    Reviewed-by: Grant Grundler
    Acked-by: Ingo Molnar
    Cc: ralf@linux-mips.org
    Cc: grundler@parisc-linux.org
    Cc: jeremy@xensource.com
    Cc: KOSAKI Motohiro

    Rusty Russell
     

09 Dec, 2008

1 commit

  • Impact: build fix on Alpha

    -tip testing found this build failure on the Alpha defconfig:

    /home/mingo/tip/fs/proc/stat.c: In function 'show_stat':
    /home/mingo/tip/fs/proc/stat.c:48: error: implicit declaration of function 'for_each_irq_desc'
    /home/mingo/tip/fs/proc/stat.c:48: error: expected ';' before '{' token

    can not use irq_desc() in stat.c on older architectures.

    Signed-off-by: Yinghai Lu
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

08 Dec, 2008

1 commit

  • Impact: new feature

    Problem on distro kernels: irq_desc[NR_IRQS] takes megabytes of RAM with
    NR_CPUS set to large values. The goal is to be able to scale up to much
    larger NR_IRQS value without impacting the (important) common case.

    To solve this, we generalize irq_desc[NR_IRQS] to an (optional) array of
    irq_desc pointers.

    When CONFIG_SPARSE_IRQ=y is used, we use kzalloc_node to get irq_desc,
    this also makes the IRQ descriptors NUMA-local (to the site that calls
    request_irq()).

    This gets rid of the irq_cfg[] static array on x86 as well: irq_cfg now
    uses desc->chip_data for x86 to store irq_cfg.

    Signed-off-by: Yinghai Lu
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

23 Nov, 2008

2 commits

  • Impact: reduce struct irq_desc size

    struct irq_desc: reorder to remove padding on 64bits

    shrinks irq_desc to 128 bytes which saves data space & cache lines

    On a generic x86_64/SMP build this reduces the reported data size by
    64k.

    Signed-off-by: Richard Kennedy
    Signed-off-by: Ingo Molnar

    Richard Kennedy
     
  • Impact: fix kernel-doc build

    Fix missing & excess irq.h kernel-doc:

    Warning(include/linux/irq.h:182): No description found for parameter 'irq'
    Warning(include/linux/irq.h:182): Excess struct/union/enum/typedef member 'affinity_entry' description in 'irq_desc'

    Signed-off-by: Randy Dunlap
    Cc: Andrew Morton
    Signed-off-by: Ingo Molnar

    Randy Dunlap
     

10 Nov, 2008

1 commit

  • Impact: preserve user-modified affinities on interrupts

    Kumar Galak noticed that commit
    18404756765c713a0be4eb1082920c04822ce588 (genirq: Expose default irq
    affinity mask (take 3))

    overrides an already set affinity setting across a free /
    request_irq(). Happens e.g. with ifdown/ifup of a network device.

    Change the logic to mark the affinities as set and keep them
    intact. This also fixes the unlocked access to irq_desc in
    irq_select_affinity() when called from irq_affinity_proc_write()

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

18 Oct, 2008

1 commit

  • Move the irq_desc related iterators out of irq.h, into irqnr.h, also
    available via interrupt.h.

    This way non-genirq (and even non-hardirq) architectures get the
    common definitions and iterators.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

16 Oct, 2008

21 commits


22 Jul, 2008

1 commit


19 Jul, 2008

1 commit


12 Jul, 2008

1 commit

  • Generic infrastructure for migrating the irq from the process context in the
    presence of CONFIG_GENERIC_PENDING_IRQ.

    This will be used later for migrating irq in the presence of
    interrupt-remapping.

    Signed-off-by: Suresh Siddha
    Cc: akpm@linux-foundation.org
    Cc: arjan@linux.intel.com
    Cc: andi@firstfloor.org
    Cc: ebiederm@xmission.com
    Cc: jbarnes@virtuousgeek.org
    Cc: steiner@sgi.com
    Signed-off-by: Ingo Molnar

    Suresh Siddha