05 Jun, 2014

5 commits

  • During compaction, update_nr_listpages() has been used to count remaining
    non-migrated and free pages after a call to migrage_pages(). The
    freepages counting has become unneccessary, and it turns out that
    migratepages counting is also unnecessary in most cases.

    The only situation when it's needed to count cc->migratepages is when
    migrate_pages() returns with a negative error code. Otherwise, the
    non-negative return value is the number of pages that were not migrated,
    which is exactly the count of remaining pages in the cc->migratepages
    list.

    Furthermore, any non-zero count is only interesting for the tracepoint of
    mm_compaction_migratepages events, because after that all remaining
    unmigrated pages are put back and their count is set to 0.

    This patch therefore removes update_nr_listpages() completely, and changes
    the tracepoint definition so that the manual counting is done only when
    the tracepoint is enabled, and only when migrate_pages() returns a
    negative error code.

    Furthermore, migrate_pages() and the tracepoints won't be called when
    there's nothing to migrate. This potentially avoids some wasted cycles
    and reduces the volume of uninteresting mm_compaction_migratepages events
    where "nr_migrated=0 nr_failed=0". In the stress-highalloc mmtest, this
    was about 75% of the events. The mm_compaction_isolate_migratepages event
    is better for determining that nothing was isolated for migration, and
    this one was just duplicating the info.

    Signed-off-by: Vlastimil Babka
    Reviewed-by: Naoya Horiguchi
    Cc: Minchan Kim
    Cc: Mel Gorman
    Cc: Joonsoo Kim
    Cc: Bartlomiej Zolnierkiewicz
    Acked-by: Michal Nazarewicz
    Cc: Christoph Lameter
    Cc: Rik van Riel
    Acked-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vlastimil Babka
     
  • Now that we are doing NUMA-aware shrinking, and can have shrinkers
    running in parallel, or working on individual nodes, it seems like we
    should also be sticking the node in the output.

    Signed-off-by: Dave Hansen
    Acked-by: Dave Chinner
    Cc: Konstantin Khlebnikov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • I was looking at a trace of the slab shrinkers (attachment in this comment):

    https://bugs.freedesktop.org/show_bug.cgi?id=72742#c67

    and noticed that "total_scan" can go negative in some cases. We
    used to dump out the "total_scan" variable directly, but some of
    the shrinker modifications along the way changed that.

    This patch just dumps it out directly, again. It doesn't make
    any sense to derive it from new_nr and nr any more since there
    are now other shrinkers that can be running in parallel and
    mucking with those values.

    Here's an example of the negative numbers in the output:

    > kswapd0-840 [000] 160.869398: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 10 new scan count 39 total_scan 29 last shrinker return val 256
    > kswapd0-840 [000] 160.869618: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 39 new scan count 102 total_scan 63 last shrinker return val 256
    > kswapd0-840 [000] 160.870031: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 102 new scan count 47 total_scan -55 last shrinker return val 768
    > kswapd0-840 [000] 160.870464: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 47 new scan count 45 total_scan -2 last shrinker return val 768
    > kswapd0-840 [000] 163.384144: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 45 new scan count 56 total_scan 11 last shrinker return val 0
    > kswapd0-840 [000] 163.384297: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 56 new scan count 15 total_scan -41 last shrinker return val 256
    > kswapd0-840 [000] 163.384414: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 15 new scan count 117 total_scan 102 last shrinker return val 0
    > kswapd0-840 [000] 163.384657: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 117 new scan count 36 total_scan -81 last shrinker return val 512
    > kswapd0-840 [000] 163.384880: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 36 new scan count 111 total_scan 75 last shrinker return val 256
    > kswapd0-840 [000] 163.385256: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 111 new scan count 34 total_scan -77 last shrinker return val 768
    > kswapd0-840 [000] 163.385598: mm_shrink_slab_end: i915_gem_inactive_scan+0x0 0xffff8800037cbc68: unused scan count 34 new scan count 122 total_scan 88 last shrinker return val 512

    Signed-off-by: Dave Hansen
    Acked-by: Dave Chinner
    Cc: Konstantin Khlebnikov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • Currently to allocate a page that should be charged to kmemcg (e.g.
    threadinfo), we pass __GFP_KMEMCG flag to the page allocator. The page
    allocated is then to be freed by free_memcg_kmem_pages. Apart from
    looking asymmetrical, this also requires intrusion to the general
    allocation path. So let's introduce separate functions that will
    alloc/free pages charged to kmemcg.

    The new functions are called alloc_kmem_pages and free_kmem_pages. They
    should be used when the caller actually would like to use kmalloc, but
    has to fall back to the page allocator for the allocation is large.
    They only differ from alloc_pages and free_pages in that besides
    allocating or freeing pages they also charge them to the kmem resource
    counter of the current memory cgroup.

    [sfr@canb.auug.org.au: export kmalloc_order() to modules]
    Signed-off-by: Vladimir Davydov
    Acked-by: Greg Thelen
    Cc: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Glauber Costa
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • Pull sound updates from Takashi Iwai:
    "At this time, majority of changes come from ASoC world while we got a
    few new drivers in other places for FireWire and USB. There have been
    lots of ASoC core cleanups / refactoring, but very little visible to
    external users.

    ASoC:
    - Support for specifying aux CODECs in DT
    - Removal of the deprecated mux and enum macros
    - More moves towards full componentisation
    - Removal of some unused I/O code
    - Lots of cleanups, fixes and enhancements to the davinci, Freescale,
    Haswell and Realtek drivers
    - Several drivers exposed directly in Kconfig for use with
    simple-card
    - GPIO descriptor support for jacks
    - More updates and fixes to the Freescale SSI, Intel and rsnd drivers
    - New drivers for Cirrus CS42L56, Realtek RT5639, RT5642 and RT5651
    and ST STA350, Analog Devices ADAU1361, ADAU1381, ADAU1761 and
    ADAU1781, and Realtek RT5677

    HD-audio:
    - Clean up Dell headset quirks
    - Noise fixes for Dell and Sony laptops
    - Thinkpad T440 dock fix
    - Realtek codec updates (ALC293,ALC233,ALC3235)
    - Tegra HD-audio HDMI support

    FireWire-audio:
    - FireWire audio stack enhancement (AMDTP, MIDI), support for
    incoming isochronous stream and duplex streams with timestamp
    synchronization
    - BeBoB-based devices support
    - Fireworks-based device support

    USB-audio:
    - Behringer BCD2000 USB device support

    Misc:
    - Clean up of a few old drivers, atmel, fm801, etc"

    * tag 'sound-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (480 commits)
    ASoC: Fix wrong argument for card remove callbacks
    ASoC: free jack GPIOs before the sound card is freed
    ALSA: firewire-lib: Remove a comment about restriction of asynchronous operation
    ASoC: cache: Fix error code when not using ASoC level cache
    ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixup
    ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptop
    ALSA: firewire-lib: Use IEC 61883-6 compliant labels for Raw Audio data
    ASoC: add RT5677 CODEC driver
    ASoC: intel: The Baytrail/MAX98090 driver depends on I2C
    ASoC: rt5640: Add the function "get_clk_info" to RL6231 shared support
    ASoC: rt5640: Add the function of the PLL clock calculation to RL6231 shared support
    ASoC: rt5640: Add RL6231 class device shared support for RT5640, RT5645 and RT5651
    ASoC: cache: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
    ASoC: Add helper functions to cast from DAPM context to CODEC/platform
    ALSA: bebob: sizeof() vs ARRAY_SIZE() typo
    ASoC: wm9713: correct mono out PGA sources
    ALSA: synth: emux: soundfont.c: Cleaning up memory leak
    ASoC: fsl: Remove dependencies of boards for SND_SOC_EUKREA_TLV320
    ASoC: fsl-ssi: Use regmap
    ASoC: fsl-ssi: reorder and document fsl_ssi_private
    ...

    Linus Torvalds
     

