29 Jul, 2008

18 commits

  • 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
     
  • Ron Minnich noticed that guest userspace gets a GPF when it tries to int3:
    we need to copy the privilege level from the guest-supplied IDT to the real
    IDT. int3 is the only common case where guest userspace expects to invoke
    an interrupt, so that's the symptom of failing to do this.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • 6af61a7614a306fe882a0c2b4ddc63b65aa66efc 'x86: clean up max_pfn_mapped
    usage - 32-bit' makes the following comment:

    XEN PV and lguest may need to assign max_pfn_mapped too.

    But no CC. Yinghai, wasting fellow developers' time is a VERY bad
    habit. If you do it again, I will hunt you down and try to extract
    the three hours of my life I just lost :)

    Signed-off-by: Rusty Russell
    Cc: Yinghai Lu

    Rusty Russell
     
  • * 'cpus4096-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    cpu masks: optimize and clean up cpumask_of_cpu()
    cpumask: export cpumask_of_cpu_map
    cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu
    cpumask: put cpumask_of_cpu_map in the initdata section
    cpumask: make cpumask_of_cpu_map generic

    Linus Torvalds
     
  • There's a brown paper bag compile failure introduced by this patch

    commit a01386924874c4d6d67f8a34e66f04452c2abb69
    Author: David Sterba
    Date: Mon Jul 28 16:53:32 2008 +0200

    ipwireless: Preallocate received packet buffers with MRU size

    Really, it can't ever have been even compile tested. It looks like the
    closing bracket is in the wrong place, so this is the fix.

    Signed-off-by: James Bottomley
    Signed-off-by: Linus Torvalds

    James Bottomley
     
  • Conflicts:

    kernel/stop_machine.c

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Clean up and optimize cpumask_of_cpu(), by sharing all the zero words.

    Instead of stupidly generating all possible i=0...NR_CPUS 2^i patterns
    creating a huge array of constant bitmasks, realize that the zero words
    can be shared.

    In other words, on a 64-bit architecture, we only ever need 64 of these
    arrays - with a different bit set in one single world (with enough zero
    words around it so that we can create any bitmask by just offsetting in
    that big array). And then we just put enough zeroes around it that we
    can point every single cpumask to be one of those things.

    So when we have 4k CPU's, instead of having 4k arrays (of 4k bits each,
    with one bit set in each array - 2MB memory total), we have exactly 64
    arrays instead, each 8k bits in size (64kB total).

    And then we just point cpumask(n) to the right position (which we can
    calculate dynamically). Once we have the right arrays, getting
    "cpumask(n)" ends up being:

    static inline const cpumask_t *get_cpu_mask(unsigned int cpu)
    {
    const unsigned long *p = cpu_bit_bitmap[1 + cpu % BITS_PER_LONG];
    p -= cpu / BITS_PER_LONG;
    return (const cpumask_t *)p;
    }

    This brings other advantages and simplifications as well:

    - we are not wasting memory that is just filled with a single bit in
    various different places

    - we don't need all those games to re-create the arrays in some dense
    format, because they're already going to be dense enough.

    if we compile a kernel for up to 4k CPU's, "wasting" that 64kB of memory
    is a non-issue (especially since by doing this "overlapping" trick we
    probably get better cache behaviour anyway).

    [ mingo@elte.hu:

    Converted Linus's mails into a commit. See:

    http://lkml.org/lkml/2008/7/27/156
    http://lkml.org/lkml/2008/7/28/320

    Also applied a family filter - which also has the side-effect of leaving
    out the bits where Linus calls me an idio... Oh, never mind ;-)
    ]

    Signed-off-by: Ingo Molnar
    Cc: Rusty Russell
    Cc: Andrew Morton
    Cc: Al Viro
    Cc: Mike Travis
    Signed-off-by: Ingo Molnar

    Linus Torvalds
     
  • Ingo Molnar
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: add driver for Atmel integrated touchscreen controller
    Input: ads7846 - optimize order of calculating Rt in ads7846_rx()
    Input: ads7846 - fix sparse endian warnings
    Input: uinput - remove duplicate include
    Input: serio - offload resume to kseriod
    Input: serio - mark serio_register_driver() __must_check

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
    dlm: fix uninitialized variable for search_rsb_list callers
    dlm: release socket on error
    dlm: fix basts for granted CW waiting PR/CW
    dlm: check for null in device_write

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (25 commits)
    powerpc: Disable 64K hugetlb support when doing 64K SPU mappings
    powerpc/powermac: Fixup default serial port device for pmac_zilog
    powerpc/powermac: Use sane default baudrate for SCC debugging
    powerpc/mm: Implement _PAGE_SPECIAL & pte_special() for 64-bit
    powerpc: Show processor cache information in sysfs
    powerpc: Make core id information available to userspace
    powerpc: Make core sibling information available to userspace
    powerpc/vio: More fallout from dma_mapping_error API change
    ibmveth: Fix multiple errors with dma_mapping_error conversion
    powerpc/pseries: Fix CMO sysdev attribute API change fallout
    powerpc: Enable tracehook for the architecture
    powerpc: Add TIF_NOTIFY_RESUME support for tracehook
    powerpc: Add asm/syscall.h with the tracehook entry points
    powerpc: Make syscall tracing use tracehook.h helpers
    powerpc: Call tracehook_signal_handler() when setting up signal frames
    powerpc: Update cpu_sibling_maps dynamically
    powerpc: register_cpu_online should be __cpuinit
    powerpc: kill useless SMT code in prom_hold_cpus
    powerpc: Fix 8xx build failure
    powerpc: Fix vio build warnings
    ...

    Linus Torvalds
     

28 Jul, 2008

22 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/ISDN-2.6:
    Remove deprecated virt_to_bus()

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (72 commits)
    sh: SuperH Mobile CEU and camera platform data for AP325RXA
    sh: Update smc911x platform data for AP325RXA
    sh: SuperH Mobile LCDC platform data for AP325RXA
    sh: Add SuperH Mobile CEU platform data for Migo-R
    sh: Add SuperH Mobile LCDC platform data for Migo-R
    sh: Move asid_cache() out of ifdef to fix SH-3/4 nommu build.
    sh: Workaround for __put_user_asm() bug with gcc 4.x on big-endian.
    sh: Wire up new syscalls.
    sh: fix uImage Entry Point
    sh_keysc: remove request_mem_region() and release_mem_region()
    sh: Don't miss pending signals returning to user mode after signal processing
    sh: Use clk_always_enable() on sh7366
    sh: Use clk_always_enable() on sh7343 / SE77343
    sh: Use clk_always_enable() on sh7722 / Migo-R / SE7722
    sh: Use clk_always_enable() on sh7723 / ap325rxa
    sh: Introduce clk_always_enable() function
    sh: Show all clocks and their state in /proc/clocks
    sh: Merge sh7343 and sh7722 clock code
    sh: Add SuperH Mobile MSTPCR bits to clock framework
    sh: Use arch_flags to simplify sh7722 siu clock code
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    stop_machine: fix up ftrace.c
    stop_machine: Wean existing callers off stop_machine_run()
    stop_machine(): stop_machine_run() changed to use cpu mask
    Hotplug CPU: don't check cpu_online after take_cpu_down
    Simplify stop_machine
    stop_machine: add ALL_CPUS option
    module: fix build warning with !CONFIG_KALLSYMS

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (98 commits)
    V4L/DVB (8549): mxl5007: Fix an error at include file
    V4L/DVB (8548): pwc: Fix compilation
    V4L/DVB (8546): add tuner-3036 and dpc7146 drivers to feature-removal-schedule.txt
    V4L/DVB (8546): saa7146: fix read from uninitialized memory
    V4L/DVB (8544): gspca: probe/open race.
    V4L/DVB (8543): em28xx: Rename #define for Compro VideoMate ForYou/Stereo
    V4L/DVB (8542): em28xx: AMD ATI TV Wonder HD 600 entry at cards struct is duplicated
    V4L/DVB (8541): em28xx: HVR-950 entry is duplicated.
    V4L/DVB (8540): em28xx-cards: Add Compro VideoMate ForYou/Stereo model
    V4L/DVB (8539): em28xx-cards: New supported IDs for analog models
    V4L/DVB (8538): em28xx-cards: Add GrabBeeX+ USB2800 model
    V4L/DVB (8534): remove select's of FW_LOADER
    V4L/DVB (8522): videodev2: Fix merge conflict
    V4L/DVB (8532): mxl5007t: remove excessive locks
    V4L/DVB (8531): mxl5007t: move i2c gate handling outside of mutex protected code blocks
    V4L/DVB (8530): au0828: add support for new revision of HVR950Q
    V4L/DVB (8529): mxl5007t: enable _init and _sleep power management functionality
    V4L/DVB (8528): add support for MaxLinear MxL5007T silicon tuner
    V4L/DVB (8526): saa7146: fix VIDIOC_ENUM_FMT
    V4L/DVB (8525): fix a few assorted spelling mistakes.
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc: Set CONFIG_HAVE_ARCH_TRACEHOOK
    sparc: Add task_pt_regs().
    sparc: Add call to tracehook_signal_handler().
    sparc: Create and use TIF_NOTIFY_RESUME.
    sparc: Use tracehook routines in syscall_trace().
    sparc64: tracehook: CONFIG_HAVE_ARCH_TRACEHOOK
    sparc: Add user_stack_pointer().
    sparc64: tracehook_signal_handler
    sparc64: tracehook: TIF_NOTIFY_RESUME
    sparc: Add asm/syscall.h
    sparc64: tracehook syscall
    sparc: enable headers_export again
    sparc, sparc64: use arch/sparc/include

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    net: missing bits of net-namespace / sysctl
    ipcomp: Fix warnings after ipcomp consolidation.
    dccp: Add check for truncated ICMPv6 DCCP error packets
    dccp: Fix incorrect length check for ICMPv4 packets
    dccp: Add check for sequence number in ICMPv6 message
    dccp: Fix sequence number check for ICMPv4 packets
    dccp: Bug-Fix - AWL was never updated
    dccp: Allow to distinguish original and retransmitted packets

    Linus Torvalds
     
  • Add git pull command info and diffstat summary info so that we don't
    have to search email archives for it repeatedly.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Noticed because of this warning:

    drivers/base/memory.c:279: warning: initialization from incompatible pointer type

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • pm_idle_save resp. pm_idle_old can be NULL when the restore code in
    acpi_processor_cst_has_changed() resp. cpuidle_uninstall_idle_handler()
    is called. This can set pm_idle unconditinally to NULL, which causes the
    kernel to panic when calling pm_idle in the x86 idle code. This was
    covered by an extra check for !pm_idle in the x86 idle code, which was
    removed during the x86 idle code refactoring.

    Instead of restoring the pm_idle check in the x86 code prevent the
    acpi/cpuidle code to set pm_idle to NULL.

    Reported by: Dhaval Giani http://lkml.org/lkml/2008/7/2/309
    Based on a debug patch from Ingo Molnar

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • * 'i2c-for-linus' of git://aeryn.fluff.org.uk/bjdooks/linux:
    i2c: Blackfin I2C Driver: Functional power management support
    i2c: Documentation: upgrading clients HOWTO
    i2c: S3C24XX I2C frequency scaling support.
    i2c: i2c_gpio: keep probe resident for hotplugged devices.
    i2c: S3C2410: Pass the I2C bus number via drivers platform data

    Linus Torvalds
     
  • ipwireless: Preallocate received packet buffers with MRU size

    Packets are assembled from link size (~300 bytes) up to PPP MRU
    (1500 by default). Try to preallocate full size rather than
    repeatedly advance buffer size by 256 bytes.

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Put packets to pool start

    Put packets to pool start, try to reuse cached memory.

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Increase PPP outgoing queue size

    Increase default size of PPP outgoing queue. Currently set to 1, which
    means that a packet quickly following another pushed by PPP must wait
    until hardware actually sends the previous and PPP has to be waken up
    by ppp_wakeup(). This slows down upstream.

    Now PPP can push more packets at once which get buffered inside driver
    and pushed immediatelly to hardware when previous packet is out.

    Experiments show that size = 10 is quite good for all connection types
    (GPRS/EDGE/UMTS) and gains 4 KB/sec of upload for UMTS for batch uploads.
    Need for higher queue size than 10 occures in only < 0.1 % of cases.

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Explicitly request io and mem regions

    Documentation/pcmcia/driver-changes.txt says, that driver should call request_region
    for used memory/io regions since PCMCIA does not do this (since 2.6.8).

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Constify buffer variables

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Do not return value from sending funcs

    Do not return value from do_send_fragment and do_send_packet, it's not used.
    The packet size checks are not useful too:

    * zero length packet will never be sent, caller always passes packet_header
    size which is either 1 or 3
    * MTU check is done in caller, no need to repeat

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Remove endian-dependent bitfields

    Remove endian-dependent bitfields and use bitmasks to transform
    packet header bitfields from/to machine order.

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Glue splitted printk strings back

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Remove pt_regs from interrupt handler

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Rename spinlock variables to lock

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Remove unused defines

    Remove unused defines, defines hiding variables, defines hiding 0.

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • ipwireless: Misc cleanups

    - remove likely() and some extra () in ifs
    - use unsigned in for loops
    - remove useless typecasts
    - remove obvious comments
    - add () around ?:

    Signed-off-by: David Sterba
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    David Sterba