19 Dec, 2012

1 commit

  • Pull minor tracing updates and fixes from Steven Rostedt:
    "It seems that one of my old pull requests have slipped through.

    The changes are contained to just the files that I maintain, and are
    changes from others that I told I would get into this merge window.

    They have already been in linux-next for several weeks, and should be
    well tested."

    * 'tip/perf/core-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Remove unnecessary WARN_ONCE's from tracing_buffers_splice_read
    tracing: Remove unneeded checks from the stack tracer
    tracing: Add a resize function to make one buffer equivalent to another buffer

    Linus Torvalds
     

18 Dec, 2012

2 commits


14 Dec, 2012

1 commit

  • Pull trivial branch from Jiri Kosina:
    "Usual stuff -- comment/printk typo fixes, documentation updates, dead
    code elimination."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    HOWTO: fix double words typo
    x86 mtrr: fix comment typo in mtrr_bp_init
    propagate name change to comments in kernel source
    doc: Update the name of profiling based on sysfs
    treewide: Fix typos in various drivers
    treewide: Fix typos in various Kconfig
    wireless: mwifiex: Fix typo in wireless/mwifiex driver
    messages: i2o: Fix typo in messages/i2o
    scripts/kernel-doc: check that non-void fcts describe their return value
    Kernel-doc: Convention: Use a "Return" section to describe return values
    radeon: Fix typo and copy/paste error in comments
    doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
    various: Fix spelling of "asynchronous" in comments.
    Fix misspellings of "whether" in comments.
    eisa: Fix spelling of "asynchronous".
    various: Fix spelling of "registered" in comments.
    doc: fix quite a few typos within Documentation
    target: iscsi: fix comment typos in target/iscsi drivers
    treewide: fix typo of "suport" in various comments and Kconfig
    treewide: fix typo of "suppport" in various comments
    ...

    Linus Torvalds
     

12 Dec, 2012

1 commit


08 Dec, 2012

2 commits


06 Dec, 2012

1 commit


01 Dec, 2012

2 commits

  • The function rb_check_pages() was added to make sure the ring buffer's
    pages were sane. This check is done when the ring buffer size is modified
    as well as when the iterator is released (closing the "trace" file),
    as that was considered a non fast path and a good place to do a sanity
    check.

    The problem is that the check does not have any locks around it.
    If one process were to read the trace file, and another were to read
    the raw binary file, the check could happen while the reader is reading
    the file.

    The issues with this is that the check requires to clear the HEAD page
    before doing the full check and it restores it afterward. But readers
    require the HEAD page to exist before it can read the buffer, otherwise
    it gives a nasty warning and disables the buffer.

    By adding the reader lock around the check, this keeps the race from
    happening.

    Cc: stable@vger.kernel.org # 3.6
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The function rb_set_head_page() searches the list of ring buffer
    pages for a the page that has the HEAD page flag set. If it does
    not find it, it will do a WARN_ON(), disable the ring buffer and
    return NULL, as this should never happen.

    But if this bug happens to happen, not all callers of this function
    can handle a NULL pointer being returned from it. That needs to be
    fixed.

    Cc: stable@vger.kernel.org # 3.0+
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

20 Nov, 2012

2 commits

  • WARN shouldn't be used as a means of communicating failure to a userspace programmer.

    Link: http://lkml.kernel.org/r/20120725153908.GA25203@redhat.com

    Signed-off-by: Dave Jones
    Signed-off-by: Steven Rostedt

    Dave Jones
     
  • It seems that 'ftrace_enabled' flag should not be used inside the tracer
    functions. The ftrace core is using this flag for internal purposes, and
    the flag wasn't meant to be used in tracers' runtime checks.

    stack tracer is the only tracer that abusing the flag. So stop it from
    serving as a bad example.

    Also, there is a local 'stack_trace_disabled' flag in the stack tracer,
    which is never updated; so it can be removed as well.

    Link: http://lkml.kernel.org/r/1342637761-9655-1-git-send-email-anton.vorontsov@linaro.org

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Steven Rostedt

    Anton Vorontsov
     

16 Nov, 2012