02 Jun, 2014

1 commit


22 May, 2014

1 commit


09 May, 2014

1 commit

  • …l/git/rostedt/linux-trace

    Pull tracing fixes from Steven Rostedt:
    "This contains two fixes.

    The first is a long standing bug that causes bogus data to show up in
    the refcnt field of the module_refcnt tracepoint. It was introduced
    by a merge conflict resolution back in 2.6.35-rc days.

    The result should be 'refcnt = incs - decs', but instead it did
    'refcnt = incs + decs'.

    The second fix is to a bug that was introduced in this merge window
    that allowed for a tracepoint funcs pointer to be used after it was
    freed. Moving the location of where the probes are released solved
    the problem"

    * tag 'trace-fixes-v3.15-rc4-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracepoint: Fix use of tracepoint funcs after rcu free
    trace: module: Maintain a valid user count

    Linus Torvalds
     

08 May, 2014

1 commit

  • The replacement of the 'count' variable by two variables 'incs' and
    'decs' to resolve some race conditions during module unloading was done
    in parallel with some cleanup in the trace subsystem, and was integrated
    as a merge.

    Unfortunately, the formula for this replacement was wrong in the tracing
    code, and the refcount in the traces was not usable as a result.

    Use 'count = incs - decs' to compute the user count.

    Link: http://lkml.kernel.org/p/1393924179-9147-1-git-send-email-romain.izard.pro@gmail.com

    Acked-by: Ingo Molnar
    Cc: Rusty Russell
    Cc: Frederic Weisbecker
    Cc: stable@vger.kernel.org # 2.6.35
    Fixes: c1ab9cab7509 "merge conflict resolution"
    Signed-off-by: Romain Izard
    Signed-off-by: Steven Rostedt

    Romain Izard
     

23 Apr, 2014

1 commit


22 Apr, 2014

1 commit

  • The ASoC framework is in the process of migrating all IO operations to regmap.
    regmap has its own more sophisticated tracing infrastructure for IO operations,
    which means that the ASoC level IO tracing becomes redundant, hence this patch
    removes them. There are still a handful of ASoC drivers left that do not use
    regmap yet, but hopefully the removal of the ASoC IO tracing will be an
    additional incentive to switch to regmap.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown

    Lars-Peter Clausen
     

21 Apr, 2014

1 commit

  • Pull ext4 fixes from Ted Ts'o:
    "These are regression and bug fixes for ext4.

    We had a number of new features in ext4 during this merge window
    (ZERO_RANGE and COLLAPSE_RANGE fallocate modes, renameat, etc.) so
    there were many more regression and bug fixes this time around. It
    didn't help that xfstests hadn't been fully updated to fully stress
    test COLLAPSE_RANGE until after -rc1"

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (31 commits)
    ext4: disable COLLAPSE_RANGE for bigalloc
    ext4: fix COLLAPSE_RANGE failure with 1KB block size
    ext4: use EINVAL if not a regular file in ext4_collapse_range()
    ext4: enforce we are operating on a regular file in ext4_zero_range()
    ext4: fix extent merging in ext4_ext_shift_path_extents()
    ext4: discard preallocations after removing space
    ext4: no need to truncate pagecache twice in collapse range
    ext4: fix removing status extents in ext4_collapse_range()
    ext4: use filemap_write_and_wait_range() correctly in collapse range
    ext4: use truncate_pagecache() in collapse range
    ext4: remove temporary shim used to merge COLLAPSE_RANGE and ZERO_RANGE
    ext4: fix ext4_count_free_clusters() with EXT4FS_DEBUG and bigalloc enabled
    ext4: always check ext4_ext_find_extent result
    ext4: fix error handling in ext4_ext_shift_extents
    ext4: silence sparse check warning for function ext4_trim_extent
    ext4: COLLAPSE_RANGE only works on extent-based files
    ext4: fix byte order problems introduced by the COLLAPSE_RANGE patches
    ext4: use i_size_read in ext4_unaligned_aio()
    fs: disallow all fallocate operation on active swapfile
    fs: move falloc collapse range check into the filesystem methods
    ...

    Linus Torvalds
     

15 Apr, 2014

1 commit


13 Apr, 2014

1 commit

  • Pull more tracing updates from Steven Rostedt:
    "This includes the final patch to clean up and fix the issue with the
    design of tracepoints and how a user could register a tracepoint and
    have that tracepoint not be activated but no error was shown.

    The design was for an out of tree module but broke in tree users. The
    clean up was to remove the saving of the hash table of tracepoint
    names such that they can be enabled before they exist (enabling a
    module tracepoint before that module is loaded). This added more
    complexity than needed. The clean up was to remove that code and just
    enable tracepoints that exist or fail if they do not.

    This removed a lot of code as well as the complexity that it brought.
    As a side effect, instead of registering a tracepoint by its name, the
    tracepoint needs to be registered with the tracepoint descriptor.
    This removes having to duplicate the tracepoint names that are
    enabled.

    The second patch was added that simplified the way modules were
    searched for.

    This cleanup required changes that were in the 3.15 queue as well as
    some changes that were added late in the 3.14-rc cycle. This final
    change waited till the two were merged in upstream and then the change
    was added and full tests were run. Unfortunately, the test found some
    errors, but after it was already submitted to the for-next branch and
    not to be rebased. Sparse errors were detected by Fengguang Wu's bot
    tests, and my internal tests discovered that the anonymous union
    initialization triggered a bug in older gcc compilers. Luckily, there
    was a bugzilla for the gcc bug which gave a work around to the
    problem. The third and fourth patch handled the sparse error and the
    gcc bug respectively.

    A final patch was tagged along to fix a missing documentation for the
    README file"

    * tag 'trace-3.15-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Add missing function triggers dump and cpudump to README
    tracing: Fix anonymous unions in struct ftrace_event_call
    tracepoint: Fix sparse warnings in tracepoint.c
    tracepoint: Simplify tracepoint module search
    tracepoint: Use struct pointer instead of name hash for reg/unreg tracepoints

    Linus Torvalds
     

