OSDN Git Service

intel_th: msu: Introduce buffer interface
authorAlexander Shishkin <alexander.shishkin@linux.intel.com>
Fri, 5 Jul 2019 14:14:21 +0000 (17:14 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jul 2019 11:03:18 +0000 (13:03 +0200)
commit615c164da0eb42cbfb1688cb429cc4d5039db5d8
tree5b2de647c457cf257c8afef1dfa50af0af8ea833
parentdb4ad308a50620c8a24419dcc6556fabaf594c0e
intel_th: msu: Introduce buffer interface

Introduces a concept of external buffers, which is a mechanism for creating
trace sinks that would receive trace data from MSC buffers and transfer it
elsewhere.

A external buffer can implement its own window allocation/deallocation if
it has to. It must provide a callback that's used to notify it when a
window fills up, so that it can then start a DMA transaction from that
window 'elsewhere'. This window remains in a 'locked' state and won't be
used for storing new trace data until the buffer 'unlocks' it with a
provided API call, at which point the window can be used again for storing
trace data.

This relies on a functional "last block" interrupt, so not all versions of
Trace Hub can use this feature, which does not reflect on existing users.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20190705141425.19894-2-alexander.shishkin@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/ABI/testing/sysfs-bus-intel_th-devices-msc
MAINTAINERS
drivers/hwtracing/intel_th/msu.c
drivers/hwtracing/intel_th/msu.h
include/linux/intel_th.h [new file with mode: 0644]