2 commits

  • Trace buffer size is now per-cpu, so that there are the following two
    patterns in resizing of buffers.

    (1) resize per-cpu buffers to same given size
    (2) resize per-cpu buffers to another trace_array's buffer size
    for each CPU (such as preparing the max_tr which is equivalent
    to the global_trace's size)

    __tracing_resize_ring_buffer() can be used for (1), and had
    implemented (2) inside it for resetting the global_trace to the
    original size.

    (2) was also implemented in another place. So this patch assembles
    them in a new function - resize_buffer_duplicate_size().

    Link: http://lkml.kernel.org/r/20121017025616.2627.91226.stgit@falsita

    Signed-off-by: Hiraku Toyooka
    Signed-off-by: Steven Rostedt

    Hiraku Toyooka
     
  • There is a typo here where '&' is used instead of '|' and it turns the
    statement into a noop. The original code is equivalent to:

    iter->flags &= ~((1 << 2) & (1 << 4));

    Link: http://lkml.kernel.org/r/20120609161027.GD6488@elgon.mountain

    Cc: stable@vger.kernel.org # all of them
    Signed-off-by: Dan Carpenter
    Signed-off-by: Steven Rostedt

    Dan Carpenter
     

14 Nov, 2012

3 commits

  • Show raw time stamp values for stats per cpu if you choose counter or tsc mode
    for trace_clock. Although a unit of tracing time stamp is nsec in local or global mode,
    the units in counter and TSC mode are tracing counter and cycles respectively.
    Link: http://lkml.kernel.org/r/1352837903-32191-3-git-send-email-dhsharp@google.com

    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Signed-off-by: Yoshihiro YUNOMAE
    Signed-off-by: David Sharp
    Signed-off-by: Steven Rostedt

    Yoshihiro YUNOMAE
     
  • With the addition of the "tsc" clock, formatting timestamps to look like
    fractional seconds is misleading. Mark clocks as either in nanoseconds or
    not, and format non-nanosecond timestamps as decimal integers.

    Tested:
    $ cd /sys/kernel/debug/tracing/
    $ cat trace_clock
    [local] global tsc
    $ echo sched_switch > set_event
    $ echo 1 > tracing_on ; sleep 0.0005 ; echo 0 > tracing_on
    $ cat trace
    -0 [000] 6330.555552: sched_switch: prev_comm=swapper prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=bash next_pid=29964 next_prio=120
    sleep-29964 [000] 6330.555628: sched_switch: prev_comm=bash prev_pid=29964 prev_prio=120 prev_state=S ==> next_comm=swapper next_pid=0 next_prio=120
    ...
    $ echo 1 > options/latency-format
    $ cat trace
    -0 0 4104553247us+: sched_switch: prev_comm=swapper prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=bash next_pid=29964 next_prio=120
    sleep-29964 0 4104553322us+: sched_switch: prev_comm=bash prev_pid=29964 prev_prio=120 prev_state=S ==> next_comm=swapper next_pid=0 next_prio=120
    ...
    $ echo tsc > trace_clock
    $ cat trace
    $ echo 1 > tracing_on ; sleep 0.0005 ; echo 0 > tracing_on
    $ echo 0 > options/latency-format
    $ cat trace
    -0 [000] 16490053398357: sched_switch: prev_comm=swapper prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=bash next_pid=31128 next_prio=120
    sleep-31128 [000] 16490053588518: sched_switch: prev_comm=bash prev_pid=31128 prev_prio=120 prev_state=S ==> next_comm=swapper next_pid=0 next_prio=120
    ...
    echo 1 > options/latency-format
    $ cat trace
    -0 0 91557653238+: sched_switch: prev_comm=swapper prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=bash next_pid=31128 next_prio=120
    sleep-31128 0 91557843399+: sched_switch: prev_comm=bash prev_pid=31128 prev_prio=120 prev_state=S ==> next_comm=swapper next_pid=0 next_prio=120
    ...

    v2:
    Move arch-specific bits out of generic code.
    v4:
    Fix x86_32 build due to 64-bit division.

    Google-Bug-Id: 6980623
    Link: http://lkml.kernel.org/r/1352837903-32191-2-git-send-email-dhsharp@google.com

    Cc: Masami Hiramatsu
    Signed-off-by: David Sharp
    Signed-off-by: Steven Rostedt

    David Sharp
     
  • In order to promote interoperability between userspace tracers and ftrace,
    add a trace_clock that reports raw TSC values which will then be recorded
    in the ring buffer. Userspace tracers that also record TSCs are then on
    exactly the same time base as the kernel and events can be unambiguously
    interlaced.

    Tested: Enabled a tracepoint and the "tsc" trace_clock and saw very large
    timestamp values.

    v2:
    Move arch-specific bits out of generic code.
    v3:
    Rename "x86-tsc", cleanups
    v7:
    Generic arch bits in Kbuild.

    Google-Bug-Id: 6980623
    Link: http://lkml.kernel.org/r/1352837903-32191-1-git-send-email-dhsharp@google.com

    Acked-by: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: David Sharp
    Signed-off-by: Steven Rostedt

    David Sharp
     

02 Nov, 2012

8 commits

  • Add trace_options to the kernel command line parameter to be able to
    set options at early boot. For example, to enable stack dumps of
    events, add the following:

    trace_options=stacktrace

    This along with the trace_event option, you can get not only
    traces of the events but also the stack dumps with them.

    Requested-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Have the ring buffer commit function use the irq_work infrastructure to
    wake up any waiters waiting on the ring buffer for new data. The irq_work
    was created for such a purpose, where doing the actual wake up at the
    time of adding data is too dangerous, as an event or function trace may
    be in the midst of the work queue locks and cause deadlocks. The irq_work
    will either delay the action to the next timer interrupt, or trigger an IPI
    to itself forcing an interrupt to do the work (in a safe location).

    With irq_work, all ring buffer commits can safely do wakeups, removing
    the need for the ring buffer commit "nowake" variants, which were used
    by events and function tracing. All commits can now safely use the
    normal commit, and the "nowake" variants can be removed.

    Cc: Peter Zijlstra
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The tracing_enabled file was used as a quick way to stop
    tracers, and try to bring down overhead for things like
    the latency tracers (irqsoff, wakeup, etc). But it didn't
    work that well.

    The tracing_on file was created as a really fast way to
    stop recording into the ftrace ring buffer and can interact
    with the kernel. That is a tracing_off() call in the kernel
    can disable recording of events, and then from userspace one
    could echo 1 into the tracing_on file to continue it. The
    tracing_enabled function did too much to allow for this.

    The tracing_on has taken over as a way to start and stop tracing
    and the tracing_enabled file should not be used. But because of
    its existance, it still confuses people. Over a year ago the
    following commit was added:

    commit 6752ab4a9c30d5411b2dfdb251a3f1cb18aae487
    Author: Steven Rostedt
    Date: Tue Feb 8 13:54:06 2011 -0500

    tracing: Deprecate tracing_enabled for tracing_on

    This commit added a WARN_ON() if the tracing_enabled file's variable
    was changed. After this was added, only LatencyTop complained, and
    they soon fixed their tool as there was no reason that LatencyTop
    should touch this file as it was using the perf ring buffers which
    this file does not interact with. But since that time no one else
    has complained about this WARN_ON(). Thus it is safe to assume that
    this file is no longer needed. Time to get rid of it.

    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The tracing_enabled file has been deprecated as it never was able
    to serve its purpose well. The tracing_on file has taken over.
    Instead of having code to keep tracing_enabled, have the tracing_enabled
    file just set tracing_on, and remove the tracing_enabled variable.

    This allows us to remove the tracing_enabled file. The reason that
    the remove is in a different change set and not removed here is
    in case we find some lonely userspace tool that requires the file
    to exist. Then the removal patch will get reverted, but this one
    will not.

    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The function register_tracer() is only used by kernel core code,
    that never needs to remove the tracer. As trace_events have become
    the main way to add new tracing to the kernel, the need to
    unregister a tracer has diminished. Remove the unused function
    unregister_tracer(). If a need arises where we need it, then we
    can always add it back.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The open function used by available_events is the same as set_event even
    though it uses different seq functions. This causes a side effect of
    writing into available_events clearing all events, even though
    available_events is suppose to be read only.

    There's no reason to keep a single function for just the open and have
    both use different functions for everything else. It is a little
    confusing and causes strange behavior. Just have each have their own
    function.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • ring_buffer_oldest_event_ts() should return a value of u64 type, because
    ring_buffer_per_cpu->buffer_page->buffer_data_page->time_stamp is u64 type.

    Link: http://lkml.kernel.org/r/1349998076-15495-5-git-send-email-dhsharp@google.com

    Cc: Frederic Weisbecker
    Cc: Vaibhav Nagarnaik
    Signed-off-by: Yoshihiro YUNOMAE
    Signed-off-by: David Sharp
    Signed-off-by: Steven Rostedt

    Yoshihiro YUNOMAE
     
  • Because the "tsc" clock isn't in nanoseconds, the ring buffer must be
    reset when changing clocks so that incomparable timestamps don't end up
    in the same trace.

    Tested: Confirmed switching clocks resets the trace buffer.

    Google-Bug-Id: 6980623
    Link: http://lkml.kernel.org/r/1349998076-15495-3-git-send-email-dhsharp@google.com

    Cc: Masami Hiramatsu
    Signed-off-by: David Sharp
    Signed-off-by: Steven Rostedt

    David Sharp
     

01 Nov, 2012

10 commits

  • The functions defined in include/trace/syscalls.h are not used directly
    since struct ftrace_event_class was introduced. Remove them from the
    header file and rearrange the ftrace_event_class declarations in
    trace_syscalls.c.

    Link: http://lkml.kernel.org/r/1339112785-21806-2-git-send-email-vnagarnaik@google.com

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

    Vaibhav Nagarnaik
     
  • Remove ftrace_format_syscall() declaration; it is neither defined nor
    used. Also update a comment and formatting.

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

    Signed-off-by: David Sharp
    Signed-off-by: Vaibhav Nagarnaik
    Signed-off-by: Steven Rostedt

    David Sharp
     
  • Whenever an event is registered, the comm of tasks are saved at
    every task switch instead of saving them at every event. But if
    an event isn't executed much, the comm cache will be filled up
    by tasks that did not record the event and you lose out on the comms
    that did.

    Here's an example, if you enable the following events:

    echo 1 > /debug/tracing/events/kvm/kvm_cr/enable
    echo 1 > /debug/tracing/events/net/net_dev_xmit/enable

    Note, there's no kvm running on this machine so the first event will
    never be triggered, but because it is enabled, the storing of comms
    will continue. If we now disable the network event:

    echo 0 > /debug/tracing/events/net/net_dev_xmit/enable

    and look at the trace:

    cat /debug/tracing/trace
    sshd-2672 [001] ..s2 375.731616: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s1 375.731617: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s2 375.859356: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s1 375.859357: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s2 375.947351: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s1 375.947352: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s2 376.035383: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s1 376.035383: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    sshd-2672 [001] ..s2 377.563806: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=226 rc=0
    sshd-2672 [001] ..s1 377.563807: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=226 rc=0
    sshd-2672 [001] ..s2 377.563834: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6be0 len=114 rc=0
    sshd-2672 [001] ..s1 377.563842: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6be0 len=114 rc=0

    We see that process 2672 which triggered the events has the comm "sshd".
    But if we run hackbench for a bit and look again:

    cat /debug/tracing/trace
    -2672 [001] ..s2 375.731616: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s1 375.731617: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s2 375.859356: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s1 375.859357: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s2 375.947351: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s1 375.947352: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s2 376.035383: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s1 376.035383: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=242 rc=0
    -2672 [001] ..s2 377.563806: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6de0 len=226 rc=0
    -2672 [001] ..s1 377.563807: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6de0 len=226 rc=0
    -2672 [001] ..s2 377.563834: net_dev_xmit: dev=eth0 skbaddr=ffff88005cbb6be0 len=114 rc=0
    -2672 [001] ..s1 377.563842: net_dev_xmit: dev=br0 skbaddr=ffff88005cbb6be0 len=114 rc=0

    The stored "sshd" comm has been flushed out and we get a useless "".

    But by only storing comms after a trace event occurred, we can run
    hackbench all day and still get the same output.

    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The functon tracing_sched_wakeup_trace() does an open coded unlock
    commit and save stack. This is what the trace_nowake_buffer_unlock_commit()
    is for.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • If comm recording is not enabled when trace_printk() is used then
    you just get this type of output:

    [ adding trace_printk("hello! %d", irq); in do_IRQ ]

    -2843 [001] d.h. 80.812300: do_IRQ: hello! 14
    -2734 [002] d.h2 80.824664: do_IRQ: hello! 14
    -2713 [003] d.h. 80.829971: do_IRQ: hello! 14
    -2814 [000] d.h. 80.833026: do_IRQ: hello! 14

    By enabling the comm recorder when trace_printk is enabled:

    hackbench-6715 [001] d.h. 193.233776: do_IRQ: hello! 21
    sshd-2659 [001] d.h. 193.665862: do_IRQ: hello! 21
    -0 [001] d.h1 193.665996: do_IRQ: hello! 21

    Suggested-by: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Since tracing is not used by 99% of Linux users, even though tracing
    may be configured in, it does not make sense to allocate 1.4 Megs
    per CPU for the ring buffers if they are not used. Thus, on boot up
    the ring buffers are set to a minimal size until something needs the
    and they are expanded.

    This works well for events and tracers (function, etc), but for the
    asynchronous use of trace_printk() which can write to the ring buffer
    at any time, does not expand the buffers.

    On boot up a check is made to see if any trace_printk() is used to
    see if the trace_printk() temp buffer pages should be allocated. This
    same code can be used to expand the buffers as well.

    Suggested-by: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The existing 'overrun' counter is incremented when the ring
    buffer wraps around, with overflow on (the default). We wanted
    a way to count requests lost from the buffer filling up with
    overflow off, too. I decided to add a new counter instead
    of retro-fitting the existing one because it seems like a
    different statistic to count conceptually, and also because
    of how the code was structured.

    Link: http://lkml.kernel.org/r/1310765038-26399-1-git-send-email-slavapestov@google.com

    Signed-off-by: Slava Pestov
    Signed-off-by: Steven Rostedt

    Slava Pestov
     
  • print_max and use_max_tr in struct tracer are "int" variables and
    used like flags. This is wasteful, so change the type to "bool".

    Link: http://lkml.kernel.org/r/20121002082710.9807.86393.stgit@falsita

    Signed-off-by: Hiraku Toyooka
    Signed-off-by: Steven Rostedt

    Hiraku Toyooka
     
  • There's times during debugging that it is helpful to see traces of early
    boot functions. But the tracers are initialized at device_initcall()
    which is quite late during the boot process. Setting the kernel command
    line parameter ftrace=function will not show anything until the function
    tracer is initialized. This prevents being able to trace functions before
    device_initcall().

    There's no reason that the tracers need to be initialized so late in the
    boot process. Move them up to core_initcall() as they still need to come
    after early_initcall() which initializes the tracing buffers.

    Cc: Thomas Gleixner
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • * remove old string conversions with kstrto*

    Link: http://lkml.kernel.org/r/20120926200838.GC1244@0x90.at

    Signed-off-by: Daniel Walter
    Signed-off-by: Steven Rostedt

    Daniel Walter
     

25 Oct, 2012

1 commit


22 Oct, 2012

1 commit


12 Oct, 2012

1 commit

  • With a system where, num_present_cpus < num_possible_cpus, even if all
    CPUs are online, non-present CPUs don't have per_cpu buffers allocated.
    If per_cpu//buffer_size_kb is modified for such a CPU, it can cause
    a panic due to NULL dereference in ring_buffer_resize().

    To fix this, resize operation is allowed only if the per-cpu buffer has
    been initialized.

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

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

    Vaibhav Nagarnaik
     

07 Oct, 2012

2 commits

  • Pull virtio changes from Rusty Russell:
    "New workflow: same git trees pulled by linux-next get sent straight to
    Linus. Git is awkward at shuffling patches compared with quilt or mq,
    but that doesn't happen often once things get into my -next branch."

    * 'virtio-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (24 commits)
    lguest: fix occasional crash in example launcher.
    virtio-blk: Disable callback in virtblk_done()
    virtio_mmio: Don't attempt to create empty virtqueues
    virtio_mmio: fix off by one error allocating queue
    drivers/virtio/virtio_pci.c: fix error return code
    virtio: don't crash when device is buggy
    virtio: remove CONFIG_VIRTIO_RING
    virtio: add help to CONFIG_VIRTIO option.
    virtio: support reserved vqs
    virtio: introduce an API to set affinity for a virtqueue
    virtio-ring: move queue_index to vring_virtqueue
    virtio_balloon: not EXPERIMENTAL any more.
    virtio-balloon: dependency fix
    virtio-blk: fix NULL checking in virtblk_alloc_req()
    virtio-blk: Add REQ_FLUSH and REQ_FUA support to bio path
    virtio-blk: Add bio-based IO path for virtio-blk
    virtio: console: fix error handling in init() function
    tools: Fix pthread flag for Makefile of trace-agent used by virtio-trace
    tools: Add guest trace agent as a user tool
    virtio/console: Allocate scatterlist according to the current pipe size
    ...

    Linus Torvalds
     
  • Pull pstore changes from Anton Vorontsov:

    1) We no longer ad-hoc to the function tracer "high level"
    infrastructure and no longer use its debugfs knobs. The change
    slightly touches kernel/trace directory, but it got the needed ack
    from Steven Rostedt:

    http://lkml.org/lkml/2012/8/21/688

    2) Added maintainers entry;

    3) A bunch of fixes, nothing special.

    * tag 'for-v3.7' of git://git.infradead.org/users/cbou/linux-pstore:
    pstore: Avoid recursive spinlocks in the oops_in_progress case
    pstore/ftrace: Convert to its own enable/disable debugfs knob
    pstore/ram: Add missing platform_device_unregister
    MAINTAINERS: Add pstore maintainers
    pstore/ram: Mark ramoops_pstore_write_buf() as notrace
    pstore/ram: Fix printk format warning
    pstore/ram: Fix possible NULL dereference

    Linus Torvalds