10 Apr, 2014

1 commit


09 Apr, 2014

3 commits

  • Pull i2c updates from Wolfram Sang:
    "Here is the pull request from the i2c subsystem. It got a little
    delayed because I needed to wait for a dependency to be included
    (commit b424080a9e08: "reset: Add optional resets and stubs"). Plus,
    I had some email problems. All done now, the highlights are:

    - drivers can now deprecate their use of i2c classes. That shouldn't
    be used on embedded platforms anyhow and was often blindly
    copy&pasted. This mechanism gives users time to switch away and
    ultimately boot faster once the use of classes for those drivers is
    gone for good.

    - new drivers for QUP, Cadence, efm32

    - tracepoint support for I2C and SMBus

    - bigger cleanups for the mv64xxx, nomadik, and designware drivers

    And the usual bugfixes, cleanups, feature additions. Most stuff has
    been in linux-next for a while. Just some hot fixes and new drivers
    were added a bit more recently."

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (63 commits)
    i2c: cadence: fix Kconfig dependency
    i2c: Add driver for Cadence I2C controller
    i2c: cadence: Document device tree bindings
    Documentation: i2c: improve section about flags mangling the protocol
    i2c: qup: use proper type fro clk_freq
    i2c: qup: off by ones in qup_i2c_probe()
    i2c: efm32: fix binding doc
    MAINTAINERS: update I2C web resources
    i2c: qup: New bus driver for the Qualcomm QUP I2C controller
    i2c: qup: Add device tree bindings information
    i2c: i2c-xiic: deprecate class based instantiation
    i2c: i2c-sirf: deprecate class based instantiation
    i2c: i2c-mv64xxx: deprecate class based instantiation
    i2c: i2c-designware-platdrv: deprecate class based instantiation
    i2c: i2c-davinci: deprecate class based instantiation
    i2c: i2c-bcm2835: deprecate class based instantiation
    i2c: mv64xxx: Fix reset controller handling
    i2c: omap: fix usage of IS_ERR_VALUE with pm_runtime_get_sync
    i2c: efm32: new bus driver
    i2c: exynos5: remove unnecessary cast of void pointer
    ...

    Linus Torvalds
     
  • Fix the following sparse warnings:

    CHECK kernel/tracepoint.c
    kernel/tracepoint.c:184:18: warning: incorrect type in assignment (different address spaces)
    kernel/tracepoint.c:184:18: expected struct tracepoint_func *tp_funcs
    kernel/tracepoint.c:184:18: got struct tracepoint_func [noderef] *funcs
    kernel/tracepoint.c:216:18: warning: incorrect type in assignment (different address spaces)
    kernel/tracepoint.c:216:18: expected struct tracepoint_func *tp_funcs
    kernel/tracepoint.c:216:18: got struct tracepoint_func [noderef] *funcs
    kernel/tracepoint.c:392:24: error: return expression in void function
    CC kernel/tracepoint.o
    kernel/tracepoint.c: In function tracepoint_module_going:
    kernel/tracepoint.c:491:6: warning: symbol 'syscall_regfunc' was not declared. Should it be static?
    kernel/tracepoint.c:508:6: warning: symbol 'syscall_unregfunc' was not declared. Should it be static?

    Link: http://lkml.kernel.org/r/1397049883-28692-1-git-send-email-mathieu.desnoyers@efficios.com

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Steven Rostedt

    Mathieu Desnoyers
     
  • Register/unregister tracepoint probes with struct tracepoint pointer
    rather than tracepoint name.

    This change, which vastly simplifies tracepoint.c, has been proposed by
    Steven Rostedt. It also removes 8.8kB (mostly of text) to the vmlinux
    size.

    From this point on, the tracers need to pass a struct tracepoint pointer
    to probe register/unregister. A probe can now only be connected to a
    tracepoint that exists. Moreover, tracers are responsible for
    unregistering the probe before the module containing its associated
    tracepoint is unloaded.

    text data bss dec hex filename
    10443444 4282528 10391552 25117524 17f4354 vmlinux.orig
    10434930 4282848 10391552 25109330 17f2352 vmlinux

    Link: http://lkml.kernel.org/r/1396992381-23785-2-git-send-email-mathieu.desnoyers@efficios.com

    CC: Ingo Molnar
    CC: Frederic Weisbecker
    CC: Andrew Morton
    CC: Frank Ch. Eigler
    CC: Johannes Berg
    Signed-off-by: Mathieu Desnoyers
    [ SDR - fixed return val in void func in tracepoint_module_going() ]
    Signed-off-by: Steven Rostedt

    Mathieu Desnoyers
     

08 Apr, 2014

