1. 28 8月, 2007 14 次提交
    • I
      sched: fix wait_start_fair condition in update_stats_wait_end() · b77d69db
      Ingo Molnar 提交于
      Peter Zijlstra noticed the following bug in SCHED_FEAT_SKIP_INITIAL (which
      is disabled by default at the moment): it relies on se.wait_start_fair
      being 0 while update_stats_wait_end() did not recognize a 0 value,
      so instead of 'skipping' the initial interval we gave the new child
      a maximum boost of +runtime-limit ...
      
      (No impact on the default kernel, but nice to fix for completeness.)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      b77d69db
    • T
      sched: call update_curr() in task_tick_fair() · 7109c442
      Ting Yang 提交于
      update the fair-clock before using it for the key value.
      
      [ mingo@elte.hu: small cleanups. ]
      Signed-off-by: NTing Yang <tingy@cs.umass.edu>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      7109c442
    • I
      sched: make the scheduler converge to the ideal latency · f6cf891c
      Ingo Molnar 提交于
      de-HZ-ification of the granularity defaults unearthed a pre-existing
      property of CFS: while it correctly converges to the granularity goal,
      it does not prevent run-time fluctuations in the range of
      [-gran ... 0 ... +gran].
      
      With the increase of the granularity due to the removal of HZ
      dependencies, this becomes visible in chew-max output (with 5 tasks
      running):
      
       out:  28 . 27. 32 | flu:  0 .  0 | ran:    9 .   13 | per:   37 .   40
       out:  27 . 27. 32 | flu:  0 .  0 | ran:   17 .   13 | per:   44 .   40
       out:  27 . 27. 32 | flu:  0 .  0 | ran:    9 .   13 | per:   36 .   40
       out:  29 . 27. 32 | flu:  2 .  0 | ran:   17 .   13 | per:   46 .   40
       out:  28 . 27. 32 | flu:  0 .  0 | ran:    9 .   13 | per:   37 .   40
       out:  29 . 27. 32 | flu:  0 .  0 | ran:   18 .   13 | per:   47 .   40
       out:  28 . 27. 32 | flu:  0 .  0 | ran:    9 .   13 | per:   37 .   40
      
      average slice is the ideal 13 msecs and the period is picture-perfect 40
      msecs. But the 'ran' field fluctuates around 13.33 msecs and there's no
      mechanism in CFS to keep that from happening: it's a perfectly valid
      solution that CFS finds.
      
      to fix this we add a granularity/preemption rule that knows about
      the "target latency", which makes tasks that run longer than the ideal
      latency run a bit less. The simplest approach is to simply decrease the
      preemption granularity when a task overruns its ideal latency. For this
      we have to track how much the task executed since its last preemption.
      
      ( this adds a new field to task_struct, but we can eliminate that
        overhead in 2.6.24 by putting all the scheduler timestamps into an
        anonymous union. )
      
      with this change in place, chew-max output is fluctuation-less all
      around:
      
       out:  28 . 27. 39 | flu:  0 .  2 | ran:   13 .   13 | per:   41 .   40
       out:  28 . 27. 39 | flu:  0 .  2 | ran:   13 .   13 | per:   41 .   40
       out:  28 . 27. 39 | flu:  0 .  2 | ran:   13 .   13 | per:   41 .   40
       out:  28 . 27. 39 | flu:  0 .  2 | ran:   13 .   13 | per:   41 .   40
       out:  28 . 27. 39 | flu:  0 .  1 | ran:   13 .   13 | per:   41 .   40
       out:  28 . 27. 39 | flu:  0 .  1 | ran:   13 .   13 | per:   41 .   40
      
      this patch has no impact on any fastpath or on any globally observable
      scheduling property. (unless you have sharp enough eyes to see
      millisecond-level ruckles in glxgears smoothness :-)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      f6cf891c
    • M
      sched: fix sleeper bonus limit · 5f01d519
      Mike Galbraith 提交于
      There is an Amarok song switch time increase (regression) under
      hefty load.
      
      What is happening is that sleeper_bonus is never consumed, and only
      rarely goes below runtime_limit, so for the most part, Amarok isn't
      getting any bonus at all.  We're keeping sleeper_bonus right at
      runtime_limit (sched_latency == sched_runtime_limit == 40ms) forever, ie
      we don't consume if we're lower that that, and don't add if we're above
      it.  One Amarok thread waking (or anybody else) will push us past the
      threshold, so the next thread waking gets nada, but will reap pain from
      the previous thread waking until we drop back to runtime_limit.  It
      looks to me like under load, some random task gets a bonus, and
      everybody else pays, whether deserving or not.
      
      This diff fixed the regression for me at any load rate.
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      5f01d519
    • L
      Linux 2.6.23-rc4 · b07d68b5
      Linus Torvalds 提交于
      b07d68b5
    • A
      dm-mpath-rdac: don't stomp on a requests transfer bit · f99ba18a
      Andrew Vasquez 提交于
      Without this, we get qla2xxx complaining about "ISP System Error".
      
      What's happening here is the firmware is detecting a Xfer-ready from the
      storage when in fact the data-direction for a mode-select should be a
      write (DATA_OUT).
      
      The following patch fixes the problem (typo). Verified by Brian, as
      well.
      Signed-off-by: NAndrew Vasquez <andrew.vasquez@qlogic.com>
      Verified-by: NBrian De Wolf <bldewolf@csupomona.edu>
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f99ba18a
    • L
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · 5a99efea
      Linus Torvalds 提交于
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC32]: Make flush_tlb_kernel_range() an inline function.
        [SERIAL]: Fix 32-bit warnings in sunzilog.c and sunsu.c
        [SPARC32]: Kill unused vars and macros from prom/console.c
        [SPARC32]: Add __cmpdi2() libcall implementation ala. MIPS.
        [VIDEO]: Do not prom_halt() in cg3 and bw2 device probe.
        [SUNVDC]: Use slice 0xff on VD_DISK_TYPE_DISK.
      5a99efea
    • L
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 28d9aa61
      Linus Torvalds 提交于
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [NET]: Mark Paul Moore as maintainer of labelled networking.
        [VLAN/BRIDGE]: Fix "skb_pull_rcsum - Fatal exception in interrupt"
        [ISDN]: Get rid of some pointless allocation casts in common and bsd comp.
        [NET]: Avoid pointless allocation casts in BSD compression module
        [IRDA]: Do not do pointless kmalloc return value cast in KingSun driver
        [NET]: Fix crash in dev_mc_sync()/dev_mc_unsync()
        [PPPOL2TP]: Fix endianness annotations.
        [IOAT]: ioatdma needs to to play nice in a multi-dma-client world
        [SLIP]: trivial sparse warning fix
        [EQL]: sparse warning fix
        [NET]: is_power_of_2 in net/core/neighbour.c
        [TCP]: Describe tcp_init_cwnd() thoroughly in a comment.
        [NET]: Fix IP_ADD/DROP_MEMBERSHIP to handle only connectionless
        [KBUILD]: Sanitize tc_ematch headers.
        [IPSEC] AH4: Update IPv4 options handling to conform to RFC 4302.
      28d9aa61
    • H
      fix bogus hotplug cpu warning · d243769d
      Hugh Dickins 提交于
      Fix bogus DEBUG_PREEMPT warning on x86_64, when cpu brought online after
      bootup: current_is_keventd is right to note its use of smp_processor_id
      is preempt-safe, but should use raw_smp_processor_id to avoid the warning.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d243769d
    • H
      reverse CONFIG_ACPI_PROC_EVENT default · 721ebe00
      Hugh Dickins 提交于
      Sigh.  Again an ACPI assault on the Thinkpad's Fn+F4 to suspend to RAM.
      The default and text for CONFIG_THINKPAD_ACPI_INPUT_ENABLED were fixed
      in -rc3, but now commit 14e04fb3 ("ACPI:
      Schedule /proc/acpi/event for removal") introduces the ACPI_PROC_EVENT
      config entry, and defaults it to 'n' to disable it again.
      
      Change default to y, and add comment to make it clearer that n is for
      future distros.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Len Brown <len.brown@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      721ebe00
    • H
      fix maxcpus=N parsing · 81340977
      Hugh Dickins 提交于
      Commit 61ec7567 ('ACPI: boot correctly
      with "nosmp" or "maxcpus=0"') broke 'maxcpus=' handling on x86[-64].
      
      maxcpus=N is now having no effect on x86_64, and freezing bootup on i386
      (because of inconsistency with the separate maxcpus parsing down in
      arch/i386, I guess).  That's because early_param parsing is a little
      different from __setup parsing, and needs the "=" omitted: then it seems
      to work as the original commit intended (no mention of IO-APIC in
      /proc/interrupts when maxcpus=0).
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      81340977
    • L
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · 88ede820
      Linus Torvalds 提交于
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (60 commits)
        [MIPS] Fulong doesn't need ISA DMA.
        [MIPS] IP27: intr_sconnect_level: don't disable interrupts.
        [MIPS] IP27: startup_bridge_irq: connect interrupt.
        [MIPS] IP27: shutdown_bridge_irq: don't free irq.
        [MIPS] Sort out handling of ISA-less PCI systems.
        [MIPS] Add __cmpdi2
        [MIPS] HOTPLUG: Make register_pci_controller __devinit.
        [MIPS] PCI: Remove __devinit attribute from pcibios_fixup_bus.
        [MIPS] PCI: Remove __devinit attribute from pcibios_fixup_bus.
        [MIPS] Delete duplicate inclusion of <linux/delay.h>.
        [MIPS] Polish <asm/edac.h>.
        [MIPS] IP22: Export sgi_gfxaddr for use by the Newport console driver.
        [MIPS] Maintain si_code field properly for FP exceptions
        [MIPS] SMTC: Fix duplicate status dumps on NMI
        [MIPS] Unconditionally writeback and invalidate caches on kexec.
        [PATCH] rtc: Make rtc-rs5c348 driver hotplug-aware
        [MIPS] Fix gcc 3.3 warning.
        [MIPS] Fix invalid semicolon after if statement
        [MIPS] Update Cobalt defconfig
        [MIPS] Update workpad_defconfig
        ...
      88ede820
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · 96665822
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        [POWERPC] Fix SLB initialization at boot time
        [POWERPC] Fix undefined reference to device_power_up/resume
        [POWERPC] cell: Update cell_defconfig for 2.6.23
        [POWERPC] axonram: Do not delete gendisks queue in error path
        [POWERPC] axonram: Module modification for latest firmware API changes
        [POWERPC] cell: Support pinhole-reset on IBM cell blades
        [POWERPC] spu_manage: Use newer physical-id attribute
        [POWERPC] pasemi: Another IOMMU bugfix for 64K PAGE_SIZE
      96665822
    • L
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 · d96a2a5c
      Linus Torvalds 提交于
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
        [PARISC] Add NOTES section
        [PARISC] Use compat_sys_getdents
        [PARISC] Do not allow STI_CONSOLE to be modular
        [PARISC] Clean up sti_flush
        [PARISC] Add dummy isa_(bus|virt)_to_(virt|bus) inlines
        [PARISC] Add empty <asm-parisc/vga.h>
      d96a2a5c
  2. 27 8月, 2007 26 次提交