06 Jun, 2008

40 commits

  • Peter pointed out that the last version of the "fix" was still one off
    under certain circumstances. Use BITS_TO_LONG instead to get an
    accurate result.

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • A rounding error was pointed out by Peter Zijlstra which would result
    in the structure holding priorities to be off by one.

    Signed-off-by: Gregory Haskins
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Arnaldo Carvalho de Melo
    Signed-off-by: Thomas Gleixner

    Gregory Haskins
     
  • The RT folks over at RedHat found an issue w.r.t. hotplug support which
    was traced to problems with the cpupri infrastructure in the scheduler:

    https://bugzilla.redhat.com/show_bug.cgi?id=449676

    This bug affects 23-rt12+, 24-rtX, 25-rtX, and sched-devel. This patch
    applies to 25.4-rt4, though it should trivially apply to most cpupri enabled
    kernels mentioned above.

    It turned out that the issue was that offline cpus could get inadvertently
    registered with cpupri so that they were erroneously selected during
    migration decisions. The end result would be an OOPS as the offline cpu
    had tasks routed to it.

    This patch generalizes the old join/leave domain interface into an
    online/offline interface, and adjusts the root-domain/hotplug code to
    utilize it.

    I was able to easily reproduce the issue prior to this patch, and am no
    longer able to reproduce it after this patch. I can offline cpus
    indefinately and everything seems to be in working order.

    Thanks to Arnaldo (acme), Thomas, and Peter for doing the legwork to point
    me in the right direction. Also thank you to Peter for reviewing the
    early iterations of this patch.

    Signed-off-by: Gregory Haskins
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: Arnaldo Carvalho de Melo
    Cc: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Gregory Haskins
     
  • While printing out the visual representation of the sched-domains, print
    the level (MC, SMT, CPU, NODE, ... ) of each of the sched_domains.

    Credit: Peter Zijlstra
    Signed-off-by: Gautham R Shenoy
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • SCHED_DOMAIN_DEBUG mentioned in the Documentation for sched-domains
    for enabling sched-domains debugging doesn't exist anymore.

    Update the documentation to reflect the correct way of enabling
    sched-domain debugging.

    Signed-off-by: Gautham R Shenoy
    Signed-off-by: Ingo Molnar

    Gautham R Shenoy
     
  • make sched.c easier to read.

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

    Dhaval Giani
     
  • For the normal WARN_ON() etc we added a print-the-modules-list already,
    which is very useful to figure out candidates for certain types of bugs.

    This patch adds the same print to the "scheduling while atomic" BUG warning,
    for the same reason: when we get here it's very useful to see which modules
    are loaded, to narrow down the candidate code list.

    Signed-off-by: Arjan van de Ven
    Cc: mingo@elte.hu
    Signed-off-by: Thomas Gleixner

    Arjan van de Ven
     
  • This patch removes 24 bytes of padding and allows 1 extra object per
    slab on my fedora based config.

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

    Richard Kennedy
     
  • Fix this warning, which appears with !CONFIG_SMP:
    kernel/sched.c:1216: warning: `init_hrtick' defined but not used

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

    Rabin Vincent
     
  • [ Stephen Rothwell : build fix ]

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

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

    Thomas Gleixner
     
  • Nothing really serious here, mainly just a matter of nit-picking :-/

    From: Dmitry Adamushko
    For CONFIG_SCHED_DEBUG && CONFIG_SYSCT configs, sd->flags can be altered
    while being manipulated in rebalance_domains(). Let's do an atomic check.
    We rely here on the atomicity of read/write accesses for aligned words.

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

    Dmitry Adamushko
     
  • The currently logic inadvertently skips the last task on the run-queue,
    resulting in missed balance opportunities.

    Signed-off-by: Gregory Haskins
    Signed-off-by: David Bahi
    CC: Peter Zijlstra
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Gregory Haskins
     
  • The current code use a linear algorithm which causes scaling issues
    on larger SMP machines. This patch replaces that algorithm with a
    2-dimensional bitmap to reduce latencies in the wake-up path.

    Signed-off-by: Gregory Haskins
    Acked-by: Steven Rostedt
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Gregory Haskins
     
  • it is safe to ignore timers and flags when the feature is disabled.

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

    Mike Galbraith
     
  • Dmitry Adamushko pointed out a known flaw in the rt-balancing algorithm
    that could allow suboptimal balancing if a non-migratable task gets
    queued behind a running migratable one. It is discussed in this thread:

    http://lkml.org/lkml/2008/4/22/296

    This issue has been further exacerbated by a recent checkin to
    sched-devel (git-id 5eee63a5ebc19a870ac40055c0be49457f3a89a3).

    >From a pure priority standpoint, the run-queue is doing the "right"
    thing. Using Dmitry's nomenclature, if T0 is on cpu1 first, and T1
    wakes up at equal or lower priority (affined only to cpu1) later, it
    *should* wait for T0 to finish. However, in reality that is likely
    suboptimal from a system perspective if there are other cores that
    could allow T0 and T1 to run concurrently. Since T1 can not migrate,
    the only choice for higher concurrency is to try to move T0. This is
    not something we addessed in the recent rt-balancing re-work.

    This patch tries to enhance the balancing algorithm by accomodating this
    scenario. It accomplishes this by incorporating the migratability of a
    task into its priority calculation. Within a numerical tsk->prio, a
    non-migratable task is logically higher than a migratable one. We
    maintain this by introducing a new per-priority queue (xqueue, or
    exclusive-queue) for holding non-migratable tasks. The scheduler will
    draw from the xqueue over the standard shared-queue (squeue) when
    available.

    There are several details for utilizing this properly.

    1) During task-wake-up, we not only need to check if the priority
    preempts the current task, but we also need to check for this
    non-migratable condition. Therefore, if a non-migratable task wakes
    up and sees an equal priority migratable task already running, it
    will attempt to preempt it *if* there is a likelyhood that the
    current task will find an immediate home.

    2) Tasks only get this non-migratable "priority boost" on wake-up. Any
    requeuing will result in the non-migratable task being queued to the
    end of the shared queue. This is an attempt to prevent the system
    from being completely unfair to migratable tasks during things like
    SCHED_RR timeslicing.

    I am sure this patch introduces potentially "odd" behavior if you
    concoct a scenario where a bunch of non-migratable threads could starve
    migratable ones given the right pattern. I am not yet convinced that
    this is a problem since we are talking about tasks of equal RT priority
    anyway, and there never is much in the way of guarantees against
    starvation under that scenario anyway. (e.g. you could come up with a
    similar scenario with a specific timing environment verses an affinity
    environment). I can be convinced otherwise, but for now I think this is
    "ok".

    Signed-off-by: Gregory Haskins
    CC: Dmitry Adamushko
    CC: Steven Rostedt
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Gregory Haskins
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] pxa: fix tosa.c build error
    [ARM] 5067/1: _raw_write_can_lock macro bugfix
    [ARM] 5070/1: pxa: add GPIO104_PSKTSEL to pxa27x MFP configuration
    [ARM] 5068/1: PXA2xx Additional gpio definitions
    [ARM] 5066/2: EM-X270: Fix DM9000 IRQ flags initialisation
    [ARM] 5065/2: CM-X270: Fix DM9000 IRQ flags initialisation
    [ARM] 5062/1: pxa: remove unused definition of CONFIG_ARCH_COTULLA_IDP
    [ARM] 5060/1: remove unnecessary include of asm/io.h
    [ARM] fix AT91 include loops

    Linus Torvalds
     
  • Fairly simple. "dev_use" was being allocated as a zero length array
    because of bad math on 64-bit systems, causing a crash in
    find_first_zero_bit(). One-liner follows:

    Signed-off-by: Ben Collins
    Acked-by: Pierre Ossman
    Signed-off-by: Linus Torvalds

    Ben Collins
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (48 commits)
    V4L/DVB (8001): dib0070: fix dib0070_attach when !CONFIG_DVB_TUNER_DIB0070
    V4L/DVB (8000): tda827x: fix NULL pointer in tda827xa_lna_gain
    V4L/DVB (7990): Fix entry for PowerColor RA 330 and make it run with firmware version 2.7
    V4L/DVB (7983): tda18271_calc_rf_cal must return the return value of tda18271_lookup_map
    V4L/DVB (7978): cx18: explicitly test for XC2028 tuner
    V4L/DVB (7977): cx18: fix init order and remove duplicate open_on_first_use.
    V4L/DVB (7975): saa7134_empress
    V4L/DVB (7974): fix MEDIA_TUNER && FW_LOADER build error
    V4L/DVB (7972): or51132.c: unaligned
    V4L/DVB (7971): usb: unaligned
    V4L/DVB (7970): mix trivial endianness annotations
    V4L/DVB (7969): m920x: unaligned access
    V4L/DVB (7968): zoran: endianness annotations
    V4L/DVB (7967): bt8xx: unaligned access
    V4L/DVB (7966): cx18: direct dereferencing of iomem
    V4L/DVB (7965): annotate bcx_riscmem
    V4L/DVB (7964): cx18 iomem annotations
    V4L/DVB (7963): ivtv: trivial annotations
    V4L/DVB (7962): ttusb endianness annotations and fixes
    V4L/DVB (7961): fix endianness bug in dib0700_devices.c
    ...

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    Fix divide by zero error in build_clear_page() and build_copy_page()
    [MIPS] Fix typo in header guard
    [MIPS] Fix build error - Delete debugging crap that crept in with CMP
    [MIPS] Add accessors for random register.
    [MIPS] IP27: misc fixes
    [MIPS] IP27: Fix clockevent setup
    [MIPS] IP27: Fix bootmem memory setup
    [MIPS] remove CONFIG_CPU_R4000 line from Makefile
    [MIPS] Fix check for valid stack pointer during backtrace
    [MIPS] Add missing braces to pte_mkyoung
    [MIPS] R4700: Fix build_tlb_probe_entry
    [MIPS] Alchemy: dbdma: add API to delete custom DDMA device ids.
    [MIPS] Alchemy: export get_au1x00_speed for modules

    Linus Torvalds
     
  • * git://git.infradead.org/~dwmw2/mtd-2.6.26:
    [MTD] [MAPS] Fix cmdlineparse handling in mapping files
    [MTD] [NAND] pxa: fix incorrect calling of pxa3xx_nand_config() on resume path

    Linus Torvalds
     
  • Suggest how to deal with patch modifications caused by
    merging or back-porting when you're a maintainer.

    Signed-off-by: Willy Tarreau
    Signed-off-by: Linus Torvalds

    Willy Tarreau
     
  • - Don't trust a length which is greater than the working buffer.
    An invalid length could cause overflow when calculating buffer size
    for decoding oid.

    - An oid length of zero is invalid and allows for an off-by-one error when
    decoding oid because the first subid actually encodes first 2 subids.

    - A primitive encoding may not have an indefinite length.

    Thanks to Wei Wang from McAfee for report.

    Cc: Steven French
    Cc: stable@kernel.org
    Acked-by: Patrick McHardy
    Signed-off-by: Chris Wright
    Signed-off-by: Linus Torvalds

    Chris Wright
     
  • Alias brd to rd in the hope of helping legacy users. Suggested by Jan.

    Signed-off-by: Nick Piggin
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Here is an attempt to translate the prompt and help text into something
    which is legible and, as a bonus, correct.

    Signed-off-by: Stefan Richter
    Signed-off-by: Linus Torvalds

    Stefan Richter
     
  • ip_fast_csum() requires a memory clobber on its inline asm as it accesses
    memory in a fashion that gcc can't predict.

    The GCC manual says:

    If your assembler instructions access memory in an unpredictable
    fashion, add `memory' to the list of clobbered registers. This will
    cause GCC to not keep memory values cached in registers across the
    assembler instruction and not optimize stores or loads to that memory.

    The bug hasn't been noticed in FRV, but it has been seen in PA-RISC.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • We don't need to reserve "unset" resources. Trying to reserve
    them results in messages like this, which are ugly but harmless:

    system 00:08: iomem range 0x0-0x0 could not be reserved

    Future PNP patches will remove use of IORESOURCE_UNSET, but
    we still need it for now.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Signed-off-by: Yoichi Yuasa
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Vegard Nossum
    Signed-off-by: Ralf Baechle

    Vegard Nossum
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • - fix PCI interrupt assignment by emulating ioc3 interrupt pin register
    - use pci_probe_only mode
    - select correct page size in bridge
    - remove no longer needed ioc3_sio_init() code

    [Ralf: Fix for 64kB or larger pagesizes]

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • Fix breakage introduced by converting hub_rt to clockevent.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • Changes in the generic bootmem code broke memory setup for IP27. This
    patch fixes this by replacing lots of special IP27 code with generic
    bootmon code. This has been tested only on a single node.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • The existing options are named CONFIG_CPU_R4300 and CONFIG_CPU_R4X00,
    and they are directly below.

    Reported-by: Robert P. J. Day
    Signed-off-by: Adrian Bunk
    Signed-off-by: Ralf Baechle

    Adrian Bunk
     
  • The newly added check for valid stack pointer address breaks at least for
    64bit kernels. Use __get_user() for accessing stack content to avoid crashes,
    when doing the backtrace.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • Only the version pte_mkyoung for 36-bit pagetables on 32-bit hw was
    affected and with this bug being around since November 29, 2004 there
    is evidence to suport the assumption it was benign ;-)

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: Ralf Baechle

    Ilpo Järvinen
     
  • Treat R4700 like R4600 in build_tlb_probe_entry. Without this fix kernel
    will lock up.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • Add API to delete custom DDMA device ids create with
    au1xxx_ddma_device_add().

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • au1xmmc.c driver depends on it, so export it for modules.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss