25 May, 2012

24 commits

  • Pull KVM changes from Avi Kivity:
    "Changes include additional instruction emulation, page-crossing MMIO,
    faster dirty logging, preventing the watchdog from killing a stopped
    guest, module autoload, a new MSI ABI, and some minor optimizations
    and fixes. Outside x86 we have a small s390 and a very large ppc
    update.

    Regarding the new (for kvm) rebaseless workflow, some of the patches
    that were merged before we switch trees had to be rebased, while
    others are true pulls. In either case the signoffs should be correct
    now."

    Fix up trivial conflicts in Documentation/feature-removal-schedule.txt
    arch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.

    I suspect the kvm_para.h resolution ends up doing the "do I have cpuid"
    check effectively twice (it was done differently in two different
    commits), but better safe than sorry ;)

    * 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)
    KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block
    KVM: s390: onereg for timer related registers
    KVM: s390: epoch difference and TOD programmable field
    KVM: s390: KVM_GET/SET_ONEREG for s390
    KVM: s390: add capability indicating COW support
    KVM: Fix mmu_reload() clash with nested vmx event injection
    KVM: MMU: Don't use RCU for lockless shadow walking
    KVM: VMX: Optimize %ds, %es reload
    KVM: VMX: Fix %ds/%es clobber
    KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()
    KVM: VMX: unlike vmcs on fail path
    KVM: PPC: Emulator: clean up SPR reads and writes
    KVM: PPC: Emulator: clean up instruction parsing
    kvm/powerpc: Add new ioctl to retreive server MMU infos
    kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM
    KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler
    KVM: PPC: Book3S: Enable IRQs during exit handling
    KVM: PPC: Fix PR KVM on POWER7 bare metal
    KVM: PPC: Fix stbux emulation
    KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields
    ...

    Linus Torvalds
     
  • Pull Xen updates from Konrad Rzeszutek Wilk:
    "Features:
    * Extend the APIC ops implementation and add IRQ_WORKER vector
    support so that 'perf' can work properly.
    * Fix self-ballooning code, and balloon logic when booting as initial
    domain.
    * Move array printing code to generic debugfs
    * Support XenBus domains.
    * Lazily free grants when a domain is dead/non-existent.
    * In M2P code use batching calls
    Bug-fixes:
    * Fix NULL dereference in allocation failure path (hvc_xen)
    * Fix unbinding of IRQ_WORKER vector during vCPU hot-unplug
    * Fix HVM guest resume - we would leak an PIRQ value instead of
    reusing the existing one."

    Fix up add-add onflicts in arch/x86/xen/enlighten.c due to addition of
    apic ipi interface next to the new apic_id functions.

    * tag 'stable/for-linus-3.5-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: do not map the same GSI twice in PVHVM guests.
    hvc_xen: NULL dereference on allocation failure
    xen: Add selfballoning memory reservation tunable.
    xenbus: Add support for xenbus backend in stub domain
    xen/smp: unbind irqworkX when unplugging vCPUs.
    xen: enter/exit lazy_mmu_mode around m2p_override calls
    xen/acpi/sleep: Enable ACPI sleep via the __acpi_os_prepare_sleep
    xen: implement IRQ_WORK_VECTOR handler
    xen: implement apic ipi interface
    xen/setup: update VA mapping when releasing memory during setup
    xen/setup: Combine the two hypercall functions - since they are quite similar.
    xen/setup: Populate freed MFNs from non-RAM E820 entries and gaps to E820 RAM
    xen/setup: Only print "Freeing XXX-YYY pfn range: Z pages freed" if Z > 0
    xen/gnttab: add deferred freeing logic
    debugfs: Add support to print u32 array in debugfs
    xen/p2m: An early bootup variant of set_phys_to_machine
    xen/p2m: Collapse early_alloc_p2m_middle redundant checks.
    xen/p2m: Allow alloc_p2m_middle to call reserve_brk depending on argument
    xen/p2m: Move code around to allow for better re-usage.

    Linus Torvalds
     
  • Pull sparc changes from David S. Miller:
    "This has the generic strncpy_from_user() implementation architectures
    can now use, which we've been developing on linux-arch over the past
    few days.

    For good measure I ran both a 32-bit and a 64-bit glibc testsuite run,
    and the latter of which pointed out an adjustment I needed to make to
    sparc's user_addr_max() definition. Linus, you were right, STACK_TOP
    was not the right thing to use, even on sparc itself :-)

    From Sam Ravnborg, we have a conversion of sparc32 over to the common
    alloc_thread_info_node(), since the aspect which originally blocked
    our doing so (sun4c) has been removed."

    Fix up trivial arch/sparc/Kconfig and lib/Makefile conflicts.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc: Fix user_addr_max() definition.
    lib: Sparc's strncpy_from_user is generic enough, move under lib/
    kernel: Move REPEAT_BYTE definition into linux/kernel.h
    sparc: Increase portability of strncpy_from_user() implementation.
    sparc: Optimize strncpy_from_user() zero byte search.
    sparc: Add full proper error handling to strncpy_from_user().
    sparc32: use the common implementation of alloc_thread_info_node()

    Linus Torvalds
     
  • Pull XFS update from Ben Myers:

    - Removal of xfsbufd
    - Background CIL flushes have been moved to a workqueue.
    - Fix to xfs_check_page_type applicable to filesystems where
    blocksize < page size
    - Fix for stale data exposure when extsize hints are used.
    - A series of xfs_buf cache cleanups.
    - Fix for XFS_IOC_ALLOCSP
    - Cleanups for includes and removal of xfs_lrw.[ch].
    - Moved all busy extent handling to it's own file so that it is easier
    to merge with userspace.
    - Fix for log mount failure.
    - Fix to enable inode reclaim during quotacheck at mount time.
    - Fix for delalloc quota accounting.
    - Fix for memory reclaim deadlock on agi buffer.
    - Fixes for failed writes and to clean up stale delalloc blocks.
    - Fix to use GFP_NOFS in blkdev_issue_flush
    - SEEK_DATA/SEEK_HOLE support

    * 'for-linus' of git://oss.sgi.com/xfs/xfs: (57 commits)
    xfs: add trace points for log forces
    xfs: fix memory reclaim deadlock on agi buffer
    xfs: fix delalloc quota accounting on failure
    xfs: protect xfs_sync_worker with s_umount semaphore
    xfs: introduce SEEK_DATA/SEEK_HOLE support
    xfs: make xfs_extent_busy_trim not static
    xfs: make XBF_MAPPED the default behaviour
    xfs: flush outstanding buffers on log mount failure
    xfs: Properly exclude IO type flags from buffer flags
    xfs: clean up xfs_bit.h includes
    xfs: move xfs_do_force_shutdown() and kill xfs_rw.c
    xfs: move xfs_get_extsz_hint() and kill xfs_rw.h
    xfs: move xfs_fsb_to_db to xfs_bmap.h
    xfs: clean up busy extent naming
    xfs: move busy extent handling to it's own file
    xfs: move xfsagino_t to xfs_types.h
    xfs: use iolock on XFS_IOC_ALLOCSP calls
    xfs: kill XBF_DONTBLOCK
    xfs: kill xfs_read_buf()
    xfs: kill XBF_LOCK
    ...

    Linus Torvalds
     
  • Pull more relocation fixes from Peter Anvin:
    "These are additional symbols that have been found to either be
    absolute or look like they might end up being absolute on one version
    of GNU ld or another. Unfortunately we have since that a different
    GNU ld version, 2.21, can generate bogus absolute symbols; again, this
    would have caused a malfunctioning kernel on x86-32 if relocated.

    The relocs.c changes changed silent corruption to a build time error.

    It is worth noting that if the various barrier symbols we use were
    more consistent in the namespace used this probably could be reduced
    to a single regexp; if nothing else it looks like there is migration
    toward a common __(start|stop)___.* namespace."

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, relocs: Add jiffies and jiffies_64 to the relative whitelist
    x86-32, relocs: Whitelist more symbols for ld bug workaround

    Linus Torvalds
     
  • Pull GPIO driver changes from Grant Likely:
    "Lots of gpio changes, both to core code and drivers.

    Changes do touch architecture code to remove the need for separate
    arm/gpio.h includes in most architectures.

    Some new drivers are added, and a number of gpio drivers are converted
    to use irq_domains for gpio inputs used as interrupts. Device tree
    support has been amended to allow multiple gpio_chips to use the same
    device tree node.

    Remaining changes are primarily bug fixes."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6: (33 commits)
    gpio/generic: initialize basic_mmio_gpio shadow variables properly
    gpiolib: Remove 'const' from data argument of gpiochip_find()
    gpio/rc5t583: add gpio driver for RICOH PMIC RC5T583
    gpiolib: quiet gpiochip_add boot message noise
    gpio: mpc8xxx: Prevent NULL pointer deref in demux handler
    gpio/lpc32xx: Add device tree support
    gpio: Adjust of_xlate API to support multiple GPIO chips
    gpiolib: Implement devm_gpio_request_one()
    gpio-mcp23s08: dbg_show: fix pullup configuration display
    Add support for TCA6424A
    gpio/omap: (re)fix wakeups on level-triggered GPIOs
    gpio/omap: fix broken context restore for non-OFF mode transitions
    gpio/omap: fix missing check in *_runtime_suspend()
    gpio/omap: remove cpu_is_omapxxxx() checks from *_runtime_resume()
    gpio/omap: remove suspend/resume callbacks
    gpio/omap: remove retrigger variable in gpio_irq_handler
    gpio/omap: remove saved_wakeup field from struct gpio_bank
    gpio/omap: remove suspend_wakeup field from struct gpio_bank
    gpio/omap: remove saved_fallingdetect, saved_risingdetect
    gpio/omap: remove virtual_irq_start variable
    ...

    Conflicts:
    drivers/gpio/gpio-samsung.c

    Linus Torvalds
     
  • Pull device tree changes from Grant Likely:
    "Mostly documentation updates, but also includes an empty stub for
    non-CONFIG_OF builds."

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    dt/documentation: Fix value format description
    dt: add vendor prefix for EM Microelectronics
    ARM: DT: Add binding for GIC virtualization extentions (VGIC)
    of/irq: add empty irq_of_parse_and_map() for non-dt builds

    Linus Torvalds
     
  • Pull SPI changes from Grant Likely:
    "Bug fixes and new features for SPI device drivers. Also move device
    tree support code out of drivers/of and into drivers/spi/spi.c where
    it makes more sense."

    * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    spi: By default setup spi_masters with 1 chipselect and dynamics bus number
    SPI: PRIMA2: use the newest APIs of PINCTRL to fix compiling errors
    spi/spi-fsl-spi: reference correct pdata in fsl_spi_cs_control
    spi: refactor spi-coldfire-qspi to use SPI queue framework.
    spi/omap2-mcspi: convert to the pump message infrastructure
    spi/rspi: add dmaengine support
    spi/topcliff: use correct __devexit_p annotation
    spi: Dont call prepare/unprepare transfer if not populated
    spi/ep93xx: clean probe/remove routines
    spi/devicetree: Move devicetree support code into spi directory
    spi: use module_pci_driver
    spi/omap2-mcspi: Trivial optimisation
    spi: omap2-mcspi: add support for pm_runtime autosuspend
    spi/omap: Remove bus_num usage for instance index
    OMAP : SPI : use devm_* functions
    spi: omap2-mcspi: convert to module_platform_driver
    spi: omap2-mcspi: make it behave as a module

    Linus Torvalds
     
  • Pull irqdomain changes from Grant Likely:
    "Minor changes and fixups for irqdomain infrastructure. The most
    important change adds the ability to remove a registered irqdomain."

    * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    irqdomain: Document size parameter of irq_domain_add_linear()
    irqdomain: trivial pr_fmt conversion.
    irqdomain: Kill off duplicate definitions.
    irqdomain: Make irq_domain_simple_map() static.
    irqdomain: Export remaining public API symbols.
    irqdomain: Support removal of IRQ domains.

    Linus Torvalds
     
  • Pull alpha updates from Matt Turner:
    "This pull adds the implementations of some Tru64 syscalls which allow
    some proprietary software such as the C compiler to work on Linux.

    Also, it adds some big-endian ioread functions to help us get closer
    to building allyesconfig."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
    alpha: add io{read,write}{16,32}be functions
    alpha: implement various OSF/1 stat syscalls
    alpha: implement setsysinfo(SSI_LMF) as a no-op

    Linus Torvalds
     
  • We need to use TASK_SIZE because for 64-bit tasks the value
    of STACK_TOP actually sits in the middle of the address space
    so we'll get false-negatives.

    Adjust the TASK_SIZE definition on sparc64 to accomodate this,
    in the context in which user_addr_max() is used we have the
    test_thread_flag() definition available but not the one for
    test_tsk_thread_flag().

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull timer updates from Thomas Gleixner.

    Various trivial conflict fixups in arch Kconfig due to addition of
    unrelated entries nearby. And one slightly more subtle one for sparc32
    (new user of GENERIC_CLOCKEVENTS), fixed up as per Thomas.

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    timekeeping: Fix a few minor newline issues.
    time: remove obsolete declaration
    ntp: Fix a stale comment and a few stray newlines.
    ntp: Correct TAI offset during leap second
    timers: Fixup the Kconfig consolidation fallout
    x86: Use generic time config
    unicore32: Use generic time config
    um: Use generic time config
    tile: Use generic time config
    sparc: Use: generic time config
    sh: Use generic time config
    score: Use generic time config
    s390: Use generic time config
    openrisc: Use generic time config
    powerpc: Use generic time config
    mn10300: Use generic time config
    mips: Use generic time config
    microblaze: Use generic time config
    m68k: Use generic time config
    m32r: Use generic time config
    ...

    Linus Torvalds
     
  • To use this, an architecture simply needs to:

    1) Provide a user_addr_max() implementation via asm/uaccess.h

    2) Add "select GENERIC_STRNCPY_FROM_USER" to their arch Kcnfig

    3) Remove the existing strncpy_from_user() implementation and symbol
    exports their architecture had.

    Signed-off-by: David S. Miller
    Acked-by: David Howells

    David S. Miller
     
  • And make sure that everything using it explicitly includes
    that header file.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Hide details of maximum user address calculation in a new
    asm/uaccess.h interface named user_addr_max().

    Provide little-endian implementation in find_zero(), which should work
    but can probably be improved.

    Abstrace alignment check behind IS_UNALIGNED() macro.

    Kill double-semicolon, noticed by David Howells.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull IEEE 1394 (FireWire) subsystem updates from Stefan Richter:

    - Fix mismatch between DMA mapping direction (was wrong) and DMA
    synchronization direction (was correct) of isochronous reception
    buffers of userspace drivers if vma-mapped for R/W access. For
    example, libdc1394 was affected.

    - more consistent retry stategy in device discovery/ rediscovery, and
    improved failure diagnostics

    - various small cleanups, e.g. use SCSI layer's DMA mapping API in
    firewire-sbp2

    * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
    firewire: sbp2: document the absence of alignment requirements
    firewire: sbp2: remove superfluous blk_queue_max_segment_size() call
    firewire: sbp2: use scsi_dma_(un)map
    firewire: sbp2: give correct DMA device to scsi framework
    firewire: core: fw_device_refresh(): clean up error handling
    firewire: core: log config rom reading errors
    firewire: core: log error in case of failed bus manager lock
    firewire: move rcode_string() to core
    firewire: core: improve reread_config_rom() interface
    firewire: core: wait for inaccessible devices after bus reset
    firewire: ohci: omit spinlock IRQ flags where possible
    firewire: ohci: correct signedness of a local variable
    firewire: core: fix DMA mapping direction
    firewire: use module_pci_driver

    Linus Torvalds
     
  • Pull main drm updates from Dave Airlie:
    "This is the main merge window request for the drm.

    It's big, but jam packed will lots of features and of course 0
    regressions. (okay maybe there'll be one).

    Highlights:

    - new KMS drivers for server GPU chipsets: ast, mgag200 and cirrus
    (qemu only). These drivers use the generic modesetting drivers.

    - initial prime/dma-buf support for i915, nouveau, radeon, udl and
    exynos

    - switcheroo audio support: so GPUs with HDMI can turn off the sound
    driver without crashing stuff.

    - There are some patches drifting outside drivers/gpu into x86 and
    EFI for better handling of multiple video adapters in Apple Macs,
    they've got correct acks except one trivial fixup.

    - Core:
    edid parser has better DMT and reduced blanking support,
    crtc properties,
    plane properties,

    - Drivers:
    exynos: add 2D core accel support, prime support, hdmi features
    intel: more Haswell support, initial Valleyview support, more
    hdmi infoframe fixes, update MAINTAINERS for Daniel, lots of
    cleanups and fixes
    radeon: more HDMI audio support, improved GPU lockup recovery
    support, remove nested mutexes, less memory copying on PCIE, fix
    bus master enable race (kexec), improved fence handling
    gma500: cleanups, 1080p support, acpi fixes
    nouveau: better nva3 memory reclocking, kepler accel (needs
    external firmware rip), async buffer moves on nv84+ hw.

    I've some more dma-buf patches that rely on the dma-buf merge for vmap
    stuff, and I've a few fixes building up, but I'd decided I'd better
    get rid of the main pull sooner rather than later, so the audio guys
    are also unblocked."

    Fix up trivial conflict due to some duplicated changes in
    drivers/gpu/drm/i915/intel_ringbuffer.c

    * 'drm-core-next' of git://people.freedesktop.org/~airlied/linux: (605 commits)
    drm/nouveau/nvd9: Fix GPIO initialisation sequence.
    drm/nouveau: Unregister switcheroo client on exit
    drm/nouveau: Check dsm on switcheroo unregister
    drm/nouveau: fix a minor annoyance in an output string
    drm/nouveau: turn a BUG into a WARN
    drm/nv50: decode PGRAPH DATA_ERROR = 0x24
    drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks
    drm/nvd9/copy: initialise copy engine, seems to work like nvc0
    drm/nvc0/ttm: use copy engines for async buffer moves
    drm/nva3/ttm: use copy engine for async buffer moves
    drm/nv98/ttm: add in a (disabled) crypto engine buffer copy method
    drm/nv84/ttm: use crypto engine for async buffer copies
    drm/nouveau/ttm: untangle code to support accelerated buffer moves
    drm/nouveau/fbcon: use fence for sync, rather than notifier
    drm/nv98/crypt: non-stub implementation of the engine hooks
    drm/nouveau/fifo: turn all fifo modules into engine modules
    drm/nv50/graph: remove ability to do interrupt-driven context switching
    drm/nv50: remove manual context unload on context destruction
    drm/nv50: remove execution engine context saves on suspend
    drm/nv50/fifo: use hardware channel kickoff functionality
    ...

    Linus Torvalds
     
  • Pull more networking updates from David Miller:
    "Ok, everything from here on out will be bug fixes."

    1) One final sync of wireless and bluetooth stuff from John Linville.
    These changes have all been in his tree for more than a week, and
    therefore have had the necessary -next exposure. John was just away
    on a trip and didn't have a change to send the pull request until a
    day or two ago.

    2) Put back some defines in user exposed header file areas that were
    removed during the tokenring purge. From Stephen Hemminger and Paul
    Gortmaker.

    3) A bug fix for UDP hash table allocation got lost in the pile due to
    one of those "you got it.. no I've got it.." situations. :-)

    From Tim Bird.

    4) SKB coalescing in TCP needs to have stricter checks, otherwise we'll
    try to coalesce overlapping frags and crash. Fix from Eric Dumazet.

    5) RCU routing table lookups can race with free_fib_info(), causing
    crashes when we deref the device pointers in the route. Fix by
    releasing the net device in the RCU callback. From Yanmin Zhang.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (293 commits)
    tcp: take care of overlaps in tcp_try_coalesce()
    ipv4: fix the rcu race between free_fib_info and ip_route_output_slow
    mm: add a low limit to alloc_large_system_hash
    ipx: restore token ring define to include/linux/ipx.h
    if: restore token ring ARP type to header
    xen: do not disable netfront in dom0
    phy/micrel: Fix ID of KSZ9021
    mISDN: Add X-Tensions USB ISDN TA XC-525
    gianfar:don't add FCB length to hard_header_len
    Bluetooth: Report proper error number in disconnection
    Bluetooth: Create flags for bt_sk()
    Bluetooth: report the right security level in getsockopt
    Bluetooth: Lock the L2CAP channel when sending
    Bluetooth: Restore locking semantics when looking up L2CAP channels
    Bluetooth: Fix a redundant and problematic incoming MTU check
    Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C
    Bluetooth: Fix EIR data generation for mgmt_device_found
    Bluetooth: Fix Inquiry with RSSI event mask
    Bluetooth: improve readability of l2cap_seq_list code
    Bluetooth: Fix skb length calculation
    ...

    Linus Torvalds
     
  • Pull user-space probe instrumentation from Ingo Molnar:
    "The uprobes code originates from SystemTap and has been used for years
    in Fedora and RHEL kernels. This version is much rewritten, reviews
    from PeterZ, Oleg and myself shaped the end result.

    This tree includes uprobes support in 'perf probe' - but SystemTap
    (and other tools) can take advantage of user probe points as well.

    Sample usage of uprobes via perf, for example to profile malloc()
    calls without modifying user-space binaries.

    First boot a new kernel with CONFIG_UPROBE_EVENT=y enabled.

    If you don't know which function you want to probe you can pick one
    from 'perf top' or can get a list all functions that can be probed
    within libc (binaries can be specified as well):

    $ perf probe -F -x /lib/libc.so.6

    To probe libc's malloc():

    $ perf probe -x /lib64/libc.so.6 malloc
    Added new event:
    probe_libc:malloc (on 0x7eac0)

    You can now use it in all perf tools, such as:

    perf record -e probe_libc:malloc -aR sleep 1

    Make use of it to create a call graph (as the flat profile is going to
    look very boring):

    $ perf record -e probe_libc:malloc -gR make
    [ perf record: Woken up 173 times to write data ]
    [ perf record: Captured and wrote 44.190 MB perf.data (~1930712

    $ perf report | less

    32.03% git libc-2.15.so [.] malloc
    |
    --- malloc

    29.49% cc1 libc-2.15.so [.] malloc
    |
    --- malloc
    |
    |--0.95%-- 0x208eb1000000000
    |
    |--0.63%-- htab_traverse_noresize

    11.04% as libc-2.15.so [.] malloc
    |
    --- malloc
    |

    7.15% ld libc-2.15.so [.] malloc
    |
    --- malloc
    |

    5.07% sh libc-2.15.so [.] malloc
    |
    --- malloc
    |
    4.99% python-config libc-2.15.so [.] malloc
    |
    --- malloc
    |
    4.54% make libc-2.15.so [.] malloc
    |
    --- malloc
    |
    |--7.34%-- glob
    | |
    | |--93.18%-- 0x41588f
    | |
    | --6.82%-- glob
    | 0x41588f

    ...

    Or:

    $ perf report -g flat | less

    # Overhead Command Shared Object Symbol
    # ........ ............. ............. ..........
    #
    32.03% git libc-2.15.so [.] malloc
    27.19%
    malloc

    29.49% cc1 libc-2.15.so [.] malloc
    24.77%
    malloc

    11.04% as libc-2.15.so [.] malloc
    11.02%
    malloc

    7.15% ld libc-2.15.so [.] malloc
    6.57%
    malloc

    ...

    The core uprobes design is fairly straightforward: uprobes probe
    points register themselves at (inode:offset) addresses of
    libraries/binaries, after which all existing (or new) vmas that map
    that address will have a software breakpoint injected at that address.
    vmas are COW-ed to preserve original content. The probe points are
    kept in an rbtree.

    If user-space executes the probed inode:offset instruction address
    then an event is generated which can be recovered from the regular
    perf event channels and mmap-ed ring-buffer.

    Multiple probes at the same address are supported, they create a
    dynamic callback list of event consumers.

    The basic model is further complicated by the XOL speedup: the
    original instruction that is probed is copied (in an architecture
    specific fashion) and executed out of line when the probe triggers.
    The XOL area is a single vma per process, with a fixed number of
    entries (which limits probe execution parallelism).

    The API: uprobes are installed/removed via
    /sys/kernel/debug/tracing/uprobe_events, the API is integrated to
    align with the kprobes interface as much as possible, but is separate
    to it.

    Injecting a probe point is privileged operation, which can be relaxed
    by setting perf_paranoid to -1.

    You can use multiple probes as well and mix them with kprobes and
    regular PMU events or tracepoints, when instrumenting a task."

    Fix up trivial conflicts in mm/memory.c due to previous cleanup of
    unmap_single_vma().

    * 'perf-uprobes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
    perf probe: Detect probe target when m/x options are absent
    perf probe: Provide perf interface for uprobes
    tracing: Fix kconfig warning due to a typo
    tracing: Provide trace events interface for uprobes
    tracing: Extract out common code for kprobes/uprobes trace events
    tracing: Modify is_delete, is_return from int to bool
    uprobes/core: Decrement uprobe count before the pages are unmapped
    uprobes/core: Make background page replacement logic account for rss_stat counters
    uprobes/core: Optimize probe hits with the help of a counter
    uprobes/core: Allocate XOL slots for uprobes use
    uprobes/core: Handle breakpoint and singlestep exceptions
    uprobes/core: Rename bkpt to swbp
    uprobes/core: Make order of function parameters consistent across functions
    uprobes/core: Make macro names consistent
    uprobes: Update copyright notices
    uprobes/core: Move insn to arch specific structure
    uprobes/core: Remove uprobe_opcode_sz
    uprobes/core: Make instruction tables volatile
    uprobes: Move to kernel/events/
    uprobes/core: Clean up, refactor and improve the code
    ...

    Linus Torvalds
     
  • These functions are used in some PCI drivers with big-endian
    MMIO space.

    Admittedly it is almost certain that no one this side of the
    Moon would use such a card in an Alpha but it does get us
    closer to being able to build allyesconfig or allmodconfig,
    and it enables the Debian default generic config to build.

    Tested-by: Raúl Porcel
    Signed-off-by: Michael Cree
    Signed-off-by: Matt Turner

    Michael Cree
     
  • This implements OSF/1 versions of stat, lstat, fstat, statfs64,
    and fstatfs64 syscalls.

    Signed-off-by: Mans Rullgard
    Signed-off-by: Matt Turner

    Mans Rullgard
     
  • This allows running software using the Tru64 license manager.
    For simplicity, no check for a valid license is done. This
    should not be seen as encouraging software piracy.

    Signed-off-by: Mans Rullgard
    Signed-off-by: Matt Turner

    Mans Rullgard
     
  • Pull input layer updates from Dmitry Torokhov:
    - a bunch of new drivers (DA9052/53 touchscreenn controller, Synaptics
    Navpoint, LM8333 keypads, Wacom I2C touhscreen);
    - updates to existing touchpad drivers (ALPS, Sntelic);
    - Wacom driver now supports Intuos5;
    - device-tree bindings in numerous drivers;
    - other cleanups and fixes.

    Fix annoying conflict in drivers/input/tablet/wacom_wac.c that I think
    implies that the input layer device naming is broken, but let's see. I
    brough it up with Dmitry.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits)
    Input: matrix-keymap - fix building keymaps
    Input: spear-keyboard - document DT bindings
    Input: spear-keyboard - add device tree bindings
    Input: matrix-keymap - wire up device tree support
    Input: matrix-keymap - uninline and prepare for device tree support
    Input: adp5588 - add support for gpio names
    Input: omap-keypad - dynamically handle register offsets
    Input: synaptics - fix compile warning
    MAINTAINERS: adjust input-related patterns
    Input: ALPS - switch to using input_mt_report_finger_count
    Input: ALPS - add semi-MT support for v4 protocol
    Input: Add Synaptics NavPoint (PXA27x SSP/SPI) driver
    Input: atmel_mxt_ts - dump each message on just 1 line
    Input: atmel_mxt_ts - do not read extra (checksum) byte
    Input: atmel_mxt_ts - verify object size in mxt_write_object
    Input: atmel_mxt_ts - only allow root to update firmware
    Input: atmel_mxt_ts - use CONFIG_PM_SLEEP
    Input: sentelic - report device's production serial number
    Input: tl6040-vibra - Device Tree support
    Input: evdev - properly handle read/write with count 0
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:
    - some V4L2 API updates needed by embedded devices
    - DVB API extensions for ATSC-MH delivery system, used in US for mobile
    TV
    - new tuners for fc0011/0012/0013 and tua9001
    - a new dvb driver for af9033/9035
    - a new ATSC-MH frontend (lg2160)
    - new remote controller keymaps
    - Removal of a few legacy webcam driver that got replaced by gspca on
    several kernel versions ago
    - a new driver for Exynos 4/5 webcams(s5pp fimc-lite)
    - a new webcam sensor driver (smiapp)
    - a new video input driver for embedded (sta2x1xx)
    - several improvements, fixes, cleanups, etc inside the drivers.

    Manually fix up conflicts due to err() -> dev_err() conversion in
    drivers/staging/media/easycap/easycap_main.c

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (484 commits)
    [media] saa7134-cards: Remove a PCI entry added by mistake
    [media] radio-sf16fmi: add support for SF16-FMD
    [media] rc-loopback: remove duplicate line
    [media] patch for Asus My Cinema PS3-100 (1043:48cd)
    [media] au0828: Move the Kconfig knob under V4L_USB_DRIVERS
    [media] em28xx: simple comment fix
    [media] [resend] radio-sf16fmr2: add PnP support for SF16-FMD2
    [media] smiapp: Use v4l2_ctrl_new_int_menu() instead of v4l2_ctrl_new_custom()
    [media] smiapp: Add support for 8-bit uncompressed formats
    [media] smiapp: Allow generic quirk registers
    [media] smiapp: Use non-binning limits if the binning limit is zero
    [media] smiapp: Initialise rval in smiapp_read_nvm()
    [media] smiapp: Round minimum pre_pll up rather than down in ip_clk_freq check
    [media] smiapp: Use 8-bit reads only before identifying the sensor
    [media] smiapp: Quirk for sensors that only do 8-bit reads
    [media] smiapp: Pass struct sensor to register writing commands instead of i2c_client
    [media] smiapp: Allow using external clock from the clock framework
    [media] zl10353: change .read_snr() to report SNR as a 0.1 dB
    [media] media: add support to gspca/pac7302.c for 093a:2627 (Genius FaceCam 300)
    [media] m88rs2000 - only flip bit 2 on reg 0x70 on 16th try
    ...

    Linus Torvalds
     

24 May, 2012

16 commits