1 commit

  • Starting from commit c4ad8f98bef7 ("execve: use 'struct filename *' for
    executable name passing") bprm->filename can not go away after
    flush_old_exec(), so we do not need to save the binary name in
    bprm->tcomm[] added by 96e02d158678 ("exec: fix use-after-free bug in
    setup_new_exec()").

    And there was never need for filename_to_taskname-like code, we can
    simply do set_task_comm(kbasename(filename).

    This patch has to change set_task_comm() and trace_task_rename() to
    accept "const char *", but I think this change is also good.

    Signed-off-by: Oleg Nesterov
    Cc: Heiko Carstens
    Cc: Steven Rostedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     

07 Apr, 2014

1 commit

  • Pull module updates from Rusty Russell:
    "Nothing major: the stricter permissions checking for sysfs broke a
    staging driver; fix included. Greg KH said he'd take the patch but
    hadn't as the merge window opened, so it's included here to avoid
    breaking build"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    staging: fix up speakup kobject mode
    Use 'E' instead of 'X' for unsigned module taint flag.
    VERIFY_OCTAL_PERMISSIONS: stricter checking for sysfs perms.
    kallsyms: fix percpu vars on x86-64 with relocation.
    kallsyms: generalize address range checking
    module: LLVMLinux: Remove unused function warning from __param_check macro
    Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE
    module: remove MODULE_GENERIC_TABLE
    module: allow multiple calls to MODULE_DEVICE_TABLE() per module
    module: use pr_cont

    Linus Torvalds
     

05 Apr, 2014

3 commits

  • Pull ext4 updates from Ted Ts'o:
    "Major changes for 3.14 include support for the newly added ZERO_RANGE
    and COLLAPSE_RANGE fallocate operations, and scalability improvements
    in the jbd2 layer and in xattr handling when the extended attributes
    spill over into an external block.

    Other than that, the usual clean ups and minor bug fixes"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (42 commits)
    ext4: fix premature freeing of partial clusters split across leaf blocks
    ext4: remove unneeded test of ret variable
    ext4: fix comment typo
    ext4: make ext4_block_zero_page_range static
    ext4: atomically set inode->i_flags in ext4_set_inode_flags()
    ext4: optimize Hurd tests when reading/writing inodes
    ext4: kill i_version support for Hurd-castrated file systems
    ext4: each filesystem creates and uses its own mb_cache
    fs/mbcache.c: doucple the locking of local from global data
    fs/mbcache.c: change block and index hash chain to hlist_bl_node
    ext4: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
    ext4: refactor ext4_fallocate code
    ext4: Update inode i_size after the preallocation
    ext4: fix partial cluster handling for bigalloc file systems
    ext4: delete path dealloc code in ext4_ext_handle_uninitialized_extents
    ext4: only call sync_filesystm() when remounting read-only
    fs: push sync_filesystem() down to the file system's remount_fs()
    jbd2: improve error messages for inconsistent journal heads
    jbd2: minimize region locked by j_list_lock in jbd2_journal_forget()
    jbd2: minimize region locked by j_list_lock in journal_get_create_access()
    ...

    Linus Torvalds
     
  • Pull btrfs changes from Chris Mason:
    "This is a pretty long stream of bug fixes and performance fixes.

    Qu Wenruo has replaced the btrfs async threads with regular kernel
    workqueues. We'll keep an eye out for performance differences, but
    it's nice to be using more generic code for this.

    We still have some corruption fixes and other patches coming in for
    the merge window, but this batch is tested and ready to go"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (108 commits)
    Btrfs: fix a crash of clone with inline extents's split
    btrfs: fix uninit variable warning
    Btrfs: take into account total references when doing backref lookup
    Btrfs: part 2, fix incremental send's decision to delay a dir move/rename
    Btrfs: fix incremental send's decision to delay a dir move/rename
    Btrfs: remove unnecessary inode generation lookup in send
    Btrfs: fix race when updating existing ref head
    btrfs: Add trace for btrfs_workqueue alloc/destroy
    Btrfs: less fs tree lock contention when using autodefrag
    Btrfs: return EPERM when deleting a default subvolume
    Btrfs: add missing kfree in btrfs_destroy_workqueue
    Btrfs: cache extent states in defrag code path
    Btrfs: fix deadlock with nested trans handles
    Btrfs: fix possible empty list access when flushing the delalloc inodes
    Btrfs: split the global ordered extents mutex
    Btrfs: don't flush all delalloc inodes when we doesn't get s_umount lock
    Btrfs: reclaim delalloc metadata more aggressively
    Btrfs: remove unnecessary lock in may_commit_transaction()
    Btrfs: remove the unnecessary flush when preparing the pages
    Btrfs: just do dirty page flush for the inode with compression before direct IO
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:
    "The main set of series of patches for media subsystem, including:
    - document RC sysfs class
    - added an API to setup scancode to allow waking up systems using the
    Remote Controller
    - add API for SDR devices. Drivers are still on staging
    - some API improvements for getting EDID data from media
    inputs/outputs
    - new DVB frontend driver for drx-j (ATSC)
    - one driver (it913x/it9137) got removed, in favor of an improvement
    on another driver (af9035)
    - added a skeleton V4L2 PCI driver at documentation
    - added a dual flash driver (lm3646)
    - added a new IR driver (img-ir)
    - added an IR scancode decoder for the Sharp protocol
    - some improvements at the usbtv driver, to allow its core to be
    reused.
    - added a new SDR driver (rtl2832u_sdr)
    - added a new tuner driver (msi001)
    - several improvements at em28xx driver to fix PM support, device
    removal and to split the V4L2 specific bits into a separate
    sub-driver
    - one driver got converted to videobuf2 (s2255drv)
    - the e4000 tuner driver now follows an improved binding model
    - some fixes at V4L2 compat32 code
    - several fixes and enhancements at videobuf2 code
    - some cleanups at V4L2 API documentation
    - usual driver enhancements, new board additions and misc fixups"

    [ NOTE! This merge effective drops commit 4329b93b283c ("of: Reduce
    indentation in of_graph_get_next_endpoint").

    The of_graph_get_next_endpoint() function was moved and renamed by
    commit fd9fdb78a9bf ("[media] of: move graph helpers from
    drivers/media/v4l2-core to drivers/of"). It was originally called
    v4l2_of_get_next_endpoint() and lived in the file
    drivers/media/v4l2-core/v4l2-of.c.

    In that original location, it was then fixed to support empty port
    nodes by commit b9db140c1e46 ("[media] v4l: of: Support empty port
    nodes"), and that commit clashes badly with the dropped "Reduce
    intendation" commit. I had to choose one or the other, and decided
    that the "Support empty port nodes" commit was more important ]

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (426 commits)
    [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
    Revert "[media] em28xx-dvb: fix PCTV 461e tuner I2C binding"
    [media] em28xx: fix PCTV 290e LNA oops
    [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
    [media] m88ds3103: fix bug on .set_tone()
    [media] saa7134: fix WARN_ON during resume
    [media] v4l2-dv-timings: add module name, description, license
    [media] videodev2.h: add parenthesis around macro arguments
    [media] saa6752hs: depends on CRC32
    [media] si4713: fix Kconfig dependencies
    [media] Sensoray 2255 uses videobuf2
    [media] adv7180: free an interrupt on failure paths in init_device()
    [media] e4000: make VIDEO_V4L2 dependency optional
    [media] af9033: Don't export functions for the hardware filter
    [media] af9035: use af9033 PID filters
    [media] af9033: implement PID filter
    [media] rtl2832_sdr: do not use dynamic stack allocation
    [media] e4000: fix 32-bit build error
    [media] em28xx-audio: make sure audio is unmuted on open()
    [media] DocBook media: v4l2_format_sdr was renamed to v4l2_sdr_format
    ...

    Linus Torvalds
     

04 Apr, 2014

1 commit

  • Pull tracing updates from Steven Rostedt:
    "Most of the changes were largely clean ups, and some documentation.
    But there were a few features that were added:

    Uprobes now work with event triggers and multi buffers and have
    support under ftrace and perf.

    The big feature is that the function tracer can now be used within the
    multi buffer instances. That is, you can now trace some functions in
    one buffer, others in another buffer, all functions in a third buffer
    and so on. They are basically agnostic from each other. This only
    works for the function tracer and not for the function graph trace,
    although you can have the function graph tracer running in the top
    level buffer (or any tracer for that matter) and have different
    function tracing going on in the sub buffers"

    * tag 'trace-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (45 commits)
    tracing: Add BUG_ON when stack end location is over written
    tracepoint: Remove unused API functions
    Revert "tracing: Move event storage for array from macro to standalone function"
    ftrace: Constify ftrace_text_reserved
    tracepoints: API doc update to tracepoint_probe_register() return value
    tracepoints: API doc update to data argument
    ftrace: Fix compilation warning about control_ops_free
    ftrace/x86: BUG when ftrace recovery fails
    ftrace: Warn on error when modifying ftrace function
    ftrace: Remove freelist from struct dyn_ftrace
    ftrace: Do not pass data to ftrace_dyn_arch_init
    ftrace: Pass retval through return in ftrace_dyn_arch_init()
    ftrace: Inline the code from ftrace_dyn_table_alloc()
    ftrace: Cleanup of global variables ftrace_new_pgs and ftrace_update_cnt
    tracing: Evaluate len expression only once in __dynamic_array macro
    tracing: Correctly expand len expressions from __dynamic_array macro
    tracing/module: Replace include of tracepoint.h with jump_label.h in module.h
    tracing: Fix event header migrate.h to include tracepoint.h
    tracing: Fix event header writeback.h to include tracepoint.h
    tracing: Warn if a tracepoint is not set via debugfs
    ...

    Linus Torvalds
     

03 Apr, 2014

1 commit

  • Pull networking updates from David Miller:
    "Here is my initial pull request for the networking subsystem during
    this merge window:

    1) Support for ESN in AH (RFC 4302) from Fan Du.

    2) Add full kernel doc for ethtool command structures, from Ben
    Hutchings.

    3) Add BCM7xxx PHY driver, from Florian Fainelli.

    4) Export computed TCP rate information in netlink socket dumps, from
    Eric Dumazet.

    5) Allow IPSEC SA to be dumped partially using a filter, from Nicolas
    Dichtel.

    6) Convert many drivers to pci_enable_msix_range(), from Alexander
    Gordeev.

    7) Record SKB timestamps more efficiently, from Eric Dumazet.

    8) Switch to microsecond resolution for TCP round trip times, also
    from Eric Dumazet.

    9) Clean up and fix 6lowpan fragmentation handling by making use of
    the existing inet_frag api for it's implementation.

    10) Add TX grant mapping to xen-netback driver, from Zoltan Kiss.

    11) Auto size SKB lengths when composing netlink messages based upon
    past message sizes used, from Eric Dumazet.

    12) qdisc dumps can take a long time, add a cond_resched(), From Eric
    Dumazet.

    13) Sanitize netpoll core and drivers wrt. SKB handling semantics.
    Get rid of never-used-in-tree netpoll RX handling. From Eric W
    Biederman.

    14) Support inter-address-family and namespace changing in VTI tunnel
    driver(s). From Steffen Klassert.

    15) Add Altera TSE driver, from Vince Bridgers.

    16) Optimizing csum_replace2() so that it doesn't adjust the checksum
    by checksumming the entire header, from Eric Dumazet.

    17) Expand BPF internal implementation for faster interpreting, more
    direct translations into JIT'd code, and much cleaner uses of BPF
    filtering in non-socket ocntexts. From Daniel Borkmann and Alexei
    Starovoitov"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1976 commits)
    netpoll: Use skb_irq_freeable to make zap_completion_queue safe.
    net: Add a test to see if a skb is freeable in irq context
    qlcnic: Fix build failure due to undefined reference to `vxlan_get_rx_port'
    net: ptp: move PTP classifier in its own file
    net: sxgbe: make "core_ops" static
    net: sxgbe: fix logical vs bitwise operation
    net: sxgbe: sxgbe_mdio_register() frees the bus
    Call efx_set_channels() before efx->type->dimension_resources()
    xen-netback: disable rogue vif in kthread context
    net/mlx4: Set proper build dependancy with vxlan
    be2net: fix build dependency on VxLAN
    mac802154: make csma/cca parameters per-wpan
    mac802154: allow only one WPAN to be up at any given time
    net: filter: minor: fix kdoc in __sk_run_filter
    netlink: don't compare the nul-termination in nla_strcmp
    can: c_can: Avoid led toggling for every packet.
    can: c_can: Simplify TX interrupt cleanup
    can: c_can: Store dlc private
    can: c_can: Reduce register access
    can: c_can: Make the code readable
    ...

    Linus Torvalds
     

02 Apr, 2014

4 commits

  • Pull block driver update from Jens Axboe:
    "On top of the core pull request, here's the pull request for the
    driver related changes for 3.15. It contains:

    - Improvements for msi-x registration for block drivers (mtip32xx,
    skd, cciss, nvme) from Alexander Gordeev.

    - A round of cleanups and improvements for drbd from Andreas
    Gruenbacher and Rashika Kheria.

    - A round of clanups and improvements for bcache from Kent.

    - Removal of sleep_on() and friends in DAC960, ataflop, swim3 from
    Arnd Bergmann.

    - Bug fix for a bug in the mtip32xx async completion code from Sam
    Bradshaw.

    - Bug fix for accidentally bouncing IO on 32-bit platforms with
    mtip32xx from Felipe Franciosi"

    * 'for-3.15/drivers' of git://git.kernel.dk/linux-block: (103 commits)
    bcache: remove nested function usage
    bcache: Kill bucket->gc_gen
    bcache: Kill unused freelist
    bcache: Rework btree cache reserve handling
    bcache: Kill btree_io_wq
    bcache: btree locking rework
    bcache: Fix a race when freeing btree nodes
    bcache: Add a real GC_MARK_RECLAIMABLE
    bcache: Add bch_keylist_init_single()
    bcache: Improve priority_stats
    bcache: Better alloc tracepoints
    bcache: Kill dead cgroup code
    bcache: stop moving_gc marking buckets that can't be moved.
    bcache: Fix moving_pred()
    bcache: Fix moving_gc deadlocking with a foreground write
    bcache: Fix discard granularity
    bcache: Fix another bug recovering from unclean shutdown
    bcache: Fix a bug recovering from unclean shutdown
    bcache: Fix a journalling reclaim after recovery bug
    bcache: Fix a null ptr deref in journal replay
    ...

    Linus Torvalds
     
  • Pull core block layer updates from Jens Axboe:
    "This is the pull request for the core block IO bits for the 3.15
    kernel. It's a smaller round this time, it contains:

    - Various little blk-mq fixes and additions from Christoph and
    myself.

    - Cleanup of the IPI usage from the block layer, and associated
    helper code. From Frederic Weisbecker and Jan Kara.

    - Duplicate code cleanup in bio-integrity from Gu Zheng. This will
    give you a merge conflict, but that should be easy to resolve.

    - blk-mq notify spinlock fix for RT from Mike Galbraith.

    - A blktrace partial accounting bug fix from Roman Pen.

    - Missing REQ_SYNC detection fix for blk-mq from Shaohua Li"

    * 'for-3.15/core' of git://git.kernel.dk/linux-block: (25 commits)
    blk-mq: add REQ_SYNC early
    rt,blk,mq: Make blk_mq_cpu_notify_lock a raw spinlock
    blk-mq: support partial I/O completions
    blk-mq: merge blk_mq_insert_request and blk_mq_run_request
    blk-mq: remove blk_mq_alloc_rq
    blk-mq: don't dump CPU -> hw queue map on driver load
    blk-mq: fix wrong usage of hctx->state vs hctx->flags
    blk-mq: allow blk_mq_init_commands() to return failure
    block: remove old blk_iopoll_enabled variable
    blktrace: fix accounting of partially completed requests
    smp: Rename __smp_call_function_single() to smp_call_function_single_async()
    smp: Remove wait argument from __smp_call_function_single()
    watchdog: Simplify a little the IPI call
    smp: Move __smp_call_function_single() below its safe version
    smp: Consolidate the various smp_call_function_single() declensions
    smp: Teach __smp_call_function_single() to check for offline cpus
    smp: Remove unused list_head from csd
    smp: Iterate functions through llist_for_each_entry_safe()
    block: Stop abusing rq->csd.list in blk-softirq
    block: Remove useless IPI struct initialization
    ...

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "There have been lots of changes in ALSA core, HD-audio and ASoC, also
    most of PCI drivers touched by conversions of printks. All these
    resulted in a high volume and wide ranged patch sets in this release.
    Many changes are fairly trivial, but also lots of nice cleanups and
    refactors. There are a few new drivers, most notably, the Intel
    Haswell and Baytrail ASoC driver.

    Core changes:
    - A bit modernization; embed the device struct into snd_card struct,
    so that it may be referred from the beginning. A new
    snd_card_new() function is introduced for that, and all drivers
    have been converted.

    - Simplification in the device management code in ALSA core; now
    managed by a simple priority list instead

    - Converted many kernel messages to use the standard dev_err() & co;
    this would be the pretty visible difference, especially for
    HD-audio.

    HD-audio:
    - Conexant codecs use the auto-parser as default now; the old static
    code still remains in case of regressions. Some old quirks have
    been rewritten with the fixups for auto-parser.

    - C-Media codecs also use the auto-parser as default now, too.

    - A device struct is assigned to each HD-audio codec, and the
    formerly hwdep attributes are accessible over the codec sysfs, too.
    hwdep attributes still remain for compatibility.

    - Split the PCI-specific stuff for HD-audio controller into a
    separate module, ane make a helper module for the generic
    controller driver. This is a preliminary change for supporting
    Tegra HDMI controller in near future, which slipped from 3.15
    merge.

    - Device-specific fixes: mute LED support for Lenovo Ideapad, mic LED
    fix for HP laptops, more ASUS subwoofer quirks, yet more Dell
    laptop headset quirks

    - Make the HD-audio codec response a bit more robust

    - A few improvements on Realtek ALC282 / 283 about the pop noises

    - A couple of Intel HDMI fixes

    ASoC:
    - Lots of cleanups for enumerations; refactored lots of error prone
    original codes to use more modern APIs

    - Elimination of the ASoC level wrappers for I2C and SPI moving us
    closer to converting to regmap completely and avoiding some
    randconfig hassle

    - Provide both manually and transparently locked DAPM APIs rather
    than a mix of the two fixing some concurrency issues

    - Start converting CODEC drivers to use separate bus interface
    drivers rather than having them all in one file helping avoid
    dependency issues

    - DPCM support for Intel Haswell and Bay Trail platforms, lots of
    fixes

    - Lots of work on improvements for simple-card, DaVinci and the
    Renesas rcar drivers.

    - New drivers for Analog Devices ADAU1977, TI PCM512x and parts of
    the CSR SiRF SoC, TLV320AIC31XXX, Armada 370 DB, Cirrus cs42xx8

    - Fixes for the simple-card DAI format DT mess

    - DT support for a couple more devices.

    - Use of the tdm_slot mapping in a few drivers

    Others:
    - Support of reset_resume callback for improved S4 in USB-audio
    driver; the device with boot quirks have been little tested, which
    we need to watch out in this development cycle

    - Add PM support for ICE1712 driver (finally!); it's still pretty
    partial support, only for M-Audio devices"

    * tag 'sound-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (610 commits)
    ALSA: ice1712: Add suspend support for M-Audio ICE1712-based cards
    ALSA: ice1712: add suspend support for ICE1712 chip
    ALSA: hda - Enable beep for ASUS 1015E
    ALSA: asihpi: fix some indenting in snd_card_asihpi_pcm_new()
    ALSA: hda - add headset mic detect quirks for three Dell laptops
    ASoC: tegra: move AC97 clock handling to the machine driver
    ASoC: simple-card: Handle many DAI links
    ASoC: simple-card: Add DT documentation for multi-DAI links
    ASoC: simple-card: dynamically allocate the DAI link and properties
    ASoC: imx-ssi: Add .xlate_tdm_slot_mask() support.
    ASoC: fsl-esai: Add .xlate_tdm_slot_mask() support.
    ASoC: fsl-utils: Add fsl_asoc_xlate_tdm_slot_mask() support.
    ASoC: core: remove the 'of_' prefix of of_xlate_tdm_slot_mask.
    ASoC: rcar: subnode tidyup for renesas,rsnd.txt
    ASoC: Remove name_prefix unset during DAI link init hack
    ALSA: hda - Inform the unexpectedly ignored pins by auto-parser
    ASoC: rcar: bugfix: it cares about the non-src case
    ARM: bockw: fixup SND_SOC_DAIFMT_CBx_CFx flags
    ASoC: pcm: Drop incorrect double/extra frees
    ASoC: mfld_machine: Fix compile error
    ...

    Linus Torvalds
     
  • Pull ACPI and power management updates from Rafael Wysocki:
    "The majority of this material spent some time in linux-next, some of
    it even several weeks. There are a few relatively fresh commits in
    it, but they are mostly fixes and simple cleanups.

    ACPI took the lead this time, both in terms of the number of commits
    and the number of modified lines of code, cpufreq follows and there
    are a few changes in the PM core and in cpuidle too.

    A new feature that already got some LWN.net's attention is the device
    PM QoS extension allowing latency tolerance requirements to be
    propagated from leaf devices to their ancestors with hardware
    interfaces for specifying latency tolerance. That should help systems
    with hardware-driven power management to avoid going too far with it
    in cases when there are latency tolerance constraints.

    There also are some significant changes in the ACPI core related to
    the way in which hotplug notifications are handled. They affect PCI
    hotplug (ACPIPHP) and the ACPI dock station code too. The bottom line
    is that all those notification now go through the root notify handler
    and are propagated to the interested subsystems by means of callbacks
    instead of having to install a notify handler for each device object
    that we can potentially get hotplug notifications for.

    In addition to that ACPICA will now advertise "Windows 2013"
    compatibility for _OSI, because some systems out there don't work
    correctly if that is not done (some of them don't even boot).

    On the system suspend side of things, all of the device suspend and
    resume callbacks, except for ->prepare() and ->complete(), are now
    going to be executed asynchronously as that turns out to speed up
    system suspend and resume on some platforms quite significantly and we
    have a few more optimizations in that area.

    Apart from that, there are some new device IDs and fixes and cleanups
    all over. In particular, the system suspend and resume handling by
    cpufreq should be improved and the cpuidle menu governor should be a
    bit more robust now.

    Specifics:

    - Device PM QoS support for latency tolerance constraints on systems
    with hardware interfaces allowing such constraints to be specified.
    That is necessary to prevent hardware-driven power management from
    becoming overly aggressive on some systems and to prevent power
    management features leading to excessive latencies from being used
    in some cases.

    - Consolidation of the handling of ACPI hotplug notifications for
    device objects. This causes all device hotplug notifications to go
    through the root notify handler (that was executed for all of them
    anyway before) that propagates them to individual subsystems, if
    necessary, by executing callbacks provided by those subsystems
    (those callbacks are associated with struct acpi_device objects
    during device enumeration). As a result, the code in question
    becomes both smaller in size and more straightforward and all of
    those changes should not affect users.

    - ACPICA update, including fixes related to the handling of _PRT in
    cases when it is broken and the addition of "Windows 2013" to the
    list of supported "features" for _OSI (which is necessary to
    support systems that work incorrectly or don't even boot without
    it). Changes from Bob Moore and Lv Zheng.

    - Consolidation of ACPI _OST handling from Jiang Liu.

    - ACPI battery and AC fixes allowing unusual system configurations to
    be handled by that code from Alexander Mezin.

    - New device IDs for the ACPI LPSS driver from Chiau Ee Chew.

    - ACPI fan and thermal optimizations related to system suspend and
    resume from Aaron Lu.

    - Cleanups related to ACPI video from Jean Delvare.

    - Assorted ACPI fixes and cleanups from Al Stone, Hanjun Guo, Lan
    Tianyu, Paul Bolle, Tomasz Nowicki.

    - Intel RAPL (Running Average Power Limits) driver cleanups from
    Jacob Pan.

    - intel_pstate fixes and cleanups from Dirk Brandewie.

    - cpufreq fixes related to system suspend/resume handling from Viresh
    Kumar.

    - cpufreq core fixes and cleanups from Viresh Kumar, Stratos
    Karafotis, Saravana Kannan, Rashika Kheria, Joe Perches.

    - cpufreq drivers updates from Viresh Kumar, Zhuoyu Zhang, Rob
    Herring.

    - cpuidle fixes related to the menu governor from Tuukka Tikkanen.

    - cpuidle fix related to coupled CPUs handling from Paul Burton.

    - Asynchronous execution of all device suspend and resume callbacks,
    except for ->prepare and ->complete, during system suspend and
    resume from Chuansheng Liu.

    - Delayed resuming of runtime-suspended devices during system suspend
    for the PCI bus type and ACPI PM domain.

    - New set of PM helper routines to allow device runtime PM callbacks
    to be used during system suspend and resume more easily from Ulf
    Hansson.

    - Assorted fixes and cleanups in the PM core from Geert Uytterhoeven,
    Prabhakar Lad, Philipp Zabel, Rashika Kheria, Sebastian Capella.

    - devfreq fix from Saravana Kannan"

    * tag 'pm+acpi-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (162 commits)
    PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs
    PM / sleep: Correct whitespace errors in
    intel_pstate: Set core to min P state during core offline
    cpufreq: Add stop CPU callback to cpufreq_driver interface
    cpufreq: Remove unnecessary braces
    cpufreq: Fix checkpatch errors and warnings
    cpufreq: powerpc: add cpufreq transition latency for FSL e500mc SoCs
    MAINTAINERS: Reorder maintainer addresses for PM and ACPI
    PM / Runtime: Update runtime_idle() documentation for return value meaning
    video / output: Drop display output class support
    fujitsu-laptop: Drop unneeded include
    acer-wmi: Stop selecting VIDEO_OUTPUT_CONTROL
    ACPI / gpu / drm: Stop selecting VIDEO_OUTPUT_CONTROL
    ACPI / video: fix ACPI_VIDEO dependencies
    cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE}
    cpufreq: Do not allow ->setpolicy drivers to provide ->target
    cpufreq: arm_big_little: set 'physical_cluster' for each CPU
    cpufreq: arm_big_little: make vexpress driver depend on bL core driver
    ACPI / button: Add ACPI Button event via netlink routine
    ACPI: Remove duplicate definitions of PREFIX
    ...

    Linus Torvalds
     

27 Mar, 2014

1 commit

  • The packet hash can be considered a property of the packet, not just
    on RX path.

    This patch changes name of rxhash and l4_rxhash skbuff fields to be
    hash and l4_hash respectively. This includes changing uses of the
    field in the code which don't call the access functions.

    Signed-off-by: Tom Herbert
    Signed-off-by: Eric Dumazet
    Cc: Mahesh Bandewar
    Signed-off-by: David S. Miller

    Tom Herbert
     

26 Mar, 2014

1 commit

  • ASoC: Updates for v3.15

    Quite a busy release for ASoC this time, more on janitorial work than
    exciting new features but welcome nontheless:

    - Lots of cleanups from Takashi for enumerations; the original API for
    these was error prone so he's refactored lots of code to use more
    modern APIs which avoid issues.
    - Elimination of the ASoC level wrappers for I2C and SPI moving us
    closer to converting to regmap completely and avoiding some
    randconfig hassle.
    - Provide both manually and transparently locked DAPM APIs rather than
    a mix of the two fixing some concurrency issues.
    - Start converting CODEC drivers to use separate bus interface drivers
    rather than having them all in one file helping avoid dependency
    issues.
    - DPCM support for Intel Haswell and Bay Trail platforms.
    - Lots of work on improvements for simple-card, DaVinci and the Renesas
    rcar drivers.
    - New drivers for Analog Devices ADAU1977, TI PCM512x and parts of the
    CSR SiRF SoC.

    # gpg: Signature made Wed 12 Mar 2014 23:05:45 GMT using RSA key ID 7EA229BD
    # gpg: Good signature from "Mark Brown "
    # gpg: aka "Mark Brown "
    # gpg: aka "Mark Brown "
    # gpg: aka "Mark Brown "
    # gpg: aka "Mark Brown "
    # gpg: aka "Mark Brown "

    Mark Brown
     

22 Mar, 2014

1 commit

  • I originally wrote commit 35bb4399bd0e to shrink the size of the overhead of
    tracepoints by several kilobytes. Later, I received a patch from Vaibhav
    Nagarnaik that fixed a bug in the same code that this commit touches. Not
    only did it fix a bug, it also removed code and shrunk the size of the
    overhead of trace events even more than this commit did.

    Since this commit is scheduled for 3.15 and Vaibhav's patch is already in
    mainline, I need to revert this patch in order to keep it from conflicting
    with Vaibhav's patch. Not to mention, Vaibhav's patch makes this patch
    obsolete.

    Link: http://lkml.kernel.org/r/20140320225637.0226041b@gandalf.local.home

    Cc: Vaibhav Nagarnaik
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

21 Mar, 2014

2 commits

  • Since most of the btrfs_workqueue is printed as pointer address,
    for easier analysis, add trace for btrfs_workqueue alloc/destroy.
    So it is possible to determine the workqueue that a given work belongs
    to(by comparing the wq pointer address with alloc trace event).

    Signed-off-by: Qu Wenruo
    Signed-off-by: Chris Mason

    Qu Wenruo
     
  • In event format strings, the array size is reported in two locations.
    One in array subscript and then via the "size:" attribute. The values
    reported there have a mismatch.

    For e.g., in sched:sched_switch the prev_comm and next_comm character
    arrays have subscript values as [32] where as the actual field size is
    16.

    name: sched_switch
    ID: 301
    format:
    field:unsigned short common_type; offset:0; size:2; signed:0;
    field:unsigned char common_flags; offset:2; size:1; signed:0;
    field:unsigned char common_preempt_count; offset:3; size:1;signed:0;
    field:int common_pid; offset:4; size:4; signed:1;

    field:char prev_comm[32]; offset:8; size:16; signed:1;
    field:pid_t prev_pid; offset:24; size:4; signed:1;
    field:int prev_prio; offset:28; size:4; signed:1;
    field:long prev_state; offset:32; size:8; signed:1;
    field:char next_comm[32]; offset:40; size:16; signed:1;
    field:pid_t next_pid; offset:56; size:4; signed:1;
    field:int next_prio; offset:60; size:4; signed:1;

    After bisection, the following commit was blamed:
    92edca0 tracing: Use direct field, type and system names

    This commit removes the duplication of strings for field->name and
    field->type assuming that all the strings passed in
    __trace_define_field() are immutable. This is not true for arrays, where
    the type string is created in event_storage variable and field->type for
    all array fields points to event_storage.

    Use __stringify() to create a string constant for the type string.

    Also, get rid of event_storage and event_storage_mutex that are not
    needed anymore.

    also, an added benefit is that this reduces the overhead of events a bit more:

    text data bss dec hex filename
    8424787 2036472 1302528 11763787 b3804b vmlinux
    8420814 2036408 1302528 11759750 b37086 vmlinux.patched

    Link: http://lkml.kernel.org/r/1392349908-29685-1-git-send-email-vnagarnaik@google.com

    Cc: Laurent Chavey
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: Vaibhav Nagarnaik
    Signed-off-by: Steven Rostedt

    Vaibhav Nagarnaik
     

20 Mar, 2014

1 commit

  • * pm-qos:
    PM / QoS: Add type to dev_pm_qos_add_ancestor_request() arguments
    ACPI / LPSS: Support for device latency tolerance PM QoS
    ACPI / scan: Add bind/unbind callbacks to struct acpi_scan_handler
    PM / QoS: Introcuce latency tolerance device PM QoS type
    PM / QoS: Add no_constraints_value field to struct pm_qos_constraints
    PM / QoS: Rename device resume latency QoS items

    * pm-domains:
    PM / domains: Turn latency warning into debug message

    * pm-drivers:
    PM: Add pm_runtime_suspend|resume_force functions
    PM / runtime: Fetch runtime PM callbacks using a macro

    Rafael J. Wysocki
     

19 Mar, 2014

3 commits

  • Introduce new FALLOC_FL_ZERO_RANGE flag for fallocate. This has the same
    functionality as xfs ioctl XFS_IOC_ZERO_RANGE.

    It can be used to convert a range of file to zeros preferably without
    issuing data IO. Blocks should be preallocated for the regions that span
    holes in the file, and the entire range is preferable converted to
    unwritten extents

    This can be also used to preallocate blocks past EOF in the same way as
    with fallocate. Flag FALLOC_FL_KEEP_SIZE which should cause the inode
    size to remain the same.

    Also add appropriate tracepoints.

    Signed-off-by: Lukas Czerner
    Signed-off-by: "Theodore Ts'o"

    Lukas Czerner
     
  • This was originally added as at optimization that for various reasons isn't
    needed anymore, but it does add a lot of nasty corner cases (and it was
    responsible for some recently fixed bugs). Just get rid of it now.

    Signed-off-by: Kent Overstreet

    Kent Overstreet
     
  • Change the invalidate tracepoint to indicate how much data we're invalidating,
    and change the alloc tracepoints to indicate what offset they're for.

    Signed-off-by: Kent Overstreet

    Kent Overstreet
     

14 Mar, 2014

2 commits

  • The SMBUS tracepoints can be enabled thusly:

    echo 1 >/sys/kernel/debug/tracing/events/i2c/enable

    and will dump messages that can be viewed in /sys/kernel/debug/tracing/trace
    that look like:

    ... smbus_read: i2c-0 a=051 f=0000 c=fa BYTE_DATA
    ... smbus_reply: i2c-0 a=051 f=0000 c=fa BYTE_DATA l=1 [39]
    ... smbus_result: i2c-0 a=051 f=0000 c=fa BYTE_DATA rd res=0

    formatted as:

    i2c-
    a=
    f=
    c=


    res=
    l=
    []

    The adapters to be traced can be selected by something like:

    echo adapter_nr==1 >/sys/kernel/debug/tracing/events/i2c/filter

    Note that this shares the same filter and enablement as i2c.

    Signed-off-by: David Howells
    Reviewed-by: Steven Rostedt
    Signed-off-by: Wolfram Sang

    David Howells
     
  • Add tracepoints into the I2C message transfer function to retrieve the message
    sent or received. The following config options must be turned on to make use
    of the facility:

    CONFIG_FTRACE
    CONFIG_ENABLE_DEFAULT_TRACERS

    The I2C tracepoint can be enabled thusly:

    echo 1 >/sys/kernel/debug/tracing/events/i2c/enable

    and will dump messages that can be viewed in /sys/kernel/debug/tracing/trace
    that look like:

    ... i2c_write: i2c-5 #0 a=044 f=0000 l=2 [02-14]
    ... i2c_read: i2c-5 #1 a=044 f=0001 l=4
    ... i2c_reply: i2c-5 #1 a=044 f=0001 l=4 [33-00-00-00]
    ... i2c_result: i2c-5 n=2 ret=2

    formatted as:

    i2c-
    #
    a=
    f=
    l=
    n=
    ret=
    []

    The operation is done between the i2c_write/i2c_read lines and the i2c_reply
    and i2c_result lines so that if the hardware hangs, the trace buffer can be
    consulted to determine the problematic operation.

    The adapters to be traced can be selected by something like:

    echo adapter_nr==1 >/sys/kernel/debug/tracing/events/i2c/filter

    These changes are based on code from Steven Rostedt.

    Signed-off-by: Steven Rostedt
    Signed-off-by: David Howells
    Reviewed-by: Steven Rostedt
    [wsa: adapted path for 'enable' in the commit msg]
    Signed-off-by: Wolfram Sang

    David Howells