summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-05-08 13:39:26 +0300
committerSimon Glass <sjg@chromium.org>2022-06-28 05:09:52 +0300
commit2cb4ddb91ec9fcb77c895e4a1192a15aece700c6 (patch)
treefa5b70616fb54ee575514943c453f544ed033ab3 /include
parent0dfda34ca594c701955cfcb71711a7599f97bae3 (diff)
downloadu-boot-2cb4ddb91ec9fcb77c895e4a1192a15aece700c6.tar.xz
dm: core: Add a command to show driver model statistics
This command shows the memory used by driver model along with various hints as to what it might be if some 'core' tags were moved to use the tag list instead of a core (i.e. always-there) pointer. This may help with future work to reduce memory usage. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/dm/root.h2
-rw-r--r--include/dm/tag.h8
-rw-r--r--include/dm/util.h9
3 files changed, 18 insertions, 1 deletions
diff --git a/include/dm/root.h b/include/dm/root.h
index 382f83c7f5..b2f30a842f 100644
--- a/include/dm/root.h
+++ b/include/dm/root.h
@@ -182,7 +182,7 @@ void dm_get_stats(int *device_countp, int *uclass_countp);
/**
* dm_get_mem() - Get stats on memory usage in driver model
*
- * @mem: Place to put the information
+ * @stats: Place to put the information
*/
void dm_get_mem(struct dm_stats *stats);
diff --git a/include/dm/tag.h b/include/dm/tag.h
index 1ea3c9f7af..745088ffcf 100644
--- a/include/dm/tag.h
+++ b/include/dm/tag.h
@@ -129,4 +129,12 @@ int dev_tag_del_all(struct udevice *dev);
*/
void dev_tag_collect_stats(struct dm_stats *stats);
+/**
+ * tag_get_name() - Get the name of a tag
+ *
+ * @tag: Tag to look up, which must be valid
+ * Returns: Name of tag
+ */
+const char *tag_get_name(enum dm_tag_t tag);
+
#endif /* _DM_TAG_H */
diff --git a/include/dm/util.h b/include/dm/util.h
index c52daa87ef..e10c6060ce 100644
--- a/include/dm/util.h
+++ b/include/dm/util.h
@@ -6,6 +6,8 @@
#ifndef __DM_UTIL_H
#define __DM_UTIL_H
+struct dm_stats;
+
#if CONFIG_IS_ENABLED(DM_WARN)
#define dm_warn(fmt...) log(LOGC_DM, LOGL_WARNING, ##fmt)
#else
@@ -48,6 +50,13 @@ void dm_dump_driver_compat(void);
/* Dump out a list of drivers with static platform data */
void dm_dump_static_driver_info(void);
+/**
+ * dm_dump_mem() - Dump stats on memory usage in driver model
+ *
+ * @mem: Stats to dump
+ */
+void dm_dump_mem(struct dm_stats *stats);
+
#if CONFIG_IS_ENABLED(OF_PLATDATA_INST) && CONFIG_IS_ENABLED(READ_ONLY)
void *dm_priv_to_rw(void *priv);
#else