coresight: tmc-etr: Introduce the notion of process ID to ETR devices
In preparation to support CPU-wide trace scenarios, introduce the notion of process ID to ETR devices. That way events monitoring the same process can use the same etr_buf, allowing multiple CPUs to use the same sink. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Tested-by: Leo Yan <leo.yan@linaro.org> Tested-by: Robert Walker <robert.walker@arm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
e553a8aef4
Коммит
ef848e463a
|
@ -9,6 +9,7 @@
|
||||||
#include <linux/dma-mapping.h>
|
#include <linux/dma-mapping.h>
|
||||||
#include <linux/iommu.h>
|
#include <linux/iommu.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/types.h>
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
#include "coresight-catu.h"
|
#include "coresight-catu.h"
|
||||||
#include "coresight-etm-perf.h"
|
#include "coresight-etm-perf.h"
|
||||||
|
@ -25,6 +26,7 @@ struct etr_flat_buf {
|
||||||
/*
|
/*
|
||||||
* etr_perf_buffer - Perf buffer used for ETR
|
* etr_perf_buffer - Perf buffer used for ETR
|
||||||
* @etr_buf - Actual buffer used by the ETR
|
* @etr_buf - Actual buffer used by the ETR
|
||||||
|
* @pid - The PID this etr_perf_buffer belongs to.
|
||||||
* @snaphost - Perf session mode
|
* @snaphost - Perf session mode
|
||||||
* @head - handle->head at the beginning of the session.
|
* @head - handle->head at the beginning of the session.
|
||||||
* @nr_pages - Number of pages in the ring buffer.
|
* @nr_pages - Number of pages in the ring buffer.
|
||||||
|
@ -32,6 +34,7 @@ struct etr_flat_buf {
|
||||||
*/
|
*/
|
||||||
struct etr_perf_buffer {
|
struct etr_perf_buffer {
|
||||||
struct etr_buf *etr_buf;
|
struct etr_buf *etr_buf;
|
||||||
|
pid_t pid;
|
||||||
bool snapshot;
|
bool snapshot;
|
||||||
unsigned long head;
|
unsigned long head;
|
||||||
int nr_pages;
|
int nr_pages;
|
||||||
|
@ -1277,6 +1280,7 @@ static void *tmc_alloc_etr_buffer(struct coresight_device *csdev,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
etr_perf->pid = task_pid_nr(event->owner);
|
||||||
etr_perf->snapshot = snapshot;
|
etr_perf->snapshot = snapshot;
|
||||||
etr_perf->nr_pages = nr_pages;
|
etr_perf->nr_pages = nr_pages;
|
||||||
etr_perf->pages = pages;
|
etr_perf->pages = pages;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче