31 Jul, 2008

20 commits

  • It was pointed out that the RTC framework handles its mutex locks oddly
    ... returning -EBUSY when interrupted. This fixes that by returning the
    value of mutex_lock_interruptible() (i.e. -EINTR).

    Signed-off-by: David Brownell
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • The mutex is released on a successful return, so it would seem that it
    should be released on an error return as well.

    The semantic patch finds this problem is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    expression l;
    @@

    mutex_lock(l);
    ... when != mutex_unlock(l)
    when any
    when strict
    (
    if (...) { ... when != mutex_unlock(l)
    + mutex_unlock(l);
    return ...;
    }
    |
    mutex_unlock(l);
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Krzysztof Helt
    Acked-by: Ondrej Zajicek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • Static (read: global) is potential problem. Two threads can corrupt each
    other's interrupt status, better avoid this.

    Signed-off-by: Alexey Dobriyan
    Cc: Wim Van Sebroeck
    Cc: Thomas Mingarelli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Exporting __init functions is wrong.

    Signed-off-by: Jan Beulich
    Acked-by: Konrad Rzeszutek
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     
  • It seems that we need to ensure that the lcd is powered up at start,
    otherwise we do not see a display.

    Signed-off-by: Ben Dooks
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Use cpuset.stack_list rather than kfifo, so we avoid memory allocation
    for kfifo.

    Signed-off-by: Li Zefan
    Signed-off-by: Lai Jiangshan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Cc: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • When multiple cpusets are overlapping in their 'cpus' and hence they
    form a single sched domain, the largest sched_relax_domain_level among
    those should be used. But when top_cpuset's sched_load_balance is
    set, its sched_relax_domain_level is used regardless other sub-cpusets'.

    This patch fixes it by walking the cpuset hierarchy to find the largest
    sched_relax_domain_level.

    Signed-off-by: Lai Jiangshan
    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Reviewed-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • All child cpusets contain a subset of the parent's cpus, so we can skip
    them when partitioning sched domains. This decreases 'csa' greately for
    cpusets with multi-level hierarchy.

    Signed-off-by: Lai Jiangshan
    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Reviewed-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lai Jiangshan
     
  • clean up hierarchy traversal code

    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Cc: Paul Jackson
    Cc: Cliff Wickman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • It's guaranteed by cgroup that old_cgrp != cgrp.

    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Acked-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • It's not small enough, and has 2 call sites.

    text data bss dec hex filename
    12813 1676 4832 19321 4b79 cgroup.o.orig
    12775 1676 4832 19283 4b53 cgroup.o

    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • - just call free_cg_links() in allocate_cg_links()
    - the list will get initialized in allocate_cg_links(), so don't init
    it twice

    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • There's a leak if copy_from_user() returns failure.

    Signed-off-by: Li Zefan
    Cc: Paul Menage
    Cc: Cedric Le Goater
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • It has no user now

    Also print out info about adding/removing active regions.

    Signed-off-by: Yinghai Lu
    Acked-by: Mel Gorman
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • This commit:

    commit ba52de123d454b57369f291348266d86f4b35070
    Author: Theodore Ts'o
    Date: Wed Sep 27 01:50:49 2006 -0700

    [PATCH] inode-diet: Eliminate i_blksize from the inode structure

    caused the block size used by pseudo-filesystems to decrease from
    PAGE_SIZE to 1024 leading to a doubling of the number of context switches
    during a kernbench run.

    Signed-off-by: Alex Nixon
    Cc: Andi Kleen
    Cc: Jeremy Fitzhardinge
    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Ian Campbell
    Cc: "Theodore Ts'o"
    Cc: Alexander Viro
    Cc: Hugh Dickins
    Cc: Jens Axboe
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Nixon
     
  • On HPPA there exists some older GSC graphics cards, which need special
    graphic-card-BIOS patching to become supported. Since we don't have yet
    implemented the patching, it's better to detect such cards in advance,
    inform to the user that there are known problems and to not activate the
    card.

    Problematic GSC cards and BIOS versions are:
    * Hyperdrive/Hyperbowl (A4071A) graphics card series:
    * ID = 0x2BCB015A (Version 8.04/8)
    * ID = 0x2BCB015A (Version 8.04/11)
    * Thunder 1 VISUALIZE 48 card:
    * ID = 0x2F23E5FC (Version 8.05/9)
    * Thunder 2 VISUALIZE 48 XP card:
    * ID = 0x2F8D570E (Version 8.05/12)
    * Some Hyperion and ThunderHawk GSC cards

    Further details are described here:
    http://parisc-linux.org/faq/graphics-howto.html

    Signed-off-by: Helge Deller
    Cc: Kyle McMartin
    Cc: Krzysztof Helt
    Cc: "Antonino A. Daplas"
    Cc: Grant Grundler
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Helge Deller
     
  • Signed-off-by: Thomas Renninger
    Cc: Andi Kleen
    Cc: Len Brown
    Cc: Dave Jones
    Cc: Ingo Molnar
    Cc: Venkatesh Pallipadi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Renninger
     
  • Ingo Molnar provided a fix to not call _PPC at processor driver
    initialization time in "[PATCH] ACPI: fix cpufreq regression" (git
    commit e4233dec749a3519069d9390561b5636a75c7579)

    But it can still happen that _PPC is called at processor driver
    initialization time.

    This patch should make sure that this is not possible anymore.

    Signed-off-by: Thomas Renninger
    Cc: Andi Kleen
    Cc: Len Brown
    Cc: Dave Jones
    Cc: Ingo Molnar
    Cc: Venkatesh Pallipadi
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Renninger
     
  • Avoid one-off errors by introducing a resource_size() function.

    Signed-off-by: Magnus Damm
    Cc: Ben Dooks
    Cc: Jean Delvare
    Cc: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     
  • When registering an platform_lcd, use the name of the platform device
    specified in case there are more than one platform_lcd backlights
    registered.

    Signed-off-by: Ben Dooks
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     

29 Jul, 2008

20 commits

  • Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    lguest: turn Waker into a thread, not a process
    lguest: Enlarge virtio rings
    lguest: Use GSO/IFF_VNET_HDR extensions on tun/tap
    lguest: Remove 'network: no dma buffer!' warning
    lguest: Adaptive timeout
    lguest: Tell Guest net not to notify us on every packet xmit
    lguest: net block unneeded receive queue update notifications
    lguest: wrap last_avail accesses.
    lguest: use cpu capability accessors
    lguest: virtio-rng support
    lguest: Support assigning a MAC address
    lguest: Don't leak /dev/zero fd
    lguest: fix verbose printing of device features.
    lguest: fix switcher_page leak on unload
    lguest: Guest int3 fix
    lguest: set max_pfn_mapped, growl loudly at Yinghai Lu

    Linus Torvalds
     
  • * 'for-linus' of git://git.o-hand.com/linux-mfd:
    mfd: accept pure device as a parent, not only platform_device
    mfd: add platform_data to mfd_cell
    mfd: Coding style fixes
    mfd: Use to_platform_device instead of container_of

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (21 commits)
    x86/PCI: use dev_printk when possible
    PCI: add D3 power state avoidance quirk
    PCI: fix bogus "'device' may be used uninitialized" warning in pci_slot
    PCI: add an option to allow ASPM enabled forcibly
    PCI: disable ASPM on pre-1.1 PCIe devices
    PCI: disable ASPM per ACPI FADT setting
    PCI MSI: Don't disable MSIs if the mask bit isn't supported
    PCI: handle 64-bit resources better on 32-bit machines
    PCI: rewrite PCI BAR reading code
    PCI: document pci_target_state
    PCI hotplug: fix typo in pcie hotplug output
    x86 gart: replace to_pages macro with iommu_num_pages
    x86, AMD IOMMU: replace to_pages macro with iommu_num_pages
    iommu: add iommu_num_pages helper function
    dma-coherent: add documentation to new interfaces
    Cris: convert to using generic dma-coherent mem allocator
    Sh: use generic per-device coherent dma allocator
    ARM: support generic per-device coherent dma mem
    Generic dma-coherent: fix DMA_MEMORY_EXCLUSIVE
    x86: use generic per-device dma coherent allocator
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] qla2xxx: fix msleep compile error

    Linus Torvalds
     
  • Alexey Dobriyan reported trouble with LTP with the new fast-gup code,
    and Johannes Weiner debugged it to non-page-aligned addresses, where the
    new get_user_pages_fast() code would do all the wrong things, including
    just traversing past the end of the requested area due to 'addr' never
    matching 'end' exactly.

    This is not a pretty fix, and we may actually want to move the alignment
    into generic code, leaving just the core code per-arch, but Alexey
    verified that the vmsplice01 LTP test doesn't crash with this.

    Reported-and-tested-by: Alexey Dobriyan
    Debugged-by: Johannes Weiner
    Cc: Nick Piggin
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • lguest uses a Waker process to break it out of the kernel (ie.
    actually running the guest) when file descriptor needs attention.

    Changing this from a process to a thread somewhat simplifies things:
    it can directly access the fd_set of things to watch. More
    importantly, it means that the Waker can see Guest memory correctly,
    so /dev/vring file descriptors will work as anticipated (the
    alternative is to actually mmap MAP_SHARED, but you can't do that with
    /dev/zero).

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • With big packets, 128 entries is a little small.

    Guest -> Host 1GB TCP:
    Before: 8.43625 seconds xmit 95640 recv 198266 timeout 49771 usec 1252
    After: 8.01099 seconds xmit 49200 recv 102263 timeout 26014 usec 2118

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Guest -> Host 1GB TCP:
    Before 20.1974 seconds xmit 214510 recv 5 timeout 214491 usec 278
    After 8.43625 seconds xmit 95640 recv 198266 timeout 49771 usec 1252

    Host -> Guest 1GB TCP:
    Before: Seconds 9.98854 xmit 172166 recv 5344 timeout 172157 usec 251
    After: Seconds 5.72803 xmit 244322 recv 9919 timeout 244302 usec 156

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • This warning can happen a lot under load, and it should be warnx not
    warn anwyay.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Since the correct timeout value varies, use a heuristic which adjusts
    the timeout depending on how many packets we've seen. This gives
    slightly worse results, but doesn't need tweaking when GSO is
    introduced.

    500 usec 19.1887 xmit 561141 recv 1 timeout 559657
    Dynamic (278) 20.1974 xmit 214510 recv 5 timeout 214491 usec 278

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • virtio_ring has the ability to suppress notifications. This prevents
    a guest exit for every packet, but we need to set a timer on packet
    receipt to re-check if there were any remaining packets.

    Here are the times for 1G TCP Guest->Host with different timeout
    settings (it matters because the TCP window doesn't grow big enough to
    fill the entire buffer):

    Timeout value Seconds Xmit/Recv/Timeout
    None (before) 25.3784 xmit 7750233 recv 1
    2500 usec 62.5119 xmit 207020 recv 2 timeout 207020
    1000 usec 34.5379 xmit 207003 recv 2 timeout 207003
    750 usec 29.2305 xmit 207002 recv 1 timeout 207002
    500 usec 19.1887 xmit 561141 recv 1 timeout 559657
    250 usec 20.0465 xmit 214128 recv 2 timeout 214110
    100 usec 19.2583 xmit 561621 recv 1 timeout 560153

    (Note that these values are sensitive to the GSO patches which come
    later, and probably other traffic-related variables, so take with a
    large grain of salt).

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Number of exits transmitting 10GB Guest->Host before:
    network xmit 7858610 recv 118136

    After:
    network xmit 7750233 recv 1

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • To simplify the transition to when we publish indices in the ring
    (and make shuffling my patch queue easier), wrap them in a lg_last_avail()
    macro.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • To support my little make-x86-bitops-use-proper-typechecking projectlet.

    Cc: Thomas Gleixner
    Cc: Andrea Arcangeli
    Signed-off-by: Andrew Morton
    Acked-by: Ingo Molnar
    Signed-off-by: Rusty Russell

    Andrew Morton
     
  • This is a simple patch to add support for the virtio "hardware random
    generator" to lguest. It gets about 1.2 MB/sec reading from /dev/hwrng
    in the guest.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • If you've got a nice DHCP configuration which maps MAC
    addresses to specific IP addresses, then you're going to
    want to start your guest with one of those MAC addresses.

    Also, in Fedora, we have persistent network interface naming
    based on the MAC address, so with randomly assigned
    addresses you're soon going to hit eth13. Who knows what
    will happen then!

    Allow assigning a MAC address to the network interface with
    e.g.

    --tunnet=bridge:eth0:00:FF:95:6B:DA:3D

    or:

    --tunnet=192.168.121.1:00:FF:95:6B:DA:3D

    which is pretty unintelligable, but ...

    (includes Rusty's minor rework)

    Signed-off-by: Mark McLoughlin
    Signed-off-by: Rusty Russell

    Mark McLoughlin
     
  • Signed-off-by: Mark McLoughlin
    Signed-off-by: Rusty Russell

    Mark McLoughlin
     
  • %02x is more appropriate for bytes than %08x.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • map_switcher allocates the array, unmap_switcher has to free it
    accordingly.

    Signed-off-by: Johannes Weiner
    Signed-off-by: Rusty Russell

    Johannes Weiner