From: Yiwei Zhang <[email protected]>
This change adds the below gpu memory tracepoint:
gpu_mem/gpu_mem_total: track global or process gpu memory total counters
Signed-off-by: Yiwei Zhang <[email protected]>
---
drivers/Kconfig | 2 +
drivers/gpu/Makefile | 1 +
drivers/gpu/trace/Kconfig | 4 ++
drivers/gpu/trace/Makefile | 3 ++
drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
include/trace/events/gpu_mem.h | 64 +++++++++++++++++++++++++++++++
6 files changed, 87 insertions(+)
create mode 100644 drivers/gpu/trace/Kconfig
create mode 100644 drivers/gpu/trace/Makefile
create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
create mode 100644 include/trace/events/gpu_mem.h
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8befa53f43be..e0eda1a5c3f9 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
source "drivers/android/Kconfig"
+source "drivers/gpu/trace/Kconfig"
+
source "drivers/nvdimm/Kconfig"
source "drivers/dax/Kconfig"
diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
index f17d01f076c7..835c88318cec 100644
--- a/drivers/gpu/Makefile
+++ b/drivers/gpu/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
obj-y += drm/ vga/
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
+obj-$(CONFIG_TRACE_GPU_MEM) += trace/
diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
new file mode 100644
index 000000000000..c24e9edd022e
--- /dev/null
+++ b/drivers/gpu/trace/Kconfig
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config TRACE_GPU_MEM
+ bool
diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
new file mode 100644
index 000000000000..b70fbdc5847f
--- /dev/null
+++ b/drivers/gpu/trace/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
new file mode 100644
index 000000000000..01e855897b6d
--- /dev/null
+++ b/drivers/gpu/trace/trace_gpu_mem.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#include <linux/module.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/gpu_mem.h>
+
+EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
new file mode 100644
index 000000000000..3b632a2b5100
--- /dev/null
+++ b/include/trace/events/gpu_mem.h
@@ -0,0 +1,64 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gpu_mem
+
+#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_GPU_MEM_H
+
+#include <linux/tracepoint.h>
+
+/*
+ * The gpu_memory_total event indicates that there's an update to either the
+ * global or process total gpu memory counters.
+ *
+ * This event should be emitted whenever the kernel device driver allocates,
+ * frees, imports, unimports memory in the GPU addressable space.
+ *
+ * @gpu_id: This is the gpu id.
+ *
+ * @pid: Put 0 for global total, while positive pid for process total.
+ *
+ * @size: Virtual size of the allocation in bytes.
+ *
+ */
+TRACE_EVENT(gpu_mem_total,
+ TP_PROTO(
+ uint32_t gpu_id,
+ uint32_t pid,
+ uint64_t size
+ ),
+ TP_ARGS(
+ gpu_id,
+ pid,
+ size
+ ),
+ TP_STRUCT__entry(
+ __field(uint32_t, gpu_id)
+ __field(uint32_t, pid)
+ __field(uint64_t, size)
+ ),
+ TP_fast_assign(
+ __entry->gpu_id = gpu_id;
+ __entry->pid = pid;
+ __entry->size = size;
+ ),
+ TP_printk(
+ "gpu_id=%u "
+ "pid=%u "
+ "size=%llu",
+ __entry->gpu_id,
+ __entry->pid,
+ __entry->size
+ )
+);
+
+#endif /* _TRACE_GPU_MEM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
--
2.25.0.225.g125e21ebc7-goog
The context is here: https://lkml.org/lkml/2020/2/10/1903 and
https://lkml.org/lkml/2020/2/12/997
On Wed, Feb 12, 2020 at 4:33 PM <[email protected]> wrote:
>
> From: Yiwei Zhang <[email protected]>
>
> This change adds the below gpu memory tracepoint:
> gpu_mem/gpu_mem_total: track global or process gpu memory total counters
>
> Signed-off-by: Yiwei Zhang <[email protected]>
> ---
> drivers/Kconfig | 2 +
> drivers/gpu/Makefile | 1 +
> drivers/gpu/trace/Kconfig | 4 ++
> drivers/gpu/trace/Makefile | 3 ++
> drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
> include/trace/events/gpu_mem.h | 64 +++++++++++++++++++++++++++++++
> 6 files changed, 87 insertions(+)
> create mode 100644 drivers/gpu/trace/Kconfig
> create mode 100644 drivers/gpu/trace/Makefile
> create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
> create mode 100644 include/trace/events/gpu_mem.h
>
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 8befa53f43be..e0eda1a5c3f9 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
>
> source "drivers/android/Kconfig"
>
> +source "drivers/gpu/trace/Kconfig"
> +
> source "drivers/nvdimm/Kconfig"
>
> source "drivers/dax/Kconfig"
> diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
> index f17d01f076c7..835c88318cec 100644
> --- a/drivers/gpu/Makefile
> +++ b/drivers/gpu/Makefile
> @@ -5,3 +5,4 @@
> obj-$(CONFIG_TEGRA_HOST1X) += host1x/
> obj-y += drm/ vga/
> obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace/
> diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
> new file mode 100644
> index 000000000000..c24e9edd022e
> --- /dev/null
> +++ b/drivers/gpu/trace/Kconfig
> @@ -0,0 +1,4 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +config TRACE_GPU_MEM
> + bool
> diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
> new file mode 100644
> index 000000000000..b70fbdc5847f
> --- /dev/null
> +++ b/drivers/gpu/trace/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
> diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
> new file mode 100644
> index 000000000000..01e855897b6d
> --- /dev/null
> +++ b/drivers/gpu/trace/trace_gpu_mem.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#include <linux/module.h>
> +
> +#define CREATE_TRACE_POINTS
> +#include <trace/events/gpu_mem.h>
> +
> +EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
> diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> new file mode 100644
> index 000000000000..3b632a2b5100
> --- /dev/null
> +++ b/include/trace/events/gpu_mem.h
> @@ -0,0 +1,64 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM gpu_mem
> +
> +#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_GPU_MEM_H
> +
> +#include <linux/tracepoint.h>
> +
> +/*
> + * The gpu_memory_total event indicates that there's an update to either the
> + * global or process total gpu memory counters.
> + *
> + * This event should be emitted whenever the kernel device driver allocates,
> + * frees, imports, unimports memory in the GPU addressable space.
> + *
> + * @gpu_id: This is the gpu id.
> + *
> + * @pid: Put 0 for global total, while positive pid for process total.
> + *
> + * @size: Virtual size of the allocation in bytes.
> + *
> + */
> +TRACE_EVENT(gpu_mem_total,
> + TP_PROTO(
> + uint32_t gpu_id,
> + uint32_t pid,
> + uint64_t size
> + ),
> + TP_ARGS(
> + gpu_id,
> + pid,
> + size
> + ),
> + TP_STRUCT__entry(
> + __field(uint32_t, gpu_id)
> + __field(uint32_t, pid)
> + __field(uint64_t, size)
> + ),
> + TP_fast_assign(
> + __entry->gpu_id = gpu_id;
> + __entry->pid = pid;
> + __entry->size = size;
> + ),
> + TP_printk(
> + "gpu_id=%u "
> + "pid=%u "
> + "size=%llu",
> + __entry->gpu_id,
> + __entry->pid,
> + __entry->size
> + )
> +);
> +
> +#endif /* _TRACE_GPU_MEM_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
> --
> 2.25.0.225.g125e21ebc7-goog
>
On Wed, Feb 12, 2020 at 04:32:59PM -0800, [email protected] wrote:
> From: Yiwei Zhang <[email protected]>
>
> This change adds the below gpu memory tracepoint:
> gpu_mem/gpu_mem_total: track global or process gpu memory total counters
>
> Signed-off-by: Yiwei Zhang <[email protected]>
If this helps gpu drivers wean themselves off of debugfs, I am all for
it:
Acked-by: Greg Kroah-Hartman <[email protected]>
Thanks for doing this.
greg k-h
Hi Greg,
Thanks for your prompt response!
For upstream drm gem based gfx drivers, the lower level device driver
layer is able to implement such per-process gpu memory total counters
but the common drm gem layer is probably not. At least the global
total gpu memory counter is fairly easy to implement, and then this
tracepoint can still be useful right away.
For Android, the debugfs has already been forced to be deprecated in
the coming Android 11 release. We have asked Android GPU vendors to
implement such global and per-process total memory counters. So they
can easily use this tracepoint inside the driver. This is mainly to
serve the profiling needs as well as the runtime query needs(by
attaching a eBPF program from userspace), and this patch helps
standardize the tracepoint in the kernel.
Many thanks!
Yiwei
On Wed, Feb 12, 2020 at 4:40 PM Greg KH <[email protected]> wrote:
>
> On Wed, Feb 12, 2020 at 04:32:59PM -0800, [email protected] wrote:
> > From: Yiwei Zhang <[email protected]>
> >
> > This change adds the below gpu memory tracepoint:
> > gpu_mem/gpu_mem_total: track global or process gpu memory total counters
> >
> > Signed-off-by: Yiwei Zhang <[email protected]>
>
> If this helps gpu drivers wean themselves off of debugfs, I am all for
> it:
> Acked-by: Greg Kroah-Hartman <[email protected]>
>
> Thanks for doing this.
>
> greg k-h
On Wed, 12 Feb 2020 16:32:59 -0800
[email protected] wrote:
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM gpu_mem
> +
> +#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_GPU_MEM_H
> +
> +#include <linux/tracepoint.h>
> +
> +/*
> + * The gpu_memory_total event indicates that there's an update to either the
> + * global or process total gpu memory counters.
> + *
> + * This event should be emitted whenever the kernel device driver allocates,
> + * frees, imports, unimports memory in the GPU addressable space.
> + *
> + * @gpu_id: This is the gpu id.
> + *
> + * @pid: Put 0 for global total, while positive pid for process total.
> + *
> + * @size: Virtual size of the allocation in bytes.
> + *
> + */
> +TRACE_EVENT(gpu_mem_total,
> + TP_PROTO(
> + uint32_t gpu_id,
> + uint32_t pid,
> + uint64_t size
> + ),
> + TP_ARGS(
> + gpu_id,
> + pid,
> + size
> + ),
This is unique whitespace parsing. Usually, this would be:
TP_PROTO(uint32_t gpu_id, unint32_t pid, uint64_t size),
TP_ARGS(gpu_id, pid, size),
> + TP_STRUCT__entry(
> + __field(uint32_t, gpu_id)
> + __field(uint32_t, pid)
> + __field(uint64_t, size)
> + ),
> + TP_fast_assign(
> + __entry->gpu_id = gpu_id;
> + __entry->pid = pid;
> + __entry->size = size;
> + ),
> + TP_printk(
> + "gpu_id=%u "
> + "pid=%u "
> + "size=%llu",
Breaking up a string is frowned upon.
TP_print("gpu_id=%u pid=$u size=%llu",
__entry->gpu_id,
__entry->pid,
__entry->size)
-- Steve
> + __entry->gpu_id,
> + __entry->pid,
> + __entry->size
> + )
> +);
> +
> +#endif /* _TRACE_GPU_MEM_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
From: Yiwei Zhang <[email protected]>
This change adds the below gpu memory tracepoint:
gpu_mem/gpu_mem_total: track global or process gpu memory total counters
Signed-off-by: Yiwei Zhang <[email protected]>
---
drivers/Kconfig | 2 ++
drivers/gpu/Makefile | 1 +
drivers/gpu/trace/Kconfig | 4 +++
drivers/gpu/trace/Makefile | 3 ++
drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
6 files changed, 80 insertions(+)
create mode 100644 drivers/gpu/trace/Kconfig
create mode 100644 drivers/gpu/trace/Makefile
create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
create mode 100644 include/trace/events/gpu_mem.h
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8befa53f43be..e0eda1a5c3f9 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
source "drivers/android/Kconfig"
+source "drivers/gpu/trace/Kconfig"
+
source "drivers/nvdimm/Kconfig"
source "drivers/dax/Kconfig"
diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
index f17d01f076c7..835c88318cec 100644
--- a/drivers/gpu/Makefile
+++ b/drivers/gpu/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
obj-y += drm/ vga/
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
+obj-$(CONFIG_TRACE_GPU_MEM) += trace/
diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
new file mode 100644
index 000000000000..c24e9edd022e
--- /dev/null
+++ b/drivers/gpu/trace/Kconfig
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config TRACE_GPU_MEM
+ bool
diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
new file mode 100644
index 000000000000..b70fbdc5847f
--- /dev/null
+++ b/drivers/gpu/trace/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
new file mode 100644
index 000000000000..01e855897b6d
--- /dev/null
+++ b/drivers/gpu/trace/trace_gpu_mem.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#include <linux/module.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/gpu_mem.h>
+
+EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
new file mode 100644
index 000000000000..1897822a9150
--- /dev/null
+++ b/include/trace/events/gpu_mem.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gpu_mem
+
+#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_GPU_MEM_H
+
+#include <linux/tracepoint.h>
+
+/*
+ * The gpu_memory_total event indicates that there's an update to either the
+ * global or process total gpu memory counters.
+ *
+ * This event should be emitted whenever the kernel device driver allocates,
+ * frees, imports, unimports memory in the GPU addressable space.
+ *
+ * @gpu_id: This is the gpu id.
+ *
+ * @pid: Put 0 for global total, while positive pid for process total.
+ *
+ * @size: Virtual size of the allocation in bytes.
+ *
+ */
+TRACE_EVENT(gpu_mem_total,
+
+ TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
+
+ TP_ARGS(gpu_id, pid, size),
+
+ TP_STRUCT__entry(
+ __field(uint32_t, gpu_id)
+ __field(uint32_t, pid)
+ __field(uint64_t, size)
+ ),
+
+ TP_fast_assign(
+ __entry->gpu_id = gpu_id;
+ __entry->pid = pid;
+ __entry->size = size;
+ ),
+
+ TP_printk("gpu_id=%u pid=%u size=%llu",
+ __entry->gpu_id,
+ __entry->pid,
+ __entry->size)
+);
+
+#endif /* _TRACE_GPU_MEM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
--
2.25.0.225.g125e21ebc7-goog
Hi Steven,
I'm not sure if my use of "in-reply-to" is correct. I can only find
the Message-Id of my original email from cmdline. but looks like the
diff shows up right.
Best,
Yiwei
On Wed, Feb 12, 2020 at 6:20 PM <[email protected]> wrote:
>
> From: Yiwei Zhang <[email protected]>
>
> This change adds the below gpu memory tracepoint:
> gpu_mem/gpu_mem_total: track global or process gpu memory total counters
>
> Signed-off-by: Yiwei Zhang <[email protected]>
> ---
> drivers/Kconfig | 2 ++
> drivers/gpu/Makefile | 1 +
> drivers/gpu/trace/Kconfig | 4 +++
> drivers/gpu/trace/Makefile | 3 ++
> drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
> include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
> 6 files changed, 80 insertions(+)
> create mode 100644 drivers/gpu/trace/Kconfig
> create mode 100644 drivers/gpu/trace/Makefile
> create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
> create mode 100644 include/trace/events/gpu_mem.h
>
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 8befa53f43be..e0eda1a5c3f9 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
>
> source "drivers/android/Kconfig"
>
> +source "drivers/gpu/trace/Kconfig"
> +
> source "drivers/nvdimm/Kconfig"
>
> source "drivers/dax/Kconfig"
> diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
> index f17d01f076c7..835c88318cec 100644
> --- a/drivers/gpu/Makefile
> +++ b/drivers/gpu/Makefile
> @@ -5,3 +5,4 @@
> obj-$(CONFIG_TEGRA_HOST1X) += host1x/
> obj-y += drm/ vga/
> obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace/
> diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
> new file mode 100644
> index 000000000000..c24e9edd022e
> --- /dev/null
> +++ b/drivers/gpu/trace/Kconfig
> @@ -0,0 +1,4 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +config TRACE_GPU_MEM
> + bool
> diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
> new file mode 100644
> index 000000000000..b70fbdc5847f
> --- /dev/null
> +++ b/drivers/gpu/trace/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
> diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
> new file mode 100644
> index 000000000000..01e855897b6d
> --- /dev/null
> +++ b/drivers/gpu/trace/trace_gpu_mem.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#include <linux/module.h>
> +
> +#define CREATE_TRACE_POINTS
> +#include <trace/events/gpu_mem.h>
> +
> +EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
> diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> new file mode 100644
> index 000000000000..1897822a9150
> --- /dev/null
> +++ b/include/trace/events/gpu_mem.h
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM gpu_mem
> +
> +#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_GPU_MEM_H
> +
> +#include <linux/tracepoint.h>
> +
> +/*
> + * The gpu_memory_total event indicates that there's an update to either the
> + * global or process total gpu memory counters.
> + *
> + * This event should be emitted whenever the kernel device driver allocates,
> + * frees, imports, unimports memory in the GPU addressable space.
> + *
> + * @gpu_id: This is the gpu id.
> + *
> + * @pid: Put 0 for global total, while positive pid for process total.
> + *
> + * @size: Virtual size of the allocation in bytes.
> + *
> + */
> +TRACE_EVENT(gpu_mem_total,
> +
> + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> +
> + TP_ARGS(gpu_id, pid, size),
> +
> + TP_STRUCT__entry(
> + __field(uint32_t, gpu_id)
> + __field(uint32_t, pid)
> + __field(uint64_t, size)
> + ),
> +
> + TP_fast_assign(
> + __entry->gpu_id = gpu_id;
> + __entry->pid = pid;
> + __entry->size = size;
> + ),
> +
> + TP_printk("gpu_id=%u pid=%u size=%llu",
> + __entry->gpu_id,
> + __entry->pid,
> + __entry->size)
> +);
> +
> +#endif /* _TRACE_GPU_MEM_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
> --
> 2.25.0.225.g125e21ebc7-goog
>
On Wed, 12 Feb 2020 18:24:32 -0800
Yiwei Zhang <[email protected]> wrote:
> Hi Steven,
>
> I'm not sure if my use of "in-reply-to" is correct. I can only find
> the Message-Id of my original email from cmdline. but looks like the
> diff shows up right.
You mean this one?
https://lore.kernel.org/lkml/[email protected]/
Looks fine, except I think you meant to make this v3. Also you may have
wanted to add a topic, "gpu/trace: "? to the subject.
-- Steve
From: Yiwei Zhang <[email protected]>
This change adds the below gpu memory tracepoint:
gpu_mem/gpu_mem_total: track global or process gpu memory total counters
Signed-off-by: Yiwei Zhang <[email protected]>
---
drivers/Kconfig | 2 ++
drivers/gpu/Makefile | 1 +
drivers/gpu/trace/Kconfig | 4 +++
drivers/gpu/trace/Makefile | 3 ++
drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
6 files changed, 80 insertions(+)
create mode 100644 drivers/gpu/trace/Kconfig
create mode 100644 drivers/gpu/trace/Makefile
create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
create mode 100644 include/trace/events/gpu_mem.h
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8befa53f43be..e0eda1a5c3f9 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
source "drivers/android/Kconfig"
+source "drivers/gpu/trace/Kconfig"
+
source "drivers/nvdimm/Kconfig"
source "drivers/dax/Kconfig"
diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
index f17d01f076c7..835c88318cec 100644
--- a/drivers/gpu/Makefile
+++ b/drivers/gpu/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
obj-y += drm/ vga/
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
+obj-$(CONFIG_TRACE_GPU_MEM) += trace/
diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
new file mode 100644
index 000000000000..c24e9edd022e
--- /dev/null
+++ b/drivers/gpu/trace/Kconfig
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config TRACE_GPU_MEM
+ bool
diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
new file mode 100644
index 000000000000..b70fbdc5847f
--- /dev/null
+++ b/drivers/gpu/trace/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
new file mode 100644
index 000000000000..01e855897b6d
--- /dev/null
+++ b/drivers/gpu/trace/trace_gpu_mem.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#include <linux/module.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/gpu_mem.h>
+
+EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
new file mode 100644
index 000000000000..1897822a9150
--- /dev/null
+++ b/include/trace/events/gpu_mem.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gpu_mem
+
+#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_GPU_MEM_H
+
+#include <linux/tracepoint.h>
+
+/*
+ * The gpu_memory_total event indicates that there's an update to either the
+ * global or process total gpu memory counters.
+ *
+ * This event should be emitted whenever the kernel device driver allocates,
+ * frees, imports, unimports memory in the GPU addressable space.
+ *
+ * @gpu_id: This is the gpu id.
+ *
+ * @pid: Put 0 for global total, while positive pid for process total.
+ *
+ * @size: Virtual size of the allocation in bytes.
+ *
+ */
+TRACE_EVENT(gpu_mem_total,
+
+ TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
+
+ TP_ARGS(gpu_id, pid, size),
+
+ TP_STRUCT__entry(
+ __field(uint32_t, gpu_id)
+ __field(uint32_t, pid)
+ __field(uint64_t, size)
+ ),
+
+ TP_fast_assign(
+ __entry->gpu_id = gpu_id;
+ __entry->pid = pid;
+ __entry->size = size;
+ ),
+
+ TP_printk("gpu_id=%u pid=%u size=%llu",
+ __entry->gpu_id,
+ __entry->pid,
+ __entry->size)
+);
+
+#endif /* _TRACE_GPU_MEM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
--
2.25.0.225.g125e21ebc7-goog
Hi Steven,
Just update a v3 here with the gpu/trace: included in the subject
line. You might have received a spam v3 previously, which I forgot to
include [email protected] for the confusion.
Best,
Yiwei
Hi Yiwei,
You left off a lot of people that you Cc'd for the previous versions.
You'll need at least Greg's acked-by on this, and perhaps even others
that own the gpu directory.
-- Steve
On Wed, 12 Feb 2020 20:23:31 -0800
[email protected] wrote:
> From: Yiwei Zhang <[email protected]>
>
> This change adds the below gpu memory tracepoint:
> gpu_mem/gpu_mem_total: track global or process gpu memory total counters
>
> Signed-off-by: Yiwei Zhang <[email protected]>
> ---
> drivers/Kconfig | 2 ++
> drivers/gpu/Makefile | 1 +
> drivers/gpu/trace/Kconfig | 4 +++
> drivers/gpu/trace/Makefile | 3 ++
> drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
> include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
> 6 files changed, 80 insertions(+)
> create mode 100644 drivers/gpu/trace/Kconfig
> create mode 100644 drivers/gpu/trace/Makefile
> create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
> create mode 100644 include/trace/events/gpu_mem.h
>
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 8befa53f43be..e0eda1a5c3f9 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
>
> source "drivers/android/Kconfig"
>
> +source "drivers/gpu/trace/Kconfig"
> +
> source "drivers/nvdimm/Kconfig"
>
> source "drivers/dax/Kconfig"
> diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
> index f17d01f076c7..835c88318cec 100644
> --- a/drivers/gpu/Makefile
> +++ b/drivers/gpu/Makefile
> @@ -5,3 +5,4 @@
> obj-$(CONFIG_TEGRA_HOST1X) += host1x/
> obj-y += drm/ vga/
> obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace/
> diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
> new file mode 100644
> index 000000000000..c24e9edd022e
> --- /dev/null
> +++ b/drivers/gpu/trace/Kconfig
> @@ -0,0 +1,4 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +config TRACE_GPU_MEM
> + bool
> diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
> new file mode 100644
> index 000000000000..b70fbdc5847f
> --- /dev/null
> +++ b/drivers/gpu/trace/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
> diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
> new file mode 100644
> index 000000000000..01e855897b6d
> --- /dev/null
> +++ b/drivers/gpu/trace/trace_gpu_mem.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#include <linux/module.h>
> +
> +#define CREATE_TRACE_POINTS
> +#include <trace/events/gpu_mem.h>
> +
> +EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
> diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> new file mode 100644
> index 000000000000..1897822a9150
> --- /dev/null
> +++ b/include/trace/events/gpu_mem.h
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM gpu_mem
> +
> +#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_GPU_MEM_H
> +
> +#include <linux/tracepoint.h>
> +
> +/*
> + * The gpu_memory_total event indicates that there's an update to either the
> + * global or process total gpu memory counters.
> + *
> + * This event should be emitted whenever the kernel device driver allocates,
> + * frees, imports, unimports memory in the GPU addressable space.
> + *
> + * @gpu_id: This is the gpu id.
> + *
> + * @pid: Put 0 for global total, while positive pid for process total.
> + *
> + * @size: Virtual size of the allocation in bytes.
> + *
> + */
> +TRACE_EVENT(gpu_mem_total,
> +
> + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> +
> + TP_ARGS(gpu_id, pid, size),
> +
> + TP_STRUCT__entry(
> + __field(uint32_t, gpu_id)
> + __field(uint32_t, pid)
> + __field(uint64_t, size)
> + ),
> +
> + TP_fast_assign(
> + __entry->gpu_id = gpu_id;
> + __entry->pid = pid;
> + __entry->size = size;
> + ),
> +
> + TP_printk("gpu_id=%u pid=%u size=%llu",
> + __entry->gpu_id,
> + __entry->pid,
> + __entry->size)
> +);
> +
> +#endif /* _TRACE_GPU_MEM_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
Hi folks,
This [PATCH v3] just re-format the tracepoint definition and update
the subject line. Please take another look. Many thanks!
Best,
Yiwei
On Thu, Feb 13, 2020 at 6:03 AM Steven Rostedt <[email protected]> wrote:
>
>
> Hi Yiwei,
>
> You left off a lot of people that you Cc'd for the previous versions.
> You'll need at least Greg's acked-by on this, and perhaps even others
> that own the gpu directory.
>
> -- Steve
>
>
> On Wed, 12 Feb 2020 20:23:31 -0800
> [email protected] wrote:
>
> > From: Yiwei Zhang <[email protected]>
> >
> > This change adds the below gpu memory tracepoint:
> > gpu_mem/gpu_mem_total: track global or process gpu memory total counters
> >
> > Signed-off-by: Yiwei Zhang <[email protected]>
> > ---
> > drivers/Kconfig | 2 ++
> > drivers/gpu/Makefile | 1 +
> > drivers/gpu/trace/Kconfig | 4 +++
> > drivers/gpu/trace/Makefile | 3 ++
> > drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
> > include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
> > 6 files changed, 80 insertions(+)
> > create mode 100644 drivers/gpu/trace/Kconfig
> > create mode 100644 drivers/gpu/trace/Makefile
> > create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
> > create mode 100644 include/trace/events/gpu_mem.h
> >
> > diff --git a/drivers/Kconfig b/drivers/Kconfig
> > index 8befa53f43be..e0eda1a5c3f9 100644
> > --- a/drivers/Kconfig
> > +++ b/drivers/Kconfig
> > @@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
> >
> > source "drivers/android/Kconfig"
> >
> > +source "drivers/gpu/trace/Kconfig"
> > +
> > source "drivers/nvdimm/Kconfig"
> >
> > source "drivers/dax/Kconfig"
> > diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
> > index f17d01f076c7..835c88318cec 100644
> > --- a/drivers/gpu/Makefile
> > +++ b/drivers/gpu/Makefile
> > @@ -5,3 +5,4 @@
> > obj-$(CONFIG_TEGRA_HOST1X) += host1x/
> > obj-y += drm/ vga/
> > obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
> > +obj-$(CONFIG_TRACE_GPU_MEM) += trace/
> > diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
> > new file mode 100644
> > index 000000000000..c24e9edd022e
> > --- /dev/null
> > +++ b/drivers/gpu/trace/Kconfig
> > @@ -0,0 +1,4 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +
> > +config TRACE_GPU_MEM
> > + bool
> > diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
> > new file mode 100644
> > index 000000000000..b70fbdc5847f
> > --- /dev/null
> > +++ b/drivers/gpu/trace/Makefile
> > @@ -0,0 +1,3 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +
> > +obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
> > diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
> > new file mode 100644
> > index 000000000000..01e855897b6d
> > --- /dev/null
> > +++ b/drivers/gpu/trace/trace_gpu_mem.c
> > @@ -0,0 +1,13 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * GPU memory trace points
> > + *
> > + * Copyright (C) 2020 Google, Inc.
> > + */
> > +
> > +#include <linux/module.h>
> > +
> > +#define CREATE_TRACE_POINTS
> > +#include <trace/events/gpu_mem.h>
> > +
> > +EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
> > diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> > new file mode 100644
> > index 000000000000..1897822a9150
> > --- /dev/null
> > +++ b/include/trace/events/gpu_mem.h
> > @@ -0,0 +1,57 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * GPU memory trace points
> > + *
> > + * Copyright (C) 2020 Google, Inc.
> > + */
> > +
> > +#undef TRACE_SYSTEM
> > +#define TRACE_SYSTEM gpu_mem
> > +
> > +#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
> > +#define _TRACE_GPU_MEM_H
> > +
> > +#include <linux/tracepoint.h>
> > +
> > +/*
> > + * The gpu_memory_total event indicates that there's an update to either the
> > + * global or process total gpu memory counters.
> > + *
> > + * This event should be emitted whenever the kernel device driver allocates,
> > + * frees, imports, unimports memory in the GPU addressable space.
> > + *
> > + * @gpu_id: This is the gpu id.
> > + *
> > + * @pid: Put 0 for global total, while positive pid for process total.
> > + *
> > + * @size: Virtual size of the allocation in bytes.
> > + *
> > + */
> > +TRACE_EVENT(gpu_mem_total,
> > +
> > + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> > +
> > + TP_ARGS(gpu_id, pid, size),
> > +
> > + TP_STRUCT__entry(
> > + __field(uint32_t, gpu_id)
> > + __field(uint32_t, pid)
> > + __field(uint64_t, size)
> > + ),
> > +
> > + TP_fast_assign(
> > + __entry->gpu_id = gpu_id;
> > + __entry->pid = pid;
> > + __entry->size = size;
> > + ),
> > +
> > + TP_printk("gpu_id=%u pid=%u size=%llu",
> > + __entry->gpu_id,
> > + __entry->pid,
> > + __entry->size)
> > +);
> > +
> > +#endif /* _TRACE_GPU_MEM_H */
> > +
> > +/* This part must be outside protection */
> > +#include <trace/define_trace.h>
>
Dear gpu and tracing owners,
It's been a while and this is just a gentle and friendly re-ping for
review of this small patch.
Many many thanks!
Yiwei
On Sun, 23 Feb 2020 22:31:11 -0800
Yiwei Zhang <[email protected]> wrote:
> Dear gpu and tracing owners,
>
> It's been a while and this is just a gentle and friendly re-ping for
> review of this small patch.
I guess the question is what tree should this go through. I usually
only take tracing infrastructure changes and leave topic specific
tracing for those that maintain the topics.
I'm fine with taking this through my tree if I get a bunch of
acked/reviewed by from other maintainers.
-- Steve
On Mon, Feb 24, 2020 at 8:38 AM Steven Rostedt <[email protected]> wrote:
>
> On Sun, 23 Feb 2020 22:31:11 -0800
> Yiwei Zhang <[email protected]> wrote:
>
> > Dear gpu and tracing owners,
> >
> > It's been a while and this is just a gentle and friendly re-ping for
> > review of this small patch.
>
> I guess the question is what tree should this go through. I usually
> only take tracing infrastructure changes and leave topic specific
> tracing for those that maintain the topics.
>
> I'm fine with taking this through my tree if I get a bunch of
> acked/reviewed by from other maintainers.
>
> -- Steve
>
Hi GPU directory owners/maintainers,
Given Steve's reply, could you guys help review and ack this tiny
patch? This is a friendly re-ping since it's been more than 2 weeks
without any response from gpu directory folks. The patchset v2 was
ack'ed by Greg(gregkh@), and this v3 patch only has format updates.
Please take another look. Many many thanks!
Best regards,
Yiwei
From: Yiwei Zhang <[email protected]>
This change adds the below gpu memory tracepoint:
gpu_mem/gpu_mem_total: track global or proc gpu memory total usages
Per process tracking of total gpu memory usage in the gem layer is not
appropriate and hard to implement with trivial overhead. So for the gfx
device driver layer to track total gpu memory usage both globally and
per process in an easy and uniform way is to integrate the tracepoint in
this patch to the underlying varied implementations of gpu memory
tracking system from vendors.
Putting this tracepoint in the common trace events can not only help
wean the gfx drivers off of debugfs but also greatly help the downstream
Android gpu vendors because debugfs is to be deprecated in the upcoming
Android release. Then the gpu memory tracking of both Android kernel and
the upstream linux kernel can stay closely, which can benefit the whole
kernel eco-system in the long term.
Signed-off-by: Yiwei Zhang <[email protected]>
---
drivers/Kconfig | 2 ++
drivers/gpu/Makefile | 1 +
drivers/gpu/trace/Kconfig | 4 +++
drivers/gpu/trace/Makefile | 3 ++
drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
6 files changed, 80 insertions(+)
create mode 100644 drivers/gpu/trace/Kconfig
create mode 100644 drivers/gpu/trace/Makefile
create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
create mode 100644 include/trace/events/gpu_mem.h
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8befa53f43be..e0eda1a5c3f9 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
source "drivers/android/Kconfig"
+source "drivers/gpu/trace/Kconfig"
+
source "drivers/nvdimm/Kconfig"
source "drivers/dax/Kconfig"
diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
index f17d01f076c7..835c88318cec 100644
--- a/drivers/gpu/Makefile
+++ b/drivers/gpu/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
obj-y += drm/ vga/
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
+obj-$(CONFIG_TRACE_GPU_MEM) += trace/
diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
new file mode 100644
index 000000000000..c24e9edd022e
--- /dev/null
+++ b/drivers/gpu/trace/Kconfig
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config TRACE_GPU_MEM
+ bool
diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
new file mode 100644
index 000000000000..b70fbdc5847f
--- /dev/null
+++ b/drivers/gpu/trace/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
new file mode 100644
index 000000000000..01e855897b6d
--- /dev/null
+++ b/drivers/gpu/trace/trace_gpu_mem.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#include <linux/module.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/gpu_mem.h>
+
+EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
new file mode 100644
index 000000000000..1897822a9150
--- /dev/null
+++ b/include/trace/events/gpu_mem.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gpu_mem
+
+#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_GPU_MEM_H
+
+#include <linux/tracepoint.h>
+
+/*
+ * The gpu_memory_total event indicates that there's an update to either the
+ * global or process total gpu memory counters.
+ *
+ * This event should be emitted whenever the kernel device driver allocates,
+ * frees, imports, unimports memory in the GPU addressable space.
+ *
+ * @gpu_id: This is the gpu id.
+ *
+ * @pid: Put 0 for global total, while positive pid for process total.
+ *
+ * @size: Virtual size of the allocation in bytes.
+ *
+ */
+TRACE_EVENT(gpu_mem_total,
+
+ TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
+
+ TP_ARGS(gpu_id, pid, size),
+
+ TP_STRUCT__entry(
+ __field(uint32_t, gpu_id)
+ __field(uint32_t, pid)
+ __field(uint64_t, size)
+ ),
+
+ TP_fast_assign(
+ __entry->gpu_id = gpu_id;
+ __entry->pid = pid;
+ __entry->size = size;
+ ),
+
+ TP_printk("gpu_id=%u pid=%u size=%llu",
+ __entry->gpu_id,
+ __entry->pid,
+ __entry->size)
+);
+
+#endif /* _TRACE_GPU_MEM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
--
2.25.0.265.gbab2e86ba0-goog
From: Yiwei Zhang <[email protected]>
This change adds the below gpu memory tracepoint:
gpu_mem/gpu_mem_total: track global or proc gpu memory total usages
Per process tracking of total gpu memory usage in the gem layer is not
appropriate and hard to implement with trivial overhead. So for the gfx
device driver layer to track total gpu memory usage both globally and
per process in an easy and uniform way is to integrate the tracepoint in
this patch to the underlying varied implementations of gpu memory
tracking system from vendors.
Putting this tracepoint in the common trace events can not only help
wean the gfx drivers off of debugfs but also greatly help the downstream
Android gpu vendors because debugfs is to be deprecated in the upcoming
Android release. Then the gpu memory tracking of both Android kernel and
the upstream linux kernel can stay closely, which can benefit the whole
kernel eco-system in the long term.
Signed-off-by: Yiwei Zhang <[email protected]>
---
drivers/Kconfig | 2 ++
drivers/gpu/Makefile | 1 +
drivers/gpu/trace/Kconfig | 4 +++
drivers/gpu/trace/Makefile | 3 ++
drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
6 files changed, 80 insertions(+)
create mode 100644 drivers/gpu/trace/Kconfig
create mode 100644 drivers/gpu/trace/Makefile
create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
create mode 100644 include/trace/events/gpu_mem.h
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8befa53f43be..e0eda1a5c3f9 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
source "drivers/android/Kconfig"
+source "drivers/gpu/trace/Kconfig"
+
source "drivers/nvdimm/Kconfig"
source "drivers/dax/Kconfig"
diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
index f17d01f076c7..835c88318cec 100644
--- a/drivers/gpu/Makefile
+++ b/drivers/gpu/Makefile
@@ -5,3 +5,4 @@
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
obj-y += drm/ vga/
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
+obj-$(CONFIG_TRACE_GPU_MEM) += trace/
diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
new file mode 100644
index 000000000000..c24e9edd022e
--- /dev/null
+++ b/drivers/gpu/trace/Kconfig
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config TRACE_GPU_MEM
+ bool
diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
new file mode 100644
index 000000000000..b70fbdc5847f
--- /dev/null
+++ b/drivers/gpu/trace/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
new file mode 100644
index 000000000000..01e855897b6d
--- /dev/null
+++ b/drivers/gpu/trace/trace_gpu_mem.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#include <linux/module.h>
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/gpu_mem.h>
+
+EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
new file mode 100644
index 000000000000..1897822a9150
--- /dev/null
+++ b/include/trace/events/gpu_mem.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * GPU memory trace points
+ *
+ * Copyright (C) 2020 Google, Inc.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gpu_mem
+
+#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_GPU_MEM_H
+
+#include <linux/tracepoint.h>
+
+/*
+ * The gpu_memory_total event indicates that there's an update to either the
+ * global or process total gpu memory counters.
+ *
+ * This event should be emitted whenever the kernel device driver allocates,
+ * frees, imports, unimports memory in the GPU addressable space.
+ *
+ * @gpu_id: This is the gpu id.
+ *
+ * @pid: Put 0 for global total, while positive pid for process total.
+ *
+ * @size: Virtual size of the allocation in bytes.
+ *
+ */
+TRACE_EVENT(gpu_mem_total,
+
+ TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
+
+ TP_ARGS(gpu_id, pid, size),
+
+ TP_STRUCT__entry(
+ __field(uint32_t, gpu_id)
+ __field(uint32_t, pid)
+ __field(uint64_t, size)
+ ),
+
+ TP_fast_assign(
+ __entry->gpu_id = gpu_id;
+ __entry->pid = pid;
+ __entry->size = size;
+ ),
+
+ TP_printk("gpu_id=%u pid=%u size=%llu",
+ __entry->gpu_id,
+ __entry->pid,
+ __entry->size)
+);
+
+#endif /* _TRACE_GPU_MEM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
--
2.25.0.265.gbab2e86ba0-goog
Sorry for the noise here, there's a duplicate "[PATCH]" in the subject
line. Please refer to this one instead:
https://lkml.org/lkml/2020/3/2/1181
Greg,
You acked this patch before, did you want to ack it again, and I'll take it
in my tree?
-- Steve
On Mon, 2 Mar 2020 15:50:44 -0800
[email protected] wrote:
> From: Yiwei Zhang <[email protected]>
>
> This change adds the below gpu memory tracepoint:
> gpu_mem/gpu_mem_total: track global or proc gpu memory total usages
>
> Per process tracking of total gpu memory usage in the gem layer is not
> appropriate and hard to implement with trivial overhead. So for the gfx
> device driver layer to track total gpu memory usage both globally and
> per process in an easy and uniform way is to integrate the tracepoint in
> this patch to the underlying varied implementations of gpu memory
> tracking system from vendors.
>
> Putting this tracepoint in the common trace events can not only help
> wean the gfx drivers off of debugfs but also greatly help the downstream
> Android gpu vendors because debugfs is to be deprecated in the upcoming
> Android release. Then the gpu memory tracking of both Android kernel and
> the upstream linux kernel can stay closely, which can benefit the whole
> kernel eco-system in the long term.
>
> Signed-off-by: Yiwei Zhang <[email protected]>
> ---
> drivers/Kconfig | 2 ++
> drivers/gpu/Makefile | 1 +
> drivers/gpu/trace/Kconfig | 4 +++
> drivers/gpu/trace/Makefile | 3 ++
> drivers/gpu/trace/trace_gpu_mem.c | 13 +++++++
> include/trace/events/gpu_mem.h | 57 +++++++++++++++++++++++++++++++
> 6 files changed, 80 insertions(+)
> create mode 100644 drivers/gpu/trace/Kconfig
> create mode 100644 drivers/gpu/trace/Makefile
> create mode 100644 drivers/gpu/trace/trace_gpu_mem.c
> create mode 100644 include/trace/events/gpu_mem.h
>
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 8befa53f43be..e0eda1a5c3f9 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -200,6 +200,8 @@ source "drivers/thunderbolt/Kconfig"
>
> source "drivers/android/Kconfig"
>
> +source "drivers/gpu/trace/Kconfig"
> +
> source "drivers/nvdimm/Kconfig"
>
> source "drivers/dax/Kconfig"
> diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
> index f17d01f076c7..835c88318cec 100644
> --- a/drivers/gpu/Makefile
> +++ b/drivers/gpu/Makefile
> @@ -5,3 +5,4 @@
> obj-$(CONFIG_TEGRA_HOST1X) += host1x/
> obj-y += drm/ vga/
> obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace/
> diff --git a/drivers/gpu/trace/Kconfig b/drivers/gpu/trace/Kconfig
> new file mode 100644
> index 000000000000..c24e9edd022e
> --- /dev/null
> +++ b/drivers/gpu/trace/Kconfig
> @@ -0,0 +1,4 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +
> +config TRACE_GPU_MEM
> + bool
> diff --git a/drivers/gpu/trace/Makefile b/drivers/gpu/trace/Makefile
> new file mode 100644
> index 000000000000..b70fbdc5847f
> --- /dev/null
> +++ b/drivers/gpu/trace/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_TRACE_GPU_MEM) += trace_gpu_mem.o
> diff --git a/drivers/gpu/trace/trace_gpu_mem.c b/drivers/gpu/trace/trace_gpu_mem.c
> new file mode 100644
> index 000000000000..01e855897b6d
> --- /dev/null
> +++ b/drivers/gpu/trace/trace_gpu_mem.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#include <linux/module.h>
> +
> +#define CREATE_TRACE_POINTS
> +#include <trace/events/gpu_mem.h>
> +
> +EXPORT_TRACEPOINT_SYMBOL(gpu_mem_total);
> diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> new file mode 100644
> index 000000000000..1897822a9150
> --- /dev/null
> +++ b/include/trace/events/gpu_mem.h
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * GPU memory trace points
> + *
> + * Copyright (C) 2020 Google, Inc.
> + */
> +
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM gpu_mem
> +
> +#if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_GPU_MEM_H
> +
> +#include <linux/tracepoint.h>
> +
> +/*
> + * The gpu_memory_total event indicates that there's an update to either the
> + * global or process total gpu memory counters.
> + *
> + * This event should be emitted whenever the kernel device driver allocates,
> + * frees, imports, unimports memory in the GPU addressable space.
> + *
> + * @gpu_id: This is the gpu id.
> + *
> + * @pid: Put 0 for global total, while positive pid for process total.
> + *
> + * @size: Virtual size of the allocation in bytes.
> + *
> + */
> +TRACE_EVENT(gpu_mem_total,
> +
> + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> +
> + TP_ARGS(gpu_id, pid, size),
> +
> + TP_STRUCT__entry(
> + __field(uint32_t, gpu_id)
> + __field(uint32_t, pid)
> + __field(uint64_t, size)
> + ),
> +
> + TP_fast_assign(
> + __entry->gpu_id = gpu_id;
> + __entry->pid = pid;
> + __entry->size = size;
> + ),
> +
> + TP_printk("gpu_id=%u pid=%u size=%llu",
> + __entry->gpu_id,
> + __entry->pid,
> + __entry->size)
> +);
> +
> +#endif /* _TRACE_GPU_MEM_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
On Tue, Mar 03, 2020 at 09:07:03AM -0500, Steven Rostedt wrote:
>
> Greg,
>
> You acked this patch before, did you want to ack it again, and I'll take it
> in my tree?
Sure, but where did my ack go? What changed from previous versions???
Anyway, the patch seems sane enough to me:
Acked-by: Greg Kroah-Hartman <[email protected]>
On Tue, 3 Mar 2020 15:15:05 +0100
Greg KH <[email protected]> wrote:
> On Tue, Mar 03, 2020 at 09:07:03AM -0500, Steven Rostedt wrote:
> >
> > Greg,
> >
> > You acked this patch before, did you want to ack it again, and I'll take it
> > in my tree?
>
> Sure, but where did my ack go? What changed from previous versions???
>
> Anyway, the patch seems sane enough to me:
>
> Acked-by: Greg Kroah-Hartman <[email protected]>
Your previous ack was was here:
https://lore.kernel.org/lkml/[email protected]/
And the patch changed since then (although, only cosmetically), so your ack
was removed. The diff between this patch and the patch you acked is this:
-- Steve
diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
index 3b632a2b5100..1897822a9150 100644
--- a/include/trace/events/gpu_mem.h
+++ b/include/trace/events/gpu_mem.h
@@ -28,34 +28,27 @@
*
*/
TRACE_EVENT(gpu_mem_total,
- TP_PROTO(
- uint32_t gpu_id,
- uint32_t pid,
- uint64_t size
- ),
- TP_ARGS(
- gpu_id,
- pid,
- size
- ),
+
+ TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
+
+ TP_ARGS(gpu_id, pid, size),
+
TP_STRUCT__entry(
__field(uint32_t, gpu_id)
__field(uint32_t, pid)
__field(uint64_t, size)
),
+
TP_fast_assign(
__entry->gpu_id = gpu_id;
__entry->pid = pid;
__entry->size = size;
),
- TP_printk(
- "gpu_id=%u "
- "pid=%u "
- "size=%llu",
+
+ TP_printk("gpu_id=%u pid=%u size=%llu",
__entry->gpu_id,
__entry->pid,
- __entry->size
- )
+ __entry->size)
);
#endif /* _TRACE_GPU_MEM_H */
On Tue, Mar 3, 2020 at 6:31 AM Steven Rostedt <[email protected]> wrote:
>
> On Tue, 3 Mar 2020 15:15:05 +0100
> Greg KH <[email protected]> wrote:
>
> > On Tue, Mar 03, 2020 at 09:07:03AM -0500, Steven Rostedt wrote:
> > >
> > > Greg,
> > >
> > > You acked this patch before, did you want to ack it again, and I'll take it
> > > in my tree?
> >
> > Sure, but where did my ack go? What changed from previous versions???
> >
> > Anyway, the patch seems sane enough to me:
> >
> > Acked-by: Greg Kroah-Hartman <[email protected]>
>
> Your previous ack was was here:
>
> https://lore.kernel.org/lkml/[email protected]/
>
> And the patch changed since then (although, only cosmetically), so your ack
> was removed. The diff between this patch and the patch you acked is this:
>
> -- Steve
>
> diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> index 3b632a2b5100..1897822a9150 100644
> --- a/include/trace/events/gpu_mem.h
> +++ b/include/trace/events/gpu_mem.h
> @@ -28,34 +28,27 @@
> *
> */
> TRACE_EVENT(gpu_mem_total,
> - TP_PROTO(
> - uint32_t gpu_id,
> - uint32_t pid,
> - uint64_t size
> - ),
> - TP_ARGS(
> - gpu_id,
> - pid,
> - size
> - ),
> +
> + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> +
> + TP_ARGS(gpu_id, pid, size),
> +
> TP_STRUCT__entry(
> __field(uint32_t, gpu_id)
> __field(uint32_t, pid)
> __field(uint64_t, size)
> ),
> +
> TP_fast_assign(
> __entry->gpu_id = gpu_id;
> __entry->pid = pid;
> __entry->size = size;
> ),
> - TP_printk(
> - "gpu_id=%u "
> - "pid=%u "
> - "size=%llu",
> +
> + TP_printk("gpu_id=%u pid=%u size=%llu",
> __entry->gpu_id,
> __entry->pid,
> - __entry->size
> - )
> + __entry->size)
> );
>
> #endif /* _TRACE_GPU_MEM_H */
Hi Steve, since Greg has acknowledged again on the latest patch v4,
will you help merge from your tree?
Thanks for all the help!
Yiwei
On Tue, 3 Mar 2020 07:15:46 -0800
Yiwei Zhang <[email protected]> wrote:
> Hi Steve, since Greg has acknowledged again on the latest patch v4,
> will you help merge from your tree?
Yes, I can add it to my queue for the next merge window.
-- Steve
On Tue, Mar 03, 2020 at 09:31:04AM -0500, Steven Rostedt wrote:
> On Tue, 3 Mar 2020 15:15:05 +0100
> Greg KH <[email protected]> wrote:
>
> > On Tue, Mar 03, 2020 at 09:07:03AM -0500, Steven Rostedt wrote:
> > >
> > > Greg,
> > >
> > > You acked this patch before, did you want to ack it again, and I'll take it
> > > in my tree?
> >
> > Sure, but where did my ack go? What changed from previous versions???
> >
> > Anyway, the patch seems sane enough to me:
> >
> > Acked-by: Greg Kroah-Hartman <[email protected]>
>
> Your previous ack was was here:
>
> https://lore.kernel.org/lkml/[email protected]/
Yeah, I remember that.
> And the patch changed since then (although, only cosmetically), so your ack
> was removed. The diff between this patch and the patch you acked is this:
>
> -- Steve
>
> diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> index 3b632a2b5100..1897822a9150 100644
> --- a/include/trace/events/gpu_mem.h
> +++ b/include/trace/events/gpu_mem.h
> @@ -28,34 +28,27 @@
> *
> */
> TRACE_EVENT(gpu_mem_total,
> - TP_PROTO(
> - uint32_t gpu_id,
> - uint32_t pid,
> - uint64_t size
> - ),
> - TP_ARGS(
> - gpu_id,
> - pid,
> - size
> - ),
> +
> + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> +
> + TP_ARGS(gpu_id, pid, size),
> +
> TP_STRUCT__entry(
> __field(uint32_t, gpu_id)
> __field(uint32_t, pid)
> __field(uint64_t, size)
> ),
> +
> TP_fast_assign(
> __entry->gpu_id = gpu_id;
> __entry->pid = pid;
> __entry->size = size;
> ),
> - TP_printk(
> - "gpu_id=%u "
> - "pid=%u "
> - "size=%llu",
> +
> + TP_printk("gpu_id=%u pid=%u size=%llu",
> __entry->gpu_id,
> __entry->pid,
> - __entry->size
> - )
> + __entry->size)
> );
>
> #endif /* _TRACE_GPU_MEM_H */
thanks for the diff, my ack still stands.
greg k-h
On Tue, Mar 3, 2020 at 7:56 AM Greg KH <[email protected]> wrote:
>
> On Tue, Mar 03, 2020 at 09:31:04AM -0500, Steven Rostedt wrote:
> > On Tue, 3 Mar 2020 15:15:05 +0100
> > Greg KH <[email protected]> wrote:
> >
> > > On Tue, Mar 03, 2020 at 09:07:03AM -0500, Steven Rostedt wrote:
> > > >
> > > > Greg,
> > > >
> > > > You acked this patch before, did you want to ack it again, and I'll take it
> > > > in my tree?
> > >
> > > Sure, but where did my ack go? What changed from previous versions???
> > >
> > > Anyway, the patch seems sane enough to me:
> > >
> > > Acked-by: Greg Kroah-Hartman <[email protected]>
> >
> > Your previous ack was was here:
> >
> > https://lore.kernel.org/lkml/[email protected]/
>
> Yeah, I remember that.
>
> > And the patch changed since then (although, only cosmetically), so your ack
> > was removed. The diff between this patch and the patch you acked is this:
> >
> > -- Steve
> >
> > diff --git a/include/trace/events/gpu_mem.h b/include/trace/events/gpu_mem.h
> > index 3b632a2b5100..1897822a9150 100644
> > --- a/include/trace/events/gpu_mem.h
> > +++ b/include/trace/events/gpu_mem.h
> > @@ -28,34 +28,27 @@
> > *
> > */
> > TRACE_EVENT(gpu_mem_total,
> > - TP_PROTO(
> > - uint32_t gpu_id,
> > - uint32_t pid,
> > - uint64_t size
> > - ),
> > - TP_ARGS(
> > - gpu_id,
> > - pid,
> > - size
> > - ),
> > +
> > + TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
> > +
> > + TP_ARGS(gpu_id, pid, size),
> > +
> > TP_STRUCT__entry(
> > __field(uint32_t, gpu_id)
> > __field(uint32_t, pid)
> > __field(uint64_t, size)
> > ),
> > +
> > TP_fast_assign(
> > __entry->gpu_id = gpu_id;
> > __entry->pid = pid;
> > __entry->size = size;
> > ),
> > - TP_printk(
> > - "gpu_id=%u "
> > - "pid=%u "
> > - "size=%llu",
> > +
> > + TP_printk("gpu_id=%u pid=%u size=%llu",
> > __entry->gpu_id,
> > __entry->pid,
> > - __entry->size
> > - )
> > + __entry->size)
> > );
> >
> > #endif /* _TRACE_GPU_MEM_H */
>
> thanks for the diff, my ack still stands.
>
> greg k-h
Hi guys, thanks for all the help throughout this. After struggling a
while, I failed to figure out when the next merge window is. Could you
help point me to the release calendar or something? Thanks again!
Best,
Yiwei
On Fri, 13 Mar 2020 15:59:37 -0700
Yiwei Zhang <[email protected]> wrote:
> Hi guys, thanks for all the help throughout this. After struggling a
> while, I failed to figure out when the next merge window is. Could you
> help point me to the release calendar or something? Thanks again!
I have this queued in my local tree. I'm currently having some issues with
my testing (there appears to be an unrelated bug to my code keeping it from
passing). But you should see this patch fly by when I add it to my
linux-next queue.
-- Steve
On Mon, Mar 16, 2020 at 11:05 AM Steven Rostedt <[email protected]> wrote:
>
> On Fri, 13 Mar 2020 15:59:37 -0700
> Yiwei Zhang <[email protected]> wrote:
>
> > Hi guys, thanks for all the help throughout this. After struggling a
> > while, I failed to figure out when the next merge window is. Could you
> > help point me to the release calendar or something? Thanks again!
>
> I have this queued in my local tree. I'm currently having some issues with
> my testing (there appears to be an unrelated bug to my code keeping it from
> passing). But you should see this patch fly by when I add it to my
> linux-next queue.
>
> -- Steve
Got it. Awesome, thanks Steve!