13 Dec, 2006

2 commits


12 Dec, 2006

14 commits

  • While working on bidi support at struct request level
    I have found that blk_queue_activity_fn is actually never used.
    The only user is in ide-probe.c with this code:

    /* enable led activity for disk drives only */
    if (drive->media == ide_disk && hwif->led_act)
    blk_queue_activity_fn(q, hwif->led_act, drive);

    And led_act is never initialized anywhere.
    (Looking back at older kernels it was used in the PPC arch, but was removed around 2.6.18)
    Unless it is all for future use off course.
    (this patch is against linux-2.6-block.git as off 2006/12/4)

    Signed-off-by: Boaz Harrosh
    Signed-off-by: Jens Axboe

    Boaz Harrosh
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (32 commits)
    [NETPOLL]: Fix local_bh_enable() warning.
    [IPVS]: Make ip_vs_sync.c <= 80col wide.
    [IPVS]: Use msleep_interruptable() instead of ssleep() aka msleep()
    [HAMRADIO]: Fix baycom_epp.c compile failure.
    [DCCP]: Whitespace cleanups
    [DCCP] ccid3: Fixup some type conversions related to rtts
    [DCCP] ccid3: BUG-FIX - conversion errors
    [DCCP] ccid3: Reorder packet history source file
    [DCCP] ccid3: Reorder packet history header file
    [DCCP] ccid3: Make debug output consistent
    [DCCP] ccid3: Perform history operations only after packet has been sent
    [DCCP] ccid3: TX history - remove unused field
    [DCCP] ccid3: Shift window counter computation
    [DCCP] ccid3: Sanity-check RTT samples
    [DCCP] ccid3: Initialise RTT values
    [DCCP] ccid: Deprecate ccid_hc_tx_insert_options
    [DCCP]: Warn when discarding packet due to internal errors
    [DCCP]: Only deliver to the CCID rx side in charge
    [DCCP]: Simplify TFRC calculation
    [DCCP]: Debug timeval operations
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32:
    [AVR32] Add missing #include to delay.c
    [AVR32] Pass dev parameter to dma_cache_sync()
    [AVR32] Implement intc_get_pending()
    [AVR32] Don't include
    [AVR32] Put the chip in "stop" mode when halting the system
    [AVR32] Set flow handler for external interrupts
    [AVR32] Remove unused file
    [AVR32] Remove mii_phy_addr and eth_addr from eth_platform_data
    [AVR32] Move ethernet tag parsing to board-specific code
    [AVR32] Add macb1 platform_device
    [AVR32] Portmux API update

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (36 commits)
    [POWERPC] Generic BUG for powerpc
    [PPC] Fix compile failure do to introduction of PHY_POLL
    [POWERPC] Only export __mtdcr/__mfdcr if CONFIG_PPC_DCR is set
    [POWERPC] Remove old dcr.S
    [POWERPC] Fix SPU coredump code for max_fdset removal
    [POWERPC] Fix irq routing on some 32-bit PowerMacs
    [POWERPC] ps3: Add vuart support
    [POWERPC] Support ibm,dynamic-reconfiguration-memory nodes
    [POWERPC] dont allow pSeries_probe to succeed without initialising MMU
    [POWERPC] micro optimise pSeries_probe
    [POWERPC] Add SPURR SPR to sysfs
    [POWERPC] Add DSCR SPR to sysfs
    [POWERPC] Fix 440SPe CPU table entry
    [POWERPC] Add support for FP emulation for the e300c2 core
    [POWERPC] of_device_register: propagate device_create_file return code
    [POWERPC] Fix mmap of PCI resource with hack for X
    [POWERPC] iSeries: head_64.o needs to depend on lparmap.s
    [POWERPC] cbe_thermal: Fix initialization of sysfs attribute_group
    [POWERPC] Remove QE header files from lite5200.c
    [POWERPC] of_platform_make_bus_id(): make `magic' int
    ...

    Linus Torvalds
     
  • Another way that old SGI types were getting dragged into generic code.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • This also fixes the duplicate definition of nic_t in the s2io driver.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Nothing defines is used.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Fix foobar in 15b1c0e822f578306332d4f4c449250db5c5dceb and
    e8cc49bb0fdb9e18a99e6780073d1400ba2b0d1f patch series.

    Signed-off-by: Ralf Baechle
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • That accumulated over the last months hackaton, shame on me for not
    using git-apply whitespace helping hand, will do that from now on.

    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • This patch
    * resolves a bug where packets smaller than 32/64 bytes resulted in sending rates of 0
    * supports all sending rates from 1/64 bytes/second up to 4Gbyte/second
    * simplifies the present overflow problems in calculations

    Current sending rate X and the cached value X_recv of the receiver-estimated
    sending rate are both scaled by 64 (2^6) in order to
    * cope with low sending rates (minimally 1 byte/second)
    * allow upgrading to use a packets-per-second implementation of CCID 3
    * avoid calculation errors due to integer arithmetic cut-off

    The patch implements a revised strategy from
    http://www.mail-archive.com/dccp@vger.kernel.org/msg01040.html

    The only difference with regard to that strategy is that t_ipi is already
    used in the calculation of the nofeedback timeout, which saves one division.

    Signed-off-by: Gerrit Renker
    Acked-by: Ian McDonald
    Signed-off-by: Arnaldo Carvalho de Melo

    Gerrit Renker
     
  • Make powerpc's __ilog2_u64() take a 64-bit argument.

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

    David Howells
     
  • We should not initialize rootfs before all the core initializers have
    run. So do it as a separate stage just before starting the regular
    driver initializers.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • As reported by Andy Whitcroft, at least the SLES9 initrd build process
    depends on getting the kernel version from the kernel binary. It does
    that by simply trawling the binary and looking for the signature of the
    "linux_banner" string (the string "Linux version " to be exact. Which
    is really broken in itself, but whatever..)

    That got broken when the string was changed to allow /proc/version to
    change the UTS release information dynamically, and "get_kernel_version"
    thus returned "%s" (see commit a2ee8649ba6d71416712e798276bf7c40b64e6e5:
    "[PATCH] Fix linux banner utsname information").

    This just restores "linux_banner" as a static string, which should fix
    the version finding. And /proc/version simply uses a different string.

    To avoid wasting even that miniscule amount of memory, the early boot
    string should really be marked __initdata, but that just causes the same
    bug in SLES9 to re-appear, since it will then find other occurrences of
    "Linux version " first.

    Cc: Andy Whitcroft
    Acked-by: Herbert Poetzl
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Steve Fox
    Acked-by: Olaf Hering
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

11 Dec, 2006

24 commits

  • This makes powerpc use the generic BUG machinery. The biggest reports the
    function name, since it is redundant with kallsyms, and not needed in general.

    There is an overall reduction of code, since module_32/64 duplicated several
    functions.

    Unfortunately there's no way to tell gcc that BUG won't return, so the BUG
    macro includes a goto loop. This will generate a real jmp instruction, which
    is never used.

    [akpm@osdl.org: build fix]
    [paulus@samba.org: remove infinite loop in BUG_ON]
    Signed-off-by: Jeremy Fitzhardinge
    Cc: Andi Kleen
    Cc: Hugh Dickens
    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Paul Mackerras

    Jeremy Fitzhardinge
     
  • Paul Mackerras
     
  • PHY_POLL is defined in include it in so
    board code will have it defined.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • Kumar Gala
     
  • On 85xx we don't build in dcr support because the core doesn't implement the
    instructions. This caused problems when building an 85xx kernel. Additionally
    made it so we only build __mtdcr/__mfdcr if we are CONFIG_PPC_DCR_NATIVE.

    The 85xx build issue wasPointed out by Dai Haruki.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • This eleminates the need to include ptrace.h into system.h and fixes a
    harmless namespace conflict on the PC symbol in bpck.c.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: Fix several kprobes bugs.
    [SPARC64]: Update defconfig.
    [SPARC64]: dma remove extra brackets
    [SPARC{32,64}]: Propagate ptrace_traceme() return value.
    [SPARC64]: Replace kmalloc+memset with kzalloc
    [SPARC]: Check kzalloc() return value in SUN4D irq/iommu init.
    [SPARC]: Replace kmalloc+memset with kzalloc
    [SPARC64]: Run ctrl-alt-del action for sun4v powerdown request.
    [SPARC64]: Unaligned accesses to userspace are hard errors.
    [SPARC64]: Call do_mathemu on illegal instruction traps too.
    [SPARC64]: Update defconfig.
    [SPARC64]: Add irqtrace/stacktrace/lockdep support.

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (132 commits)
    V4L/DVB 4949b: Fix container_of pointer retreival
    V4L/DVB (4949a): Fix INIT_WORK
    V4L/DVB (4949): Cxusb: codingstyle cleanups
    V4L/DVB (4948): Cxusb: Convert tuner functions to use dvb_pll_attach
    V4L/DVB (4947): Cx88: trivial cleanups
    V4L/DVB (4946): Cx88: Move cx88_dvb_bus_ctrl out of the card-specific area
    V4L/DVB (4945): Cx88: consolidate cx22702_config structs
    V4L/DVB (4944): Cx88: Convert DViCO FusionHDTV Hybrid to use dvb_pll_attach
    V4L/DVB (4943): Cx88: cleanup dvb_pll_attach for lgdt3302 tuners
    V4L/DVB (4953): Usbvision minor fixes
    V4L/DVB (4951): Add version.h, since it is required for VIDIOC_QUERYCAP
    V4L/DVB (4940): Or51211: Changed SNR and signal strength calculations
    V4L/DVB (4939): Or51132: Changed SNR and signal strength reporting
    V4L/DVB (4938): Cx88: Convert lgdt3302 tuning function to use dvb_pll_attach
    V4L/DVB (4941): Remove LINUX_VERSION_CODE and fix identations
    V4L/DVB (4942): Whitespace cleanups
    V4L/DVB (4937): Usbvision cleanup and code reorganization
    V4L/DVB (4936): Make MT4049FM5 tuner to set FM Gain to Normal
    V4L/DVB (4935): Added the capability of selecting fm gain by tuner
    V4L/DVB (4934): Usbvision radio requires GainNormal at e register
    ...

    Linus Torvalds
     
  • web site: http://kvm.sourceforge.net

    mailing list: kvm-devel@lists.sourceforge.net
    (http://lists.sourceforge.net/lists/listinfo/kvm-devel)

    The following patchset adds a driver for Intel's hardware virtualization
    extensions to the x86 architecture. The driver adds a character device
    (/dev/kvm) that exposes the virtualization capabilities to userspace. Using
    this driver, a process can run a virtual machine (a "guest") in a fully
    virtualized PC containing its own virtual hard disks, network adapters, and
    display.

    Using this driver, one can start multiple virtual machines on a host.

    Each virtual machine is a process on the host; a virtual cpu is a thread in
    that process. kill(1), nice(1), top(1) work as expected. In effect, the
    driver adds a third execution mode to the existing two: we now have kernel
    mode, user mode, and guest mode. Guest mode has its own address space mapping
    guest physical memory (which is accessible to user mode by mmap()ing
    /dev/kvm). Guest mode has no access to any I/O devices; any such access is
    intercepted and directed to user mode for emulation.

    The driver supports i386 and x86_64 hosts and guests. All combinations are
    allowed except x86_64 guest on i386 host. For i386 guests and hosts, both pae
    and non-pae paging modes are supported.

    SMP hosts and UP guests are supported. At the moment only Intel
    hardware is supported, but AMD virtualization support is being worked on.

    Performance currently is non-stellar due to the naive implementation of the
    mmu virtualization, which throws away most of the shadow page table entries
    every context switch. We plan to address this in two ways:

    - cache shadow page tables across tlb flushes
    - wait until AMD and Intel release processors with nested page tables

    Currently a virtual desktop is responsive but consumes a lot of CPU. Under
    Windows I tried playing pinball and watching a few flash movies; with a recent
    CPU one can hardly feel the virtualization. Linux/X is slower, probably due
    to X being in a separate process.

    In addition to the driver, you need a slightly modified qemu to provide I/O
    device emulation and the BIOS.

    Caveats (akpm: might no longer be true):

    - The Windows install currently bluescreens due to a problem with the
    virtual APIC. We are working on a fix. A temporary workaround is to
    use an existing image or install through qemu
    - Windows 64-bit does not work. That's also true for qemu, so it's
    probably a problem with the device model.

    [bero@arklinux.org: build fix]
    [simon.kagstrom@bth.se: build fix, other fixes]
    [uril@qumranet.com: KVM: Expose interrupt bitmap]
    [akpm@osdl.org: i386 build fix]
    [mingo@elte.hu: i386 fixes]
    [rdreier@cisco.com: add log levels to all printks]
    [randy.dunlap@oracle.com: Fix sparse NULL and C99 struct init warnings]
    [anthony@codemonkey.ws: KVM: AMD SVM: 32-bit host support]
    Signed-off-by: Yaniv Kamay
    Signed-off-by: Avi Kivity
    Cc: Simon Kagstrom
    Cc: Bernhard Rosenkraenzer
    Signed-off-by: Uri Lublin
    Cc: Ingo Molnar
    Cc: Roland Dreier
    Signed-off-by: Randy Dunlap
    Signed-off-by: Anthony Liguori
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Avi Kivity
     
  • Mostly changing alignment. Just some general cleanup.

    [akpm@osdl.org: build fix]
    Signed-off-by: Daniel Walker
    Acked-by: John Stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Walker
     
  • Introduce a round_jiffies() function as well as a round_jiffies_relative()
    function. These functions round a jiffies value to the next whole second.
    The primary purpose of this rounding is to cause all "we don't care exactly
    when" timers to happen at the same jiffy.

    This avoids multiple timers firing within the second for no real reason;
    with dynamic ticks these extra timers cause wakeups from deep sleep CPU
    sleep states and thus waste power.

    The exact wakeup moment is skewed by the cpu number, to avoid all cpus from
    waking up at the exact same time (and hitting the same lock/cachelines
    there)

    [akpm@osdl.org: fix variable type]
    Signed-off-by: Arjan van de Ven
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     
  • This patch provides an improved fdtable allocation scheme, useful for
    expanding fdtable file descriptor entries. The main focus is on the fdarray,
    as its memory usage grows 128 times faster than that of an fdset.

    The allocation algorithm sizes the fdarray in such a way that its memory usage
    increases in easy page-sized chunks. The overall algorithm expands the allowed
    size in powers of two, in order to amortize the cost of invoking vmalloc() for
    larger allocation sizes. Namely, the following sizes for the fdarray are
    considered, and the smallest that accommodates the requested fd count is
    chosen:

    pagesize / 4
    pagesize / 2
    pagesize open_fds is now used as the anchor for the
    fdset memory allocation.

    Signed-off-by: Vadim Lobanov
    Cc: Christoph Hellwig
    Cc: Al Viro
    Cc: Dipankar Sarma
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vadim Lobanov
     
  • An fdtable can either be embedded inside a files_struct or standalone (after
    being expanded). When an fdtable is being discarded after all RCU references
    to it have expired, we must either free it directly, in the standalone case,
    or free the files_struct it is contained within, in the embedded case.

    Currently the free_files field controls this behavior, but we can get rid of
    it entirely, as all the necessary information is already recorded. We can
    distinguish embedded and standalone fdtables using max_fds, and if it is
    embedded we can divine the relevant files_struct using container_of().

    Signed-off-by: Vadim Lobanov
    Cc: Christoph Hellwig
    Cc: Al Viro
    Cc: Dipankar Sarma
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vadim Lobanov
     
  • Currently, each fdtable supports three dynamically-sized arrays of data: the
    fdarray and two fdsets. The code allows the number of fds supported by the
    fdarray (fdtable->max_fds) to differ from the number of fds supported by each
    of the fdsets (fdtable->max_fdset).

    In practice, it is wasteful for these two sizes to differ: whenever we hit a
    limit on the smaller-capacity structure, we will reallocate the entire fdtable
    and all the dynamic arrays within it, so any delta in the memory used by the
    larger-capacity structure will never be touched at all.

    Rather than hogging this excess, we shouldn't even allocate it in the first
    place, and keep the capacities of the fdarray and the fdsets equal. This
    patch removes fdtable->max_fdset. As an added bonus, most of the supporting
    code becomes simpler.

    Signed-off-by: Vadim Lobanov
    Cc: Christoph Hellwig
    Cc: Al Viro
    Cc: Dipankar Sarma
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vadim Lobanov
     
  • If a bypass-the-cache read fails, we simply try again through the cache. If
    it fails again it will trigger normal recovery precedures.

    update 1:

    From: NeilBrown

    1/
    chunk_aligned_read and retry_aligned_read assume that
    data_disks == raid_disks - 1
    which is not true for raid6.
    So when an aligned read request bypasses the cache, we can get the wrong data.

    2/ The cloned bio is being used-after-free in raid5_align_endio
    (to test BIO_UPTODATE).

    3/ We forgot to add rdev->data_offset when submitting
    a bio for aligned-read

    4/ clone_bio calls blk_recount_segments and then we change bi_bdev,
    so we need to invalidate the segment counts.

    5/ We don't de-reference the rdev when the read completes.
    This means we need to record the rdev to so it is still
    available in the end_io routine. Fortunately
    bi_next in the original bio is unused at this point so
    we can stuff it in there.

    6/ We leak a cloned bio if the target rdev is not usable.

    From: NeilBrown

    update 2:

    1/ When aligned requests fail (read error) they need to be retried
    via the normal method (stripe cache). As we cannot be sure that
    we can process a single read in one go (we may not be able to
    allocate all the stripes needed) we store a bio-being-retried
    and a list of bioes-that-still-need-to-be-retried.
    When find a bio that needs to be retried, we should add it to
    the list, not to single-bio...

    2/ We were never incrementing 'scnt' when resubmitting failed
    aligned requests.

    [akpm@osdl.org: build fix]
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Raz Ben-Jehuda(caro)
     
  • The ESB2 appears to emit spurious DMA interrupts when configured for native
    mode and handling ATAPI devices. Stratus were able to pin this bug down and
    produce a patch. This is a rework which applies the fixup only to the ESB2
    (for now). We can apply it to other chips later if the same problem is found.

    This code has been tested and confirmed to fix the problem on the tested
    systems.

    Signed-off-by: Alan Cox
    (Most of the hard work done by Stratus however)
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Remove scheduler stats lb_stopbalance counter. This counter can be
    calculated by: lb_balanced - lb_nobusyg - lb_nobusyq. There is no need to
    create gazillion counters while we can derive the value.

    Signed-off-by: Ken Chen
    Signed-off-by: Suresh Siddha
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen, Kenneth W
     
  • Currently at a particular domain, each cpu in the sched group will do a
    load balance at the frequency of balance_interval. More the cores and
    threads, more the cpus will be in each sched group at SMP and NUMA domain.
    And we endup spending quite a bit of time doing load balancing in those
    domains.

    Fix this by making only one cpu(first idle cpu or first cpu in the group if
    all the cpus are busy) in the sched group do the load balance at that
    particular sched domain and this load will slowly percolate down to the
    other cpus with in that group(when they do load balancing at lower
    domains).

    Signed-off-by: Suresh Siddha
    Cc: Christoph Lameter
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Siddha, Suresh B
     
  • Large sched domains can be very expensive to scan. Add an option SD_SERIALIZE
    to the sched domain flags. If that flag is set then we make sure that no
    other such domain is being balanced.

    [akpm@osdl.org: build fix]
    Signed-off-by: Christoph Lameter
    Cc: Peter Williams
    Cc: Nick Piggin
    Cc: Christoph Lameter
    Cc: "Siddha, Suresh B"
    Cc: "Chen, Kenneth W"
    Acked-by: Ingo Molnar
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Call rebalance_tick (renamed to run_rebalance_domains) from a newly introduced
    softirq.

    We calculate the earliest time for each layer of sched domains to be rescanned
    (this is the rescan time for idle) and use the earliest of those to schedule
    the softirq via a new field "next_balance" added to struct rq.

    Signed-off-by: Christoph Lameter
    Cc: Peter Williams
    Cc: Nick Piggin
    Cc: Christoph Lameter
    Cc: "Siddha, Suresh B"
    Cc: "Chen, Kenneth W"
    Acked-by: Ingo Molnar
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • With SMT, if the logical processor is busy, load balance happens for every
    8msec(min)-16msec(max). There is no need to do this often, as this is just
    for fairness(to maintain uniform runqueue lengths) and default time slice
    anyhow is 100msec.

    Appended patch increases this interval to 64msec(min)-128msec(max) when the
    logical processor is busy.

    Signed-off-by: Suresh Siddha
    Cc: Nick Piggin
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Siddha, Suresh B
     
  • Deliver IO accounting via taskstats.

    Cc: Jay Lan
    Cc: Shailabh Nagar
    Cc: Balbir Singh
    Cc: Chris Sturtivant
    Cc: Tony Ernst
    Cc: Guillaume Thouvenin
    Cc: David Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Fix weird whitespace mangling in taskstats.h

    Cc: Jay Lan
    Cc: Shailabh Nagar
    Cc: Balbir Singh
    Cc: Chris Sturtivant
    Cc: Tony Ernst
    Cc: Guillaume Thouvenin
    Cc: David